VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes
makVrv::DtModelDefinition Class Reference

A model definition Interaction any number of named parameters, and also can be used to store cached data. The model definition will own all of it's cached data.

Inheritance diagram for makVrv::DtModelDefinition:
Inheritance graph
[legend]

Classes

struct  CaseInsensitiveFunc
 
class  SerializableParameterMap
 

Public Types

typedef std::map< std::string,
std::string,
CaseInsensitiveFunc
ParameterMap
 

Public Member Functions

 DtModelDefinition (const std::string &modelName="")
 
 DtModelDefinition (const DtModelDefinition &copy)
 
 DtModelDefinition (const std::string &modelName, const DtModelDefinition &copy)
 
virtual ~DtModelDefinition ()
 
DtModelDefinitionoperator= (const DtModelDefinition &)
 
bool operator== (const DtModelDefinition &) const
 
bool operator!= (const DtModelDefinition &) const
 
virtual void getRecord (makArchives::DtModelDefinitionRecord &rec) const
 
virtual void setFromRecord (const makArchives::DtModelDefinitionRecord &rec)
 
DT_DECLARE_serialize_FUNCTIONS
DT_DECLARE_PORTABLE_serialize_FUNCTIONS
void 
clearCache ()
 
DtVirtualBaseClassfindCachedData (const std::string &name) const
 
void setCachedData (const std::string &name, DtVirtualBaseClass *data)
 
void deleteCachedData (const std::string &name)
 
void setParameter (const std::string &parameterName, const std::string &parameterValue)
 
bool clearParameter (const std::string &parameterName)
 
const std::string & parameter (const std::string &parameterName) const
 
const std::string * findParameter (const std::string &parameterName) const
 
const ParameterMapparameters () const
 
const std::string & name () const
 
const std::string & fileName () const
 
const std::string & schema () const
 
const std::vector< std::string > & listOfSharedFiles () const
 
void addToListOfSharedFiles (const std::string &sharedFile)
 
void setSchema (const std::string &schemaStr)
 
void setFileName (const std::string &fileNameStr)
 
void setPersistent (bool persistent)
 
bool persistent () const
 
bool modified () const
 
void setModified (bool)
 
bool duplicate () const
 
void setDuplicate (bool)
 
const void getVectorParameter (const std::string &parameterName, DtVector &parameterVector) const
 
boost::recursive_mutex & modelLoadingMutex ()
 
virtual bool replaceParameter (const std::string &findWhat, const std::string &replaceWith)
 
virtual DtVector3< float > readVec3 (const std::string &paramName, const DtVector3< float > &initValue) const
 
virtual DtVector4< float > readVec4 (const std::string &paramName, const DtVector4< float > &initValue) const
 
virtual bool getAltitudeBasedScaleConfigurationRecordCollectionParameter (const std::string &parameterName, makArchives::DtAltitudeBasedScaleConfigurationRecordCollection &parameterValue) const
 
virtual bool getBoolean (const std::string &parameterName, bool &parameterValue) const
 
virtual bool getDouble (const std::string &parameterName, double &parameterValue) const
 
- Public Member Functions inherited from makVrv::DtKeywordMixin
 DtKeywordMixin ()
 
virtual ~DtKeywordMixin ()
 
virtual void addKeyword (const std::string &keyword)
 
virtual void removeKeyword (const std::string &keyword)
 
virtual void clearKeywords ()
 
virtual const std::set
< std::string > & 
keywords () const
 
virtual bool findKeywords (const std::set< std::string > &) const
 
virtual bool findKeyword (const std::string &word) const
 

Static Public Attributes

static const std::string theEmptyString
 

Protected Types

typedef boost::unordered_map
< std::string,
DtVirtualBaseClass * > 
CacheMap
 

Protected Member Functions

template<typename Archive >
void _serialize (Archive &ar, unsigned int version)
 

Protected Attributes

std::string myName
 
std::string myFileName
 
std::string mySchema
 
std::vector< std::string > myListOfSharedFiles
 
SerializableParameterMap myParameters
 
CacheMap myRuntimeCache
 
bool myPersistentFlag
 
bool myModifiedFlag
 
bool myDuplicateFlag
 
boost::recursive_mutex myModelLoadingMutex
 
- Protected Attributes inherited from makVrv::DtKeywordMixin
std::set< std::string > myKeywords
 

Member Typedef Documentation

typedef std::map<std::string, std::string, CaseInsensitiveFunc> makVrv::DtModelDefinition::ParameterMap
typedef boost::unordered_map<std::string, DtVirtualBaseClass*> makVrv::DtModelDefinition::CacheMap
protected

Constructor & Destructor Documentation

makVrv::DtModelDefinition::DtModelDefinition ( const std::string &  modelName = "")

CTOR.

Warning
, it is invalid to create a model without a name. A default CTOR is required for storage in a map. The DtModelDefinitionManager will throw exceptions if a model has no name.
makVrv::DtModelDefinition::DtModelDefinition ( const DtModelDefinition copy)

CCTOR.

makVrv::DtModelDefinition::DtModelDefinition ( const std::string &  modelName,
const DtModelDefinition copy 
)

Create a copy but with a new name.

virtual makVrv::DtModelDefinition::~DtModelDefinition ( )
virtual

DTOR.

Member Function Documentation

DtModelDefinition& makVrv::DtModelDefinition::operator= ( const DtModelDefinition )

Assignment operator.

Warning
The internal cache is not copied and is retained.
bool makVrv::DtModelDefinition::operator== ( const DtModelDefinition ) const

Equal operator.

Returns
true is those two modelDefinitions are identical
bool makVrv::DtModelDefinition::operator!= ( const DtModelDefinition ) const

Inequal operator.

Returns
true is those two modelDefinitions are different
virtual void makVrv::DtModelDefinition::getRecord ( makArchives::DtModelDefinitionRecord rec) const
virtual

Fill out a record with the current info.

virtual void makVrv::DtModelDefinition::setFromRecord ( const makArchives::DtModelDefinitionRecord rec)
virtual

Populate from a record.

DT_DECLARE_serialize_FUNCTIONS DT_DECLARE_PORTABLE_serialize_FUNCTIONS void makVrv::DtModelDefinition::clearCache ( )

Declare serialize functions Call via serialize(Archive ar, unsigned int version); Where Archive can be any of : xml_oarchive,xml_iarchive,binary_oarchive, portable_binary_oarchive, binary_iarchive, portable_binary_iarchive,text_oarchive, or text_iarchive example: fstream fo("test.xml",std;:ios_base::out); xml_oarchive os(fo); DtModelDefinition aDef; aDef.serialize(os,0);.

Clear the definition's cache. All cache data is deleted. This function is dangerous to call if there are Model Instance classes using the current cached data.

DtVirtualBaseClass* makVrv::DtModelDefinition::findCachedData ( const std::string &  name) const

Lookup cached data. The name is case sensitive.

Return values
0if no data is cached.
void makVrv::DtModelDefinition::setCachedData ( const std::string &  name,
DtVirtualBaseClass data 
)

Adds a data member to the cache. If an existing data pointer is stored with that name it is deleted. The name is case sensitive. To delete cached data, pass a null pointer.

void makVrv::DtModelDefinition::deleteCachedData ( const std::string &  name)
inline

Helper function for deleting cache.

void makVrv::DtModelDefinition::setParameter ( const std::string &  parameterName,
const std::string &  parameterValue 
)

Set a parameter's value, if the parameter does not exist a new parameter will be created. The parameter name is NOT case sensitive, ie Param == PARAM == param. Setting a parameter to a null string does NOT remove the parameter all together i.e. calls to findParameter will return a valid pointer.

bool makVrv::DtModelDefinition::clearParameter ( const std::string &  parameterName)

Completely remove a parameter. Calls to findParameter will return a null pointer. The parameter name is NOT case sensitive, ie Param == PARAM == param.

Returns
if the paramter was removed.
const std::string& makVrv::DtModelDefinition::parameter ( const std::string &  parameterName) const

Helper function for getting a parameter, not that if the parameter is not found an empty string is returned which is does not indicate if the parameter is found or is simply not set. The parameter name is NOT case sensitive, ie Param == PARAM == param.

const std::string* makVrv::DtModelDefinition::findParameter ( const std::string &  parameterName) const

Find a parameter. The parameter name is NOT case sensitive, ie Param == PARAM == param.

Warning
The data pointer should not be held on to and should be treated as a temporary reference (aka a local copy should be made before any other calls to the Model Definition).
Return values
0if the parameter is not found.
const ParameterMap& makVrv::DtModelDefinition::parameters ( ) const

Get the parameters.

const std::string& makVrv::DtModelDefinition::name ( ) const

Get the model name.

const std::string& makVrv::DtModelDefinition::fileName ( ) const

Get the model definition's file name.

const std::string& makVrv::DtModelDefinition::schema ( ) const

Get the schema string.

const std::vector<std::string>& makVrv::DtModelDefinition::listOfSharedFiles ( ) const

if this definition is a duplicate of another, this list holds all the other files this def duplicates from

void makVrv::DtModelDefinition::addToListOfSharedFiles ( const std::string &  sharedFile)

if this definition is a duplicate of another, the other files this duplicates from will be added to this list

void makVrv::DtModelDefinition::setSchema ( const std::string &  schemaStr)

Set the schema string.

void makVrv::DtModelDefinition::setFileName ( const std::string &  fileNameStr)

Set FileName string.

void makVrv::DtModelDefinition::setPersistent ( bool  persistent)

Set that the model definition is persistent aka it is saved to disk.

bool makVrv::DtModelDefinition::persistent ( ) const

Is this a persistent definition (aka does it exist on disk).

bool makVrv::DtModelDefinition::modified ( ) const

Has this definition been modified (after it was loaded from disk).

void makVrv::DtModelDefinition::setModified ( bool  )
bool makVrv::DtModelDefinition::duplicate ( ) const
void makVrv::DtModelDefinition::setDuplicate ( bool  )
const void makVrv::DtModelDefinition::getVectorParameter ( const std::string &  parameterName,
DtVector parameterVector 
) const

Get a DtVector from the parameter name.

boost::recursive_mutex& makVrv::DtModelDefinition::modelLoadingMutex ( )

Add a keyword.

Remove a keyword. Get the keywords. Check to see if the model definition has any of the supplied keywords. For best performance sort the keywords (from most frequent to less frequent) and for keywords with the same frequency shortest to longest. mutex for protecting the model definition cache when loading a model

virtual bool makVrv::DtModelDefinition::replaceParameter ( const std::string &  findWhat,
const std::string &  replaceWith 
)
virtual

find a parameter, and if it exists, replace it with another one

virtual DtVector3<float> makVrv::DtModelDefinition::readVec3 ( const std::string &  paramName,
const DtVector3< float > &  initValue 
) const
virtual

read a vec3

virtual DtVector4<float> makVrv::DtModelDefinition::readVec4 ( const std::string &  paramName,
const DtVector4< float > &  initValue 
) const
virtual

read a vec4

virtual bool makVrv::DtModelDefinition::getAltitudeBasedScaleConfigurationRecordCollectionParameter ( const std::string &  parameterName,
makArchives::DtAltitudeBasedScaleConfigurationRecordCollection parameterValue 
) const
virtual

read a DtAltitudeBasedScaleConfigurationRecordCollection

virtual bool makVrv::DtModelDefinition::getBoolean ( const std::string &  parameterName,
bool parameterValue 
) const
virtual

read a boolean

virtual bool makVrv::DtModelDefinition::getDouble ( const std::string &  parameterName,
double parameterValue 
) const
virtual

read a double

template<typename Archive >
void makVrv::DtModelDefinition::_serialize ( Archive &  ar,
unsigned int  version 
)
inlineprotected

References DT_SERIALIZE_MEMBER.

Member Data Documentation

const std::string makVrv::DtModelDefinition::theEmptyString
static
std::string makVrv::DtModelDefinition::myName
protected
std::string makVrv::DtModelDefinition::myFileName
protected
std::string makVrv::DtModelDefinition::mySchema
protected
std::vector<std::string> makVrv::DtModelDefinition::myListOfSharedFiles
protected
SerializableParameterMap makVrv::DtModelDefinition::myParameters
protected
CacheMap makVrv::DtModelDefinition::myRuntimeCache
protected

std::set<std::string> myKeywords;

Do not serialize these members:

bool makVrv::DtModelDefinition::myPersistentFlag
protected
bool makVrv::DtModelDefinition::myModifiedFlag
protected
bool makVrv::DtModelDefinition::myDuplicateFlag
protected
boost::recursive_mutex makVrv::DtModelDefinition::myModelLoadingMutex
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)