13 #include <vl/globalObjectDesignator.h>
14 #include <vlpi/entityType.h>
15 #include <vlpi/entityIdentifier.h>
16 #include <vlutil/vlMachineTypes.h>
17 #include <vlutil/vlString.h>
18 #include <matrix/vlVector.h>
48 virtual unsigned int getPaddingSize(DtU64 byteOffset,
unsigned int boundary)
const;
50 void writeToBuffer(
char*
buffer )
const;
51 void fillFromBuffer(
const char* buffer,
int bufferSize,
int offset );
56 template<
class Variant>
57 const Variant* variant()
const
60 if (Variant::theTerrainAreaType() == terrainAreaType())
62 return dynamic_cast<const Variant*
>(
this);
67 template<
class Variant>
70 return const_cast<Variant*
>(
static_cast<const Variant*
>(
this));
85 virtual bool approximatelyEqual(
const DtTerrainGeometry& other,
double tolerance = -1.0)
const = 0;
88 virtual int variantNetSize()
const = 0;
91 virtual int variantOctetBoundary()
const = 0;
94 virtual void writeVariantToBuffer(
char* buffer )
const = 0;
97 virtual void fillVariantFromBuffer(
const char* buffer,
int bufferSize,
int offset ) = 0;
101 virtual void printData()
const;
102 virtual void printDataToStream(std::ostream &)
const;
109 static int octetBoundary();
112 static double defaultTolerance();
115 static void setDefaultTolerance(
double tolerance);
135 template<
class VariantType>
142 return VariantType::theTerrainAreaType();
147 return VariantType::theVariantOctetBoundary();
152 return new VariantType();
186 static int maximumOctetBoundary();
191 static void registerDefaultTerrainGeometryVariants();
193 static std::map<DtTerrainAreaTypeEnum32, DtTerrainGeometryVariantInfo*>
theVariants;