00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 #ifndef BVHLineGeometry_hxx
00019 #define BVHLineGeometry_hxx
00020 
00021 #include <simgear/math/SGGeometry.hxx>
00022 #include "BVHNode.hxx"
00023 
00024 namespace simgear {
00025 
00026 class BVHLineGeometry : public BVHNode {
00027 public:
00028     enum Type {
00029         CarrierCatapult,
00030         CarrierWire
00031     };
00032 
00033     BVHLineGeometry(const SGLineSegmentf& lineSegment, Type type);
00034     virtual ~BVHLineGeometry();
00035 
00036     virtual void accept(BVHVisitor& visitor);
00037 
00038     const SGLineSegmentf& getLineSegment() const
00039     { return _lineSegment; }
00040 
00041     Type getType() const
00042     { return _type; }
00043 
00044     virtual SGSphered computeBoundingSphere() const;
00045 
00046 private:
00047     SGLineSegmentf _lineSegment;
00048     Type _type;
00049 };
00050 
00051 }
00052 
00053 #endif