VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
terrainIntersectorRecord.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2008 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: terrainIntersectorRec.h,v $ $Revision: 1.2 $ $State: Exp $
7 *******************************************************************************/
8 #ifndef terrainIntersectorRecord_H_
9 #define terrainIntersectorRecord_H_
10 
13 
14 #include <map>
15 
18 
19 // This factory will map descriptor types to record creators. Each creator
20 // will be able to fully populate a descriptor from the descriptor record
21 
22 typedef DtTerrainIntersectorRecord* (*DtTerrainIntDescCreatorFcn)(const DtTerrainIntersectorDescriptor*);
23 typedef std::map<int, DtTerrainIntDescCreatorFcn> DtTerrainIntDescCreatorMap;
24 
26 {
27 public:
28  // Constructor will add default descriptors
30 
31  DtTerrainIntersectorRecord* createRecordFromDescriptor(const DtTerrainIntersectorDescriptor*);
32  void addCreator(int, DtTerrainIntDescCreatorFcn);
33 
34 protected:
35 
37 };
38 
39 // This class in and of itself does nothing. It is used as a base class
40 // for intersectors that are implemented by the system
42 {
43 public:
44 
45  // default constructor.
47 
48  // destructor
49  virtual ~DtTerrainIntersectorRecord();
50 
51  // copy constructor
53 
54  // assignment operator
56 
57  // Returns "DtNoTerrainIntersectorRecordString".
58  virtual DtString recordTypeName() const;
59  virtual DtConfigCategoryType recordCategory() const;
60 
61  virtual int terrainIntersectorType() const = 0;
62  virtual DtTerrainIntersectorRecord* clone() const = 0;
63  virtual DtTerrainIntersectorDescriptor* createIntersectorDescriptor() const = 0;
64 
65  static DtTerrainIntersectorDescriptorFactory* factory();
66 
67 protected:
69 };
70 
72 {
73 public:
74 
75  // default constructor.
77 
78  // destructor
79  virtual ~DtNativeIntersectorRecord();
80 
81  // copy constructor
83 
84  // assignment operator
86 
87  // Returns "DtNativeTerrainIntersectorRecordString".
88  virtual DtString recordTypeName() const;
89  virtual DtConfigCategoryType recordCategory() const;
90 
91  virtual int terrainIntersectorType() const;
92 
93  static DtMetafileRecord* create();
94  static DtTerrainIntersectorRecord* createFromDescriptor(const DtTerrainIntersectorDescriptor*);
95 
96  virtual DtTerrainIntersectorRecord* clone() const;
98 };
99 
101 {
102 public:
103 
104  // default constructor.
106 
107  // destructor
109 
110  // copy constructor
112 
113  // assignment operator
115 
116  // Returns "DtNoTerrainIntersectorRecordString".
117  virtual DtString recordTypeName() const;
118  virtual DtConfigCategoryType recordCategory() const;
119 
120  virtual int terrainIntersectorType() const;
121 
122  virtual void setSpatialSubdivisionCells(int x = 100, int y = 100, int z = 100);
123  virtual void spatialSubdivisionCells(int& x, int& y, int &z);
124 
125  static DtMetafileRecord* create();
126  static DtTerrainIntersectorRecord* createFromDescriptor(const DtTerrainIntersectorDescriptor*);
127 
128  virtual DtTerrainIntersectorRecord* clone() const;
129 
130  // identifies a token or passes it to the parent class.
131  virtual bool processToken(std::istream& stream, DtString& token);
133 
134 protected:
135 
136  // Write self to stream.
137  virtual bool writeAttributes(std::ostream& stream) const;
138  virtual bool getAttribute(const DtString attrName, DtString& value, unsigned index=0);
139  virtual bool setToken(const DtString& token, const DtString value);
140 
141 protected:
142  int myX;
143  int myY;
144  int myZ;
145 };
146 
148 {
149 public:
150 
151  // default constructor.
153 
154  // destructor
155  virtual ~DtOpcodeIntersectorRecord();
156 
157  // copy constructor
159 
160  // assignment operator
162 
163  // Returns "DtNoTerrainIntersectorRecordString".
164  virtual DtString recordTypeName() const;
165  virtual DtConfigCategoryType recordCategory() const;
166 
167  virtual int terrainIntersectorType() const;
168 
169  static DtMetafileRecord* create();
170  static DtTerrainIntersectorRecord* createFromDescriptor(const DtTerrainIntersectorDescriptor*);
171 
172  virtual DtTerrainIntersectorRecord* clone() const;
174 };
175 
177 {
179 }
180 
181 #endif

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)