VR-Forces Developer's Guide
 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) 2025 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() override;
50 
51  // copy constructor
53 
54  // assignment operator
56 
57  // Returns "DtNoTerrainIntersectorRecordString".
58  virtual DtString recordTypeName() const override;
59  virtual DtConfigCategoryType recordCategory() const override;
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() override;
80 
81  // copy constructor
83 
84  // assignment operator
86 
87  // Returns "DtNativeTerrainIntersectorRecordString".
88  virtual DtString recordTypeName() const override;
89  virtual DtConfigCategoryType recordCategory() const override;
90 
91  virtual int terrainIntersectorType() const override;
92 
93  static DtMetafileRecord* create();
94  static DtTerrainIntersectorRecord* createFromDescriptor(const DtTerrainIntersectorDescriptor*);
95 
96  virtual DtTerrainIntersectorRecord *clone() const override;
98  createIntersectorDescriptor() const override;
99 };
100 
102 {
103 public:
104 
105  // default constructor.
107 
108  // destructor
109  virtual ~DtSpatialSubdivisionIntersectorRecord() override;
110 
111  // copy constructor
113 
114  // assignment operator
116 
117  // Returns "DtNoTerrainIntersectorRecordString".
118  virtual DtString recordTypeName() const override;
119  virtual DtConfigCategoryType recordCategory() const override;
120 
121  virtual int terrainIntersectorType() const override;
122 
123  virtual void setSpatialSubdivisionCells(int x = 100, int y = 100, int z = 100);
124  virtual void spatialSubdivisionCells(int& x, int& y, int &z);
125 
126  static DtMetafileRecord* create();
127  static DtTerrainIntersectorRecord* createFromDescriptor(const DtTerrainIntersectorDescriptor*);
128 
129  virtual DtTerrainIntersectorRecord *clone() const override;
130 
131  // identifies a token or passes it to the parent class.
132  virtual bool processToken(std::istream &stream, DtString &token) override;
134  createIntersectorDescriptor() const override;
135 
136 protected:
137 
138  // Write self to stream.
139  virtual bool writeAttributes(std::ostream &stream) const override;
140  virtual bool getAttribute(const DtString attrName, DtString &value,
141  unsigned index = 0) override;
142  virtual bool setToken(const DtString &token, const DtString value) override;
143 
144 protected:
145  int myX;
146  int myY;
147  int myZ;
148 };
149 
151 {
152 public:
153 
154  // default constructor.
156 
157  // destructor
158  virtual ~DtOpcodeIntersectorRecord() override;
159 
160  // copy constructor
162 
163  // assignment operator
165 
166  // Returns "DtNoTerrainIntersectorRecordString".
167  virtual DtString recordTypeName() const override;
168  virtual DtConfigCategoryType recordCategory() const override;
169 
170  virtual int terrainIntersectorType() const override;
171 
172  static DtMetafileRecord* create();
173  static DtTerrainIntersectorRecord* createFromDescriptor(const DtTerrainIntersectorDescriptor*);
174 
175  virtual DtTerrainIntersectorRecord *clone() const override;
177  createIntersectorDescriptor() const override;
178 };
179 
181 {
183 }
184 
185 #endif
DtConfigCategoryType
Definition: terrainDefines.h:19
int myZ
Definition: terrainIntersectorRecord.h:147
virtual DtString recordTypeName() const override
Returns the type name for the particular record. Descendants should have this method return some stri...
Definition: terrainIntersectorRecord.h:101
DtTerrainIntDescCreatorMap myFactory
Definition: terrainIntersectorRecord.h:36
virtual DtTerrainIntersectorRecord * clone() const =0
virtual DtTerrainIntersectorDescriptor * createIntersectorDescriptor() const =0
virtual bool setToken(const DtString &token, const DtString value)
identifies a token and returns true if the value can be set to it, false otherwise ...
virtual bool getAttribute(const DtString attrName, DtString &value, DtString &type, unsigned index=0)
Given the name of a record&#39;s attribute, returns True if the record has the attribute (the value is re...
Definition: terrainIntersectorRecord.h:41
std::map< int, DtTerrainIntDescCreatorFcn > DtTerrainIntDescCreatorMap
Definition: terrainIntersectorRecord.h:23
virtual DtString recordTypeName() const =0
Returns the type name for the particular record. Descendants should have this method return some stri...
virtual bool processToken(std::istream &stream, DtString &token)
identifies a token or passes token the parent class.
Definition: terrainIntersectorDescriptor.h:22
virtual bool writeAttributes(std::ostream &stream) const
Write attributes to stream. This is called by put(stream)
virtual DtConfigCategoryType recordCategory() const =0
Each record should have a category of configuration they represent. I.e does this record configure te...
static DtTerrainIntersectorDescriptorFactory gTerrainRecordDescriptorFactory
Definition: terrainIntersectorRecord.h:68
#define DT_DLL_terrainDbFactory
Definition: terrainDbFactoryDefines.h:23
voidpf stream
Definition: ioapi.h:39
Definition: terrainIntersectorRecord.h:71
int myX
Definition: terrainIntersectorRecord.h:145
Definition: metafileRecord.h:28
int myY
Definition: terrainIntersectorRecord.h:146
virtual DtConfigCategoryType recordCategory() const override
Each record should have a category of configuration they represent. I.e does this record configure te...
Definition: terrainIntersectorRecord.h:150
virtual int terrainIntersectorType() const =0
DtMetafileRecord & operator=(const DtMetafileRecord &orig)
assignment operator
DtTerrainIntersectorRecord *(* DtTerrainIntDescCreatorFcn)(const DtTerrainIntersectorDescriptor *)
Definition: terrainIntersectorRecord.h:22
DtTerrainIntersectorRecord & operator=(const DtTerrainIntersectorRecord &rhs)
Definition: terrainIntersectorRecord.h:25
static DtTerrainIntersectorDescriptorFactory * factory()
Definition: terrainIntersectorRecord.h:180

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)