10 #include <vlutil/vlMachineTypes.h>
11 #include <vlutil/vlString.h>
12 #include <vl/globalObjectDesignator.h>
13 #include <vlpi/entityType.h>
14 #include <vlpi/entityIdentifier.h>
15 #include <matrix/vlVector.h>
47 virtual unsigned int getPaddingSize(DtU64 byteOffset,
unsigned int boundary)
const;
49 void writeToBuffer(
char* buffer )
const;
50 void fillFromBuffer(
const char* buffer,
int bufferSize,
int offset );
55 template<
class Variant>
56 const Variant* variant()
const
59 if (Variant::theTerrainAreaType() == terrainAreaType())
61 return dynamic_cast<const Variant*
>(
this);
66 template<
class Variant>
69 return const_cast<Variant*
>(
static_cast<const Variant*
>(
this));
84 virtual bool approximatelyEqual(
const DtTerrainGeometry& other,
double tolerance = -1.0)
const = 0;
87 virtual int variantNetSize()
const = 0;
90 virtual int variantOctetBoundary()
const = 0;
93 virtual void writeVariantToBuffer(
char* buffer )
const = 0;
96 virtual void fillVariantFromBuffer(
const char* buffer,
int bufferSize,
int offset ) = 0;
100 virtual void printData()
const;
101 virtual void printDataToStream(std::ostream &)
const;
108 static int octetBoundary();
111 static double defaultTolerance();
114 static void setDefaultTolerance(
double tolerance);
134 template<
class VariantType>
141 return VariantType::theTerrainAreaType();
146 return VariantType::theVariantOctetBoundary();
151 return new VariantType();
185 static int maximumOctetBoundary();
190 static void registerDefaultTerrainGeometryVariants();
192 static std::map<DtTerrainAreaTypeEnum32, DtTerrainGeometryVariantInfo*>
theVariants;