![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2004 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: vectorObstruction.h,v $ $Revision: 1.15 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef vectorObstruction_H_ 00013 #define vectorObstruction_H_ 00014 00015 #include <matrix/vlVector.h> 00016 #include "vrfobjcore/vrfObjMgr.h" 00017 00018 #include "geometry/tdbextent.h" 00019 #include <matrix/3dBoundingVolume.h> 00020 #include <matrix/vlDcm.h> 00021 00022 00023 class DtPoint; 00024 class DtString; 00025 class DtNetworkElement; 00026 class DtNetworkNode; 00027 class DtNetworkSegment; 00028 00029 00030 #include "vrfobjcore/vrfobjcoreDefines.h" 00031 class DT_DLL_vrfobjcore DtVectorObstruction 00032 { 00033 00034 public: 00036 DtVectorObstruction(const DtNetworkNode& networkNode, 00037 const Coordinate_System& coordSys, bool extrudeInZ); 00038 00039 DtVectorObstruction(const DtNetworkSegment& networkSegment, 00040 const Coordinate_System& coordSys, bool extrudeInZ); 00041 00043 virtual ~DtVectorObstruction(); 00044 00056 00058 DtVectorObstruction& operator=(const DtVectorObstruction& original); 00059 00061 bool operator==(const DtVectorObstruction& obstruction) const; 00062 00064 bool operator!=(const DtVectorObstruction& obstruction) const; 00065 00066 00069 bool valid() const; 00070 00071 const DtNetworkElement* networkElement() const; 00072 00073 void setNetworkElement(const DtNetworkNode& networkNode, 00074 const Coordinate_System& coordSys, bool extrudeInZ = false); 00075 void setNetworkElement(const DtNetworkSegment& networkSegment, 00076 const Coordinate_System& coordSys, bool extrudeInZ = false); 00077 00078 DtVector location() const; 00079 00080 DtExtent& extent(); 00081 const DtExtent& extent() const; 00082 00085 virtual void expandExtent(DtExtent& extent) const; 00086 00087 DtVector velocity() const; 00088 00089 Dt3dBoundingVolume& boundingVolume(); 00090 const Dt3dBoundingVolume& boundingVolume() const; 00091 00092 DtDcm& localOrientationMatrix(); 00093 const DtDcm& localOrientationMatrix() const; 00094 00095 bool testInvariant() const; 00096 00097 protected: 00098 void initializeExtent(const DtPoint& location, double length, double width, 00099 double height, DtExtent& extent) const; 00100 00101 void initializeExtent(const DtPoint& location1, const DtPoint& location2, 00102 double length, double width, double height, DtExtent& extent) const; 00103 00104 const DtNetworkElement* myVectorNetworkElement; 00105 DtDcm myLocalOrientationMatrix; 00106 Dt3dBoundingVolume myBoundingVolume; 00107 DtVector myLocation; 00108 DtVector myVelocity; 00109 00110 DtExtent myExtent; 00111 }; 00112 00113 #endif 00114