12 #ifndef opcodeTerrainIntersectorImpl_h
13 #define opcodeTerrainIntersectorImpl_h
15 #define BAN_OPCODE_AUTOLINK
20 #include <vlutil/vlMutex.h>
27 #ifdef LOG_INTERSECTIONS
53 virtual DtString initStateText()
const;
56 virtual unsigned int memoryUsage()
const;
59 virtual bool chordIntersect(
const DtChord& chord,
63 virtual bool allIntersectsAlongChord(
const DtChord& chord,
72 typedef std::pair<DtChordIntersectionRecord*, DtOpcodeTerrainIntersectorImpl*>
RecordMeshPair;
74 virtual bool makeOpcodeTriangleIndex(
DtGdbNode* node);
77 virtual void makeIndexedTriangleArray();
80 virtual bool intersectAnyFileNode(
const DtChord& chord, std::vector<DtFileNode*>& vec)
const;
84 virtual bool intersectAnyFileNode(
const DtSphere& sphere, std::vector<DtFileNode*>& vec)
const;
87 virtual bool lessDistance(
const Opcode::CollisionFace& c1,
const Opcode::CollisionFace& c2);
103 #ifdef LOG_INTERSECTIONS
104 typedef std::list<std::pair<DtChord, DtGdbNode::DtIntersectRecordType> > DtIntersectionHistoryList;
105 mutable DtIntersectionHistoryList myIntersectionHistory;
106 mutable bool myIntersectionHistoryStarted;
108 void writeIntersectionHistory()
const;