40 #ifndef _GLS_METADATA_ATTRIBUTES_H
41 #define _GLS_METADATA_ATTRIBUTES_H
75 *_attribPtr = ( val != 0 );
82 outstr << *_attribPtr;
89 T ConvertToIntOrBool(
int value )
94 inline bool ConvertToIntOrBool(
int value )
100 T ReadValueAsIntOrBool( std::istream& instr )
105 if( strcasecmp( value.c_str(),
"TRUE" ) == 0 )
109 else if( strcasecmp( value.c_str(),
"FALSE" ) == 0 )
116 temp = ConvertToIntOrBool<T>( atoi( value.c_str() ) );
124 *_attribPtr = ReadValueAsIntOrBool<bool>( instr );
135 *_attribPtr = (int)val;
145 *_attribPtr = (short)val;
155 *_attribPtr = (
unsigned short)val;
165 *_attribPtr = (
unsigned char)val;
173 outstr << (int)*_attribPtr;
182 *_attribPtr =
static_cast<unsigned char>( ReadValueAsIntOrBool<int>( instr ) );
191 *_attribPtr = ReadValueAsIntOrBool<int>( instr );
200 *_attribPtr = ReadValueAsIntOrBool<unsigned int>( instr );
212 *_attribPtr = (float)val;
228 virtual GLS_EXPORT
long ValueInt();
229 virtual GLS_EXPORT
void ValueInt(
long val );
231 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
232 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr );
244 virtual GLS_EXPORT ~DistiAttributeFloatArray();
246 virtual GLS_EXPORT
bool OkToWrite()
const;
248 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
249 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr );
261 virtual GLS_EXPORT ~DistiAttributeDoubleArray();
263 virtual GLS_EXPORT
bool OkToWrite()
const;
265 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
266 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr );
278 template<
class containerClass>
283 using _BaseClass::_pairList;
285 typedef void ( containerClass::*SetMethodType )(
const int );
286 typedef int ( containerClass::*GetMethodType )();
291 _pairList = &TextureModeEnumList;
306 template<
class containerClass>
311 using _BaseClass::_pairList;
313 typedef void ( containerClass::*SetMethodType )(
const int );
314 typedef int ( containerClass::*GetMethodType )();
319 _pairList = &TextureFilterEnumList;
333 template<
class containerClass>
338 using _BaseClass::_pairList;
340 typedef void ( containerClass::*SetMethodType )(
const int );
341 typedef int ( containerClass::*GetMethodType )();
346 _pairList = &PolyModeEnumList;
357 template<
class containerClass>
362 using _BaseClass::_pairList;
364 typedef void ( containerClass::*SetMethodType )( int );
365 typedef int ( containerClass::*GetMethodType )();
370 _pairList = &PolyEndEnumList;
381 template<
class containerClass>
386 using _BaseClass::_pairList;
388 typedef void ( containerClass::*SetMethodType )(
const int );
389 typedef int ( containerClass::*GetMethodType )();
394 _pairList = &ShadingEnumList;
399 template<
class containerClass>
404 using _BaseClass::_pairList;
406 typedef void ( containerClass::*SetMethodType )(
const int );
407 typedef int ( containerClass::*GetMethodType )();
421 _pairList = &ColorMaterialModeEnum;
424 virtual GLS_EXPORT
bool OkToWrite()
const {
return false; }
428 template<
class containerClass>
433 using _BaseClass::_pairList;
435 typedef void ( containerClass::*SetMethodType )(
const int );
436 typedef int ( containerClass::*GetMethodType )();
446 _pairList = &ProtectionEnumList;
459 template<
class containerClass>
464 using _BaseClass::_pairList;
466 typedef void ( containerClass::*SetMethodType )(
const int );
467 typedef int ( containerClass::*GetMethodType )();
472 _pairList = &AlphaModeEnumList;
492 virtual GLS_EXPORT ~DistiAttributeString();
495 GLS_EXPORT
char* LocalStorageString();
496 virtual GLS_EXPORT
bool OkToWrite()
const;
498 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
499 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr );
515 virtual GLS_EXPORT std::string ValueString();
516 virtual GLS_EXPORT
void ValueString(
const std::string& s );
518 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
519 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr );
533 virtual GLS_EXPORT
bool OkToWrite()
const;
537 virtual GLS_EXPORT std::string ValueString();
538 virtual GLS_EXPORT
void ValueString(
const std::string& s );
540 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
541 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr );
551 virtual GLS_EXPORT ~DistiAttributeFixedString();
553 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
554 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr );
560 std::string _localStorageString;
568 virtual GLS_EXPORT ~DistiAttributeStdString();
571 GLS_EXPORT std::string* LocalStorageString();
573 virtual GLS_EXPORT
bool OkToWrite()
const;
575 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
576 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr );
584 virtual GLS_EXPORT ~DistiAttributeLocation();
586 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
587 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr );
599 virtual GLS_EXPORT
bool OkToWrite()
const;
602 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
603 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr );
617 virtual GLS_EXPORT
bool OkToWrite()
const;
620 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
621 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr );
629 template<
class Map_t>
639 , _attribPtr( attribPtr )
645 , _attribPtr(
new Map_t() )
658 return _attribPtr != 0 && _attribPtr->size();
661 static std::string GetEmptyValue() {
return "$$DISTI_EMPTY$$"; }
666 << DistiAttribDict::SpacingString() <<
"{\n";
667 DistiAttribDict::SpacingInc();
671 typename Map_t::iterator i;
672 for( i = _attribPtr->begin(); i != _attribPtr->end(); ++i )
674 std::ostringstream str;
676 const std::string second = str.str();
678 outstr << DistiAttribDict::SpacingString() << i->first <<
" "
679 << ( second.empty() ? GetEmptyValue() : second ) <<
'\n';
683 DistiAttribDict::SpacingDec();
684 outstr << DistiAttribDict::SpacingString() <<
"}\n";
691 instr.ignore( INT_MAX,
'{' );
695 std::stringstream fontStream;
696 instr.get( *fontStream.rdbuf(),
'}' );
700 while( fontStream.good() )
704 std::stringstream::char_type c;
712 }
while( fontStream.good() && isspace( c ) );
714 if( fontStream.good() )
716 fontStream.putback( c );
718 #if _WIN32 && _MSC_VER < 1300 // if _MSC_VER < vc70
720 Map_t::referent_type value;
722 typename Map_t::key_type key;
723 typename Map_t::mapped_type value;
727 std::getline( fontStream >> std::ws, strVal );
729 if( strVal != GetEmptyValue() )
731 std::istringstream str( strVal );
735 ( *_attribPtr )[ key ] = value;
753 unsigned int* _numVertices;
754 unsigned int _numElements;
756 bool _compatabilityMode;
759 void SetCompatabilityMode(
bool mode ) { _compatabilityMode = mode; }
763 , _attribPtr( attribPtr )
764 , _numVertices( numVertices )
766 , _fixedArray(
false )
768 _compatabilityMode =
true;
773 , _attribPtr(
new Tptr( attribPtr ) )
774 , _numVertices( NULL )
775 , _numElements( numElements )
776 , _fixedArray(
true )
778 _compatabilityMode =
true;
783 if( ( _fixedArray || _localStorage ) && _attribPtr )
790 return ( *_attribPtr != NULL );
795 if( *_attribPtr != NULL )
797 unsigned int numVerts = _numElements;
800 outstr << *_numVertices;
801 numVerts = *_numVertices;
803 DistiAttribDict::SpacingInc();
804 for(
unsigned int i = 0; i < numVerts; i++ )
807 outstr << ( *_attribPtr )[ i ];
809 DistiAttribDict::SpacingDec();
815 unsigned int numVerts = _numElements;
820 *_numVertices = numVerts;
823 if( *_attribPtr != NULL )
824 delete[] * _attribPtr;
828 *_attribPtr =
new T[ numVerts ];
833 if( !_compatabilityMode )
837 instr.getline( buf, 1024 );
840 for(
unsigned int i = 0; i < numVerts; i++ )
842 if( !_compatabilityMode )
845 instr.getline( buf, 1024 );
849 sscanf( buf,
"%f %f %f",
850 &( ( *_attribPtr )[ i ].x ),
851 &( ( *_attribPtr )[ i ].y ),
852 &( ( *_attribPtr )[ i ].z ) );
854 assert( 3 == count );
859 instr >> ( *_attribPtr )[ i ];
871 return DistiAttributeBase::operator==( rArg );
874 if( !( _name == r->
_name ) || _numElements != r->_numElements )
877 for(
unsigned int i = 0u; i < _numElements; ++i )
879 T leftVert = ( *_attribPtr )[ i ];
880 T rightVert = ( *r->_attribPtr )[ i ];
898 unsigned int* _numVertices;
899 unsigned int _numElements;
901 bool _compatabilityMode;
904 void SetCompatabilityMode(
bool mode ) { _compatabilityMode = mode; }
908 , _attribPtr( attribPtr )
909 , _numVertices( numVertices )
911 , _fixedArray(
false )
913 _compatabilityMode =
true;
918 , _attribPtr(
new Tptr( attribPtr ) )
919 , _numVertices( NULL )
920 , _numElements( numElements )
921 , _fixedArray(
true )
923 _compatabilityMode =
true;
928 if( ( _fixedArray || _localStorage ) && _attribPtr )
935 return ( *_attribPtr != NULL );
940 if( *_attribPtr != NULL )
942 unsigned int numVerts = _numElements;
945 outstr << *_numVertices;
946 numVerts = *_numVertices;
948 DistiAttribDict::SpacingInc();
949 for(
unsigned int i = 0; i < numVerts; i++ )
952 outstr << ( *_attribPtr )[ i ];
954 DistiAttribDict::SpacingDec();
960 unsigned int numVerts = _numElements;
965 *_numVertices = numVerts;
968 if( *_attribPtr != NULL )
969 delete[] * _attribPtr;
972 *_attribPtr =
new Vertex[ numVerts ];
975 if( !_compatabilityMode )
979 instr.getline( buf, 1024 );
982 for(
unsigned int i = 0; i < numVerts; i++ )
984 if( !_compatabilityMode )
987 instr.getline( buf, 1024 );
992 sscanf( buf,
"%f %f %f %d %d %d %d",
993 &( ( *_attribPtr )[ i ].x ),
994 &( ( *_attribPtr )[ i ].y ),
995 &( ( *_attribPtr )[ i ].z ),
998 assert( 7 == count );
1001 ( *_attribPtr )[ i ].color.RGBA( (
unsigned char)r, (
unsigned char)g, (
unsigned char)b, (
unsigned char)a );
1005 instr >> ( *_attribPtr )[ i ];
1017 return DistiAttributeBase::operator==( rArg );
1020 if( !( _name == r->
_name ) || _numElements != r->_numElements )
1023 for(
unsigned int i = 0u; i < _numElements; ++i )
1025 Vertex leftVert = ( *_attribPtr )[ i ];
1026 Vertex rightVert = ( *r->_attribPtr )[ i ];
1051 unsigned int numVerts = _numElements;
1053 for(
unsigned int i = 0; i < numVerts; i++ )
1055 outstr << std::endl;
1056 outstr << ( *_attribPtr )[ i ];
1063 unsigned int numVerts = _numElements;
1065 for(
unsigned int i = 0; i < numVerts; i++ )
1073 std::getline( instr, line );
1075 if( i == 0 && line.length() == 0 )
1076 std::getline( instr, line );
1078 std::stringstream strm( line );
1079 strm >> ( *_attribPtr )[ i ];
1115 , _originalAttribName( originalName )
1116 , _dictionary( dict )
1121 virtual DISTI_EXPORT
bool OkToWrite()
const DISTI_METHOD_OVERRIDE;
1124 virtual DISTI_EXPORT
bool ValueChanged() DISTI_METHOD_OVERRIDE;
1127 virtual DISTI_EXPORT
void ResetValueChanged() DISTI_METHOD_OVERRIDE;
1130 virtual DISTI_EXPORT std::string ValueString() DISTI_METHOD_OVERRIDE;
1133 virtual DISTI_EXPORT
void ValueString(
const std::string& s ) DISTI_METHOD_OVERRIDE;
1136 virtual DISTI_EXPORT
long ValueInt() DISTI_METHOD_OVERRIDE;
1139 virtual DISTI_EXPORT
void ValueInt(
long val ) DISTI_METHOD_OVERRIDE;
1142 virtual DISTI_EXPORT
double ValueFloat() DISTI_METHOD_OVERRIDE;
1145 virtual DISTI_EXPORT
void ValueFloat(
double val ) DISTI_METHOD_OVERRIDE;
1148 virtual DISTI_EXPORT std::ostream& WriteValue( std::ostream& outstr ) DISTI_METHOD_OVERRIDE;
1151 virtual DISTI_EXPORT std::istream& ReadValue( std::istream& instr ) DISTI_METHOD_OVERRIDE;
1154 virtual DISTI_EXPORT
bool operator==(
const DistiAttributeBase& r ) DISTI_METHOD_OVERRIDE;
1159 virtual DISTI_EXPORT
void UnregisterObserver(
CallbackID id ) DISTI_METHOD_OVERRIDE;
1161 virtual DISTI_EXPORT
void NotifyObservers() DISTI_METHOD_OVERRIDE;
1172 template<
class T,
bool showIndex >
1180 , _attribPtr( attribPtr )
1186 , _attribPtr(
new T() )
1198 return ( _attribPtr != NULL && _attribPtr->Size() );
1203 if( _attribPtr != NULL )
1205 int numEntries = _attribPtr->Count();
1206 outstr << numEntries;
1208 DistiAttribDict::SpacingInc();
1210 for(
int i = 0; i < numEntries; i++ )
1212 outstr << std::endl;
1216 outstr << DistiAttribDict::SpacingString() << i <<
" ";
1219 outstr << DistiAttribDict::SpacingString() << ( *_attribPtr )[ i ] <<
" ";
1221 DistiAttribDict::SpacingDec();
1228 instr >> numEntries;
1230 _attribPtr->Count( numEntries );
1232 for(
int i = 0; i < numEntries; i++ )
1239 instr >> ( *_attribPtr )[ entry ];
1250 template<
class T,
bool showIndex >
1261 , _attribPtr( attribPtr )
1268 , _attribPtr(
new T() )
1283 return ( _attribPtr != NULL && _attribPtr->size() );
1288 if( _attribPtr != NULL )
1290 int numEntries = _attribPtr->size();
1291 outstr << numEntries;
1293 DistiAttribDict::SpacingInc();
1295 for(
int i = 0; i < numEntries; i++ )
1297 outstr << std::endl;
1301 outstr << DistiAttribDict::SpacingString() << i <<
" ";
1304 outstr << DistiAttribDict::SpacingString() << ( *_attribPtr )[ i ] <<
" ";
1306 DistiAttribDict::SpacingDec();
1313 if( _attribPtr != NULL )
1316 instr >> numEntries;
1318 _attribPtr->resize( numEntries );
1320 for(
int i = 0; i < numEntries; i++ )
1327 instr >> ( *_attribPtr )[ entry ];
1344 typedef T* ( *CreateItemCb )();
1348 CreateItemCb _createCb;
1355 , _createCb( createCb )
1365 << DistiAttribDict::SpacingString() <<
"{\n";
1366 DistiAttribDict::SpacingInc();
1367 for(
unsigned int i = 0; i < _array->
Count(); i++ )
1369 if( ( *_array )[ i ] )
1371 outstr << DistiAttribDict::SpacingString();
1373 ( ( *_array )[ i ] )->WriteValue( outstr );
1377 DistiAttribDict::SpacingDec();
1378 outstr << DistiAttribDict::SpacingString() <<
"}\n";
1386 while( DistiAttribDict::ScanToken( instr, buf ) )
1396 T* temp =
dynamic_cast<T*
>( _createCb() );
1400 ( *_array )[ _array->
Count() - 1 ]->ReadValue( instr );
1417 template<
class containerT,
class T,
class SetArgT = const T&>
1422 typedef void ( containerT::*SetMethodType )( SetArgT );
1423 typedef T ( containerT::*GetMethodType )();
1424 typedef T ( containerT::*GetMethodConstType )()
const;
1428 containerT* _container;
1429 SetMethodType _setMethod;
1430 GetMethodType _getMethod;
1434 : _BaseClass( NULL, name, attribPtr )
1436 , _container( frame )
1437 , _setMethod( setMethod )
1438 , _getMethod( getMethod )
1441 if(
typeid( T ) ==
typeid(
float ) ||
typeid( T ) ==
typeid(
double ) ||
typeid( T ) ==
typeid(
long double ) )
1449 return ( this->_attribPtr || _getMethod );
1454 virtual std::string
ValueString() DISTI_METHOD_OVERRIDE {
return DistiAttributeBase::ValueString(); }
1455 virtual void ValueString(
const std::string& s ) DISTI_METHOD_OVERRIDE { DistiAttributeBase::ValueString( s ); }
1457 virtual long ValueInt() DISTI_METHOD_OVERRIDE {
return DistiAttributeBase::ValueInt(); }
1458 virtual void ValueInt(
long val ) DISTI_METHOD_OVERRIDE { DistiAttributeBase::ValueInt( val ); }
1460 virtual double ValueFloat() DISTI_METHOD_OVERRIDE {
return DistiAttributeBase::ValueFloat(); }
1461 virtual void ValueFloat(
double val ) DISTI_METHOD_OVERRIDE { DistiAttributeBase::ValueFloat( val ); }
1463 virtual std::ostream&
WriteValue( std::ostream& outstr ) DISTI_METHOD_OVERRIDE
1465 if( _precision > 0 )
1466 outstr.precision(
int( _precision ) );
1468 if( _getMethod && _container )
1471 T* tempAttribPtr = this->_attribPtr;
1474 T temp( ( _container->*_getMethod )() );
1477 this->_attribPtr = &temp;
1480 _BaseClass::WriteValue( outstr );
1483 this->_attribPtr = tempAttribPtr;
1485 else if( this->_attribPtr )
1487 _BaseClass::WriteValue( outstr );
1493 virtual std::istream&
ReadValue( std::istream& instr ) DISTI_METHOD_OVERRIDE
1495 if( _setMethod && _container )
1498 T* tempAttribPtr = this->_attribPtr;
1502 this->_attribPtr = &temp;
1505 _BaseClass::ReadValue( instr );
1508 ( _container->*_setMethod )( temp );
1510 this->_attribPtr = tempAttribPtr;
1512 else if( this->_attribPtr )
1514 _BaseClass::ReadValue( instr );
1522 if( _getMethod && _container )
1525 return ( _container->*_getMethod )();
1527 else if( this->_attribPtr )
1529 return _BaseClass::Value();
1537 virtual void Value(
const T& val ) DISTI_METHOD_OVERRIDE
1539 if( _setMethod && _container )
1541 ( _container->*_setMethod )( val );
1543 else if( this->_attribPtr )
1545 _BaseClass::Value( val );
1562 template<
typename Type,
class Class>
1573 template<
typename Type,
class Class>
1585 template<
typename Type,
class Class>
1596 template<
typename Type,
class Class>
1606 template<
typename Type,
class Class>
1617 template<
typename Type,
class Class>
1654 template<
class enumType>
1658 enumType* _attribPtr;
1665 , _attribPtr( attribPtr )
1666 , _pairList( pairList )
1671 , _attribPtr(
new enumType( value ) )
1672 , _pairList( pairList )
1678 if( _localStorage && _attribPtr )
1684 virtual void ValueInt(
long val ) { *_attribPtr = (enumType)val; };
1691 *_attribPtr = ( enumType ) * ( ptr->_attribPtr );
1696 return DistiAttributeBase::operator=( oldClass );
1702 bool foundIt =
false;
1704 typename DistiAttributeEnumDefList::iterator item = _pairList->begin();
1705 while( item != _pairList->end() )
1707 if( ( *item )->_enum == *_attribPtr )
1709 outstr << ( *item )->_string;
1718 outstr << (int)*_attribPtr;
1730 bool foundIt =
false;
1731 typename DistiAttributeEnumDefList::iterator item = _pairList->begin();
1734 while( item != _pairList->end() )
1736 if( strcmp( ( *item )->_string, value ) == 0 )
1738 *_attribPtr = ( enumType )( *item )->_enum;
1750 *_attribPtr = (enumType)atoi( value );
1777 #define DISTI_REGISTER_METHOD_CALLBACK( instance, Class, Method ) \
1779 typedef CallbackMethodCallerTemplate<Class, Class> Caller; \
1780 typedef typename Caller::MethodType1 MethodType; \
1781 const MethodType callback = reinterpret_cast<MethodType>( Method ); \
1782 ThisClass::CallbackCaller( new Caller( callback, instance ) ); \
1792 #define DISTI_SET_OBJECT_CALLBACK1( object, method, parent ) \
1793 ( object )->CallbackCaller( \
1794 new CallbackMethodCallerTemplate<DisplayObject, DisplayObject>( \
1795 ( disti::CallbackMethodCallerTemplate<DisplayObject, DisplayObject>::MethodType1 )( method ), ( parent ) ) );
1806 #define DISTI_ADD_ATTRIBUTE( Type, name, memberVarAddr ) \
1808 static const AttributeName attr( name ); \
1809 CallbackAttributeNotifier<ThisClass> cb( this, attr ); \
1810 this->Attributes().Add( new DistiAttribute<Type>( &cb, ( attr ), ( memberVarAddr ) ) ); \
1825 #define DISTI_ADD_ATTRIBUTE_CALLBACK( Type, name, memberVarAddr, callbackFunction ) \
1827 typedef void ( ThisClass::*Method )(); \
1828 static const AttributeName attr( name ); \
1829 CallbackAttributeNotifier<ThisClass> cb( this, attr, reinterpret_cast<Method>( callbackFunction ) ); \
1830 this->Attributes().Add( new DistiAttribute<Type>( &cb, ( attr ), ( memberVarAddr ) ) ); \
1843 #define DISTI_ADD_ATTRIBUTE_SET_GET( Type, name, setter, getter ) \
1845 static const AttributeName attr( name ); \
1846 this->Attributes().Add( CreateDistiAttributeProperty<Type>( attr, this, setter, getter ) ); \
1856 #define DISTI_ADD_ATTRIBUTE_STRING( name, memberVarAddr ) \
1858 static const AttributeName attr( name ); \
1859 CallbackAttributeNotifier<ThisClass> cb( this, attr ); \
1860 this->Attributes().Add( new DistiAttributeEncodedStdString( &cb, attr, memberVarAddr ) ); \
1872 #define DISTI_ADD_ATTRIBUTE_STRING_CALLBACK( name, memberVarAddr, callbackFunction ) \
1874 typedef void ( ThisClass::*Method )(); \
1875 static const AttributeName attr( name ); \
1876 CallbackAttributeNotifier<ThisClass> cb( this, attr, reinterpret_cast<Method>( callbackFunction ) ); \
1877 this->Attributes().Add( new DistiAttributeEncodedStdString( &cb, attr, memberVarAddr ) ); \
Definition: display_types.h:75
Definition: gls_metadata_attributes.h:237
Definition: gls_metadata_attributes.h:580
Definition: gls_metadata_attributes.h:254
Definition: display_types.h:100
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_metadata_attributes.h:1362
Definition: display_types.h:73
virtual std::istream & ReadValue(std::istream &instr)
Definition: gls_metadata_attributes.h:1225
Definition: gls_metadata_attributes.h:1631
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_metadata_attributes.h:793
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_metadata_attributes.h:1049
The disti::Material class.
Definition: gls_metadata_attributes.h:558
virtual std::istream & ReadValue(std::istream &instr)
Definition: gls_metadata_attributes.h:813
Definition: gls_metadata_attributes.h:279
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_metadata_attributes.h:938
virtual std::istream & ReadValue(std::istream &instr)
Definition: gls_metadata_attributes.h:1061
DistiAttributeProperty< Class, Type, const Type & > * CreateDistiAttributeProperty(const AttributeName &attrName, Class *const obj, const typename DistiAttributeProperty< Class, Type, const Type & >::SetMethodType setMethod, const typename DistiAttributeProperty< Class, Type, const Type & >::GetMethodConstType getMethod)
Definition: gls_metadata_attributes.h:1618
The disti::DynamicArray class. A templated array of objects capable of dynamically growing...
Definition: gls_metadata_attributes.h:1251
Definition: gls_metadata_attributes.h:220
Definition: gls_metadata_attributes.h:460
Definition: gls_metadata_attributes.h:382
Definition: display_types.h:152
Definition: gls_metadata_attributes.h:505
Definition: gls_metadata_attributes.h:630
virtual long ValueInt()
Definition: gls_metadata_attributes.h:1683
Definition: display_types.h:150
Definition: display_types.h:91
virtual bool OkToWrite() const
Definition: gls_metadata_attributes.h:656
virtual bool OkToWrite() const
Definition: gls_metadata_attributes.h:1196
Definition: display_types.h:103
Definition: gls_metadata_attributes.h:1655
Definition: display_types.h:92
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: disti_metadata.h:576
virtual bool operator==(const DistiAttributeBase &rArg)
Definition: gls_metadata_attributes.h:1012
virtual T Value()
Definition: gls_metadata_attributes.h:1520
Definition: gls_metadata_attributes.h:1040
virtual std::istream & ReadValue(std::istream &instr)
Definition: disti_metadata.h:590
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_metadata_attributes.h:663
virtual std::istream & ReadValue(std::istream &instr)
Definition: gls_metadata_attributes.h:1311
Definition: display_types.h:102
virtual std::string ValueString()
Definition: gls_metadata_attributes.h:1454
void InsertObject(const T &obj, unsigned int loc)
Definition: dynamic_array.h:225
Definition: display_types.h:110
A file for all GL Studio files to include.
Definition: display_types.h:63
Definition: display_types.h:116
The disti::DisplayObject class and global enumerations.
Definition: gls_metadata_attributes.h:893
virtual void ValueString(const std::string &s)
Definition: gls_metadata_attributes.h:1455
unsigned int CallbackID
Type for unique identifiers.
Definition: disti_metadata.h:330
Definition: display_types.h:90
Definition: gls_metadata_attributes.h:1173
Definition: gls_metadata_attributes.h:1341
virtual std::istream & ReadValue(std::istream &instr)
Definition: gls_metadata_attributes.h:1381
Definition: gls_metadata_attributes.h:307
virtual bool OkToWrite() const
Definition: gls_metadata_attributes.h:424
Definition: gls_metadata_attributes.h:1110
Definition: display_types.h:101
Definition: disti_metadata.h:898
Definition: display_types.h:123
virtual void ValueInt(long val)
Definition: gls_metadata_attributes.h:1684
The List_c class. Generic linked list.
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_metadata_attributes.h:1640
void Count(const unsigned int count)
Definition: dynamic_array.h:115
virtual void Add(DistiAttributeBase *attr)
Definition: display_types.h:151
Definition: display_types.h:64
Definition: display_types.h:62
Definition: gls_metadata_attributes.h:1091
Definition: disti_metadata.h:476
The disti::Vertex class. A class for manipulating 3D vertices.
Generally useful defines, macros, enumerations and function prototypes.
Definition: gls_metadata_attributes.h:1418
Definition: gls_metadata_attributes.h:429
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_metadata_attributes.h:1700
Definition: disti_metadata.h:174
virtual long ValueInt()
Definition: disti_metadata.h:531
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_metadata_attributes.h:1463
virtual std::istream & ReadValue(std::istream &instr)
Definition: gls_metadata_attributes.h:958
Definition: disti_metadata.h:157
Definition: display_types.h:61
Definition: gls_metadata_attributes.h:478
virtual double ValueFloat()
Definition: gls_metadata_attributes.h:1460
Definition: disti_metadata.h:667
Definition: disti_metadata.h:886
Definition: callback_caller_base.h:55
virtual bool OkToWrite() const
Definition: gls_metadata_attributes.h:1360
virtual std::istream & ReadValue(std::istream &instr)
Definition: gls_metadata_attributes.h:1645
Definition: display_types.h:94
virtual std::istream & ReadValue(std::istream &instr)
Definition: gls_metadata_attributes.h:1493
bool Equal(T1 x, T2 y, float precision=0.001f)
Definition: util.h:228
Definition: display_types.h:71
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_metadata_attributes.h:1201
virtual bool OkToWrite() const
Definition: gls_metadata_attributes.h:1447
Definition: display_types.h:149
Definition: gls_metadata_attributes.h:591
AttributeName _name
Definition: disti_metadata.h:181
virtual long ValueInt()
Definition: gls_metadata_attributes.h:1457
virtual bool OkToWrite() const
Definition: gls_metadata_attributes.h:933
Definition: display_types.h:117
virtual void ValueFloat(double val)
Definition: gls_metadata_attributes.h:1461
virtual std::istream & ReadValue(std::istream &instr)
Definition: gls_metadata_attributes.h:689
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_metadata_attributes.h:1286
Definition: display_types.h:93
Definition: gls_metadata_attributes.h:544
Definition: gls_metadata_attributes.h:748
Definition: display_types.h:74
virtual DistiAttributeBase & operator=(const DistiAttributeBase &oldClass)
Definition: gls_metadata_attributes.h:1686
Definition: display_types.h:70
virtual void Value(const T &val)
Definition: gls_metadata_attributes.h:1537
Definition: display_types.h:72
virtual bool OkToWrite() const
Definition: gls_metadata_attributes.h:1103
virtual std::istream & ReadValue(std::istream &instr)
Definition: gls_metadata_attributes.h:1724
Definition: gls_metadata_attributes.h:607
Definition: gls_metadata_attributes.h:400
Definition: gls_metadata_attributes.h:525
Definition: display_types.h:153
Definition: gls_metadata_attributes.h:334
Definition: disti_metadata.h:79
Definition: display_types.h:125
Definition: display_types.h:124
Definition: gls_metadata_attributes.h:358
unsigned int Size() const
Definition: dynamic_array.h:133
Definition: bmpimage.h:46
Definition: display_types.h:148
virtual void ValueInt(long val)
Definition: gls_metadata_attributes.h:1458
virtual bool OkToWrite() const
Definition: gls_metadata_attributes.h:1281
virtual bool operator==(const DistiAttributeBase &rArg)
Definition: gls_metadata_attributes.h:866
Definition: display_types.h:109
virtual bool OkToWrite() const
Definition: gls_metadata_attributes.h:788