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