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) 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
DtConfigCategoryType
Definition: terrainDefines.h:19
int myZ
Definition: terrainIntersectorRecord.h:144
virtual DtString recordTypeName() const
Returns the type name for the particular record. Descendants should have this method return some stri...
Definition: terrainIntersectorRecord.h:100
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
Each record should have a category of configuration they represent. I.e does this record configure te...
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:142
Definition: metafileRecord.h:28
int myY
Definition: terrainIntersectorRecord.h:143
Definition: terrainIntersectorRecord.h:147
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:176

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)