13 #include <vl/globalObjectDesignator.h>
14 #include <vlpi/entityIdentifier.h>
15 #include <vlutil/vlMachineTypes.h>
16 #include <vlutil/vlString.h>
17 #include <matrix/vlVector.h>
49 virtual unsigned int getPaddingSize(DtU64 byteOffset,
unsigned int boundary)
const;
51 void writeToBuffer(
char* buffer )
const;
52 void fillFromBuffer(
const char* buffer,
int bufferSize,
int offset );
57 template<
class Variant>
61 if (Variant::theTerrainAreaType() == terrainAreaType())
63 return dynamic_cast<const Variant*
>(
this);
68 template<
class Variant>
71 return const_cast<Variant*
>(
static_cast<const Variant*
>(
this));
86 virtual bool approximatelyEqual(
const DtTerrainGeometry& other,
double tolerance = -1.0)
const = 0;
89 virtual int variantNetSize()
const = 0;
92 virtual int variantOctetBoundary()
const = 0;
95 virtual void writeVariantToBuffer(
char* buffer )
const = 0;
98 virtual void fillVariantFromBuffer(
const char* buffer,
int bufferSize,
int offset ) = 0;
102 virtual void printData()
const;
103 virtual void printDataToStream(std::ostream &)
const;
110 static int octetBoundary();
113 static double defaultTolerance();
116 static void setDefaultTolerance(
double tolerance);
137 template<
class VariantType>
144 return VariantType::theTerrainAreaType();
149 return VariantType::theVariantOctetBoundary();
154 return new VariantType();
188 static int maximumOctetBoundary();
193 static void registerDefaultTerrainGeometryVariants();
195 static std::map<DtTerrainAreaTypeEnum32, DtTerrainGeometryVariantInfo*>
theVariants;
virtual DtTerrainGeometry * createVariant() const =0
virtual DtTerrainGeometryVariantInfo * clone() const =0
virtual int variantOctetBoundary() const =0
virtual ~DtTerrainGeometryVariantInfo()
Definition: terrainGeometry.h:129
Variant * variant()
If this Terrain Geometry object matches the given variant type, returns a pointer to this object of t...
Definition: terrainGeometry.h:69
Class for providing information on a Terrain Geometry variant. A new DtTerrainGeometryVariantInfo mus...
Definition: terrainGeometry.h:126
virtual DtTerrainAreaTypeEnum32 terrainAreaType() const override
Definition: terrainGeometry.h:142
virtual int variantOctetBoundary() const override
Definition: terrainGeometry.h:147
DT_DLL_terrainCS bool operator==(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
DT_DLL_features std::ostream & operator<<(std::ostream &, const DtFeatureTransform &)
std::ostream output.
Template implementation of DtTerrainGeometryVariantInfo.
Definition: terrainGeometry.h:138
Definition: terrainGeometry.h:26
static std::map< DtTerrainAreaTypeEnum32, DtTerrainGeometryVariantInfo * > theVariants
Definition: terrainGeometry.h:195
Factor class for creating Terrain Geometry variants based on Terrain Area Type. Default types will be...
Definition: terrainGeometry.h:166
static DtTerrainGeometryVariantInfo * theUnknownVariant
Definition: terrainGeometry.h:197
Definition: terrainGeometry.h:27
virtual DtTerrainGeometryVariantInfo * clone() const override
Definition: terrainGeometry.h:157
virtual DtTerrainGeometry * createVariant() const override
Definition: terrainGeometry.h:152
Definition: terrainGeometry.h:23
voidpf stream
Definition: ioapi.h:39
DtTerrainAreaTypeEnum32
Definition: terrainGeometry.h:21
#define DT_DLL_vrfExtProtocol
Definition: vrfExtProtocolDefines.h:23
DT_DLL_terrainCS bool operator!=(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
const Variant * variant() const
If this Terrain Geometry object matches the given variant type, returns a pointer to this object of t...
Definition: terrainGeometry.h:58
static bool theFactoryIsInitialized
Definition: terrainGeometry.h:199
static double theDefaultTolerance
Definition: terrainGeometry.h:120
voidpf uLong offset
Definition: ioapi.h:42
Definition: terrainGeometry.h:25
virtual DtTerrainAreaTypeEnum32 terrainAreaType() const =0
Definition: terrainGeometry.h:28
Definition: terrainGeometry.h:24
Definition: terrainGeometry.h:33