![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1999 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: vecNetwrkRecord.h,v $ $Revision: 1.10 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00009 #ifndef vecNetwrkRecord_H_ 00010 #define vecNetwrkRecord_H_ 00011 00012 #include "gdb/gdbDefines.h" 00013 #include <vlutil/vlNetTypes.h> 00014 00015 //forward declarations 00016 class DtSimpleList; 00017 class DtSpecificationAttribute; 00018 00019 // class DtVectorNetworkRecord: 00020 // 00021 // DtVectorNetworkRecord is used to pass info to DtTerrainDatabase 00022 // to be used during a search into the vector network 00023 00024 class DT_DLL_gdb DtVectorNetworkRecord 00025 { 00026 public: 00027 00028 // default constructor 00029 DtVectorNetworkRecord(); 00030 00031 // destructor 00032 virtual ~DtVectorNetworkRecord(); 00033 00034 // copy constructor 00035 DtVectorNetworkRecord(const DtVectorNetworkRecord& orig); 00036 00037 // assignment operator 00038 DtVectorNetworkRecord& operator=(const DtVectorNetworkRecord& orig); 00039 00040 // set/get the value for range of interest 00041 virtual void setInterestRange(double range); 00042 virtual double interestRange() const; 00043 00044 // set/get if we want to evaluate elevation in features 00045 virtual void setEvalInZ(bool inZ); 00046 virtual bool evalInZ() const; 00047 00048 // Functions to add attributes to evaluate them against the 00049 // specifications of the vector network. 00050 // They can be used to be equal, lees than, greater than or different, 00051 // 00052 // add: Clone the attribute and add its own copy. 00053 // take: return the list and give it up to be owned (and deleted) 00054 // by some one else. After use a take function there is not more 00055 // function available in the record. 00056 // XXX: return the current list 00057 00058 virtual void addEqualCondAttr(DtSpecificationAttribute* attr); 00059 virtual DtSimpleList* equalCondAttrList() const; 00060 virtual DtSimpleList* takeEqualCondAttrList(); 00061 00062 virtual void addDiffCondAttr(DtSpecificationAttribute* attr); 00063 virtual DtSimpleList* diffCondAttrList() const; 00064 virtual DtSimpleList* takeDiffCondAttrList(); 00065 00066 virtual void addLessThanCondAttr(DtSpecificationAttribute* attr); 00067 virtual DtSimpleList* lessThanCondAttrList() const; 00068 virtual DtSimpleList* takeLessThanCondAttrList(); 00069 00070 virtual void addGreaterThanCondAttr(DtSpecificationAttribute* attr); 00071 virtual DtSimpleList* greaterThanCondAttrList() const; 00072 virtual DtSimpleList* takeGreaterThanCondAttrList(); 00073 00074 protected: 00075 00076 virtual bool testInvariant() const; 00077 00078 // empty the condition lists and free memory 00079 virtual void emptyLists(); 00080 00081 // copy lists 00082 virtual void copyLists(const DtVectorNetworkRecord& orig); 00083 00084 double myRange; 00085 bool myInZ; 00086 DtSimpleList* myEqualList; 00087 DtSimpleList* myDiffList; 00088 DtSimpleList* myLessThanList; 00089 DtSimpleList* myGreaterThanList; 00090 }; 00091 00092 #endif 00093