40 #ifndef INCLUDED_GLS_METADATA_ATTRIBUTES_H
41 #define INCLUDED_GLS_METADATA_ATTRIBUTES_H
78 *_attribPtr = ( val != 0 );
85 outstr << *_attribPtr;
92 T ConvertToIntOrBool(
int value )
97 inline bool ConvertToIntOrBool(
int value )
103 T ReadValueAsIntOrBool( std::istream& instr )
108 if( strcasecmp( value.c_str(),
"TRUE" ) == 0 )
112 else if( strcasecmp( value.c_str(),
"FALSE" ) == 0 )
119 temp = ConvertToIntOrBool<T>( atoi( value.c_str() ) );
127 *_attribPtr = ReadValueAsIntOrBool<bool>( instr );
138 *_attribPtr = (int)val;
148 *_attribPtr = (short)val;
158 *_attribPtr = (
unsigned short)val;
168 *_attribPtr = (
unsigned char)val;
176 outstr << (int)*_attribPtr;
185 *_attribPtr =
static_cast<unsigned char>( ReadValueAsIntOrBool<int>( instr ) );
194 *_attribPtr = ReadValueAsIntOrBool<int>( instr );
203 *_attribPtr = ReadValueAsIntOrBool<unsigned int>( instr );
215 *_attribPtr = (float)val;
231 virtual GLS_EXPORT
long ValueInt();
232 virtual GLS_EXPORT
void ValueInt(
long val );
234 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
235 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr );
247 virtual GLS_EXPORT ~DistiAttributeFloatArray();
249 virtual GLS_EXPORT
bool OkToWrite()
const;
251 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
252 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr );
264 virtual GLS_EXPORT ~DistiAttributeDoubleArray();
266 virtual GLS_EXPORT
bool OkToWrite()
const;
268 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
269 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr );
281 template<
class containerClass>
286 using _BaseClass::_pairList;
288 typedef void ( containerClass::*SetMethodType )(
const int );
289 typedef int ( containerClass::*GetMethodType )();
294 _pairList = &TextureModeEnumList;
309 template<
class containerClass>
314 using _BaseClass::_pairList;
316 typedef void ( containerClass::*SetMethodType )(
const int );
317 typedef int ( containerClass::*GetMethodType )();
322 _pairList = &TextureFilterEnumList;
336 template<
class containerClass>
341 using _BaseClass::_pairList;
343 typedef void ( containerClass::*SetMethodType )(
const int );
344 typedef int ( containerClass::*GetMethodType )();
349 _pairList = &PolyModeEnumList;
360 template<
class containerClass>
365 using _BaseClass::_pairList;
367 typedef void ( containerClass::*SetMethodType )( int );
368 typedef int ( containerClass::*GetMethodType )();
373 _pairList = &PolyEndEnumList;
384 template<
class containerClass>
389 using _BaseClass::_pairList;
391 typedef void ( containerClass::*SetMethodType )(
const int );
392 typedef int ( containerClass::*GetMethodType )();
397 _pairList = &ShadingEnumList;
402 template<
class containerClass>
407 using _BaseClass::_pairList;
409 typedef void ( containerClass::*SetMethodType )(
const int );
410 typedef int ( containerClass::*GetMethodType )();
424 _pairList = &ColorMaterialModeEnum;
427 virtual GLS_EXPORT
bool OkToWrite()
const {
return false; }
431 template<
class containerClass>
436 using _BaseClass::_pairList;
438 typedef void ( containerClass::*SetMethodType )(
const int );
439 typedef int ( containerClass::*GetMethodType )();
449 _pairList = &ProtectionEnumList;
462 template<
class containerClass>
467 using _BaseClass::_pairList;
469 typedef void ( containerClass::*SetMethodType )(
const int );
470 typedef int ( containerClass::*GetMethodType )();
475 _pairList = &AlphaModeEnumList;
495 virtual GLS_EXPORT ~DistiAttributeString();
498 GLS_EXPORT
char* LocalStorageString();
499 virtual GLS_EXPORT
bool OkToWrite()
const;
501 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
502 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr );
518 virtual GLS_EXPORT std::string ValueString();
519 virtual GLS_EXPORT
void ValueString(
const std::string& s );
521 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
522 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr );
536 virtual GLS_EXPORT
bool OkToWrite()
const;
540 virtual GLS_EXPORT std::string ValueString();
541 virtual GLS_EXPORT
void ValueString(
const std::string& s );
543 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
544 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr );
554 virtual GLS_EXPORT ~DistiAttributeFixedString();
556 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
557 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr );
563 std::string _localStorageString;
571 virtual GLS_EXPORT ~DistiAttributeStdString();
574 GLS_EXPORT std::string* LocalStorageString();
576 virtual GLS_EXPORT
bool OkToWrite()
const;
578 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
579 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr );
587 virtual GLS_EXPORT ~DistiAttributeLocation();
589 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
590 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr );
602 virtual GLS_EXPORT
bool OkToWrite()
const;
605 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
606 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr );
620 virtual GLS_EXPORT
bool OkToWrite()
const;
623 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
624 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr );
632 template<
class Map_t>
642 , _attribPtr( attribPtr )
648 , _attribPtr(
new Map_t() )
661 return _attribPtr != 0 && _attribPtr->size();
664 static std::string GetEmptyValue() {
return "$$DISTI_EMPTY$$"; }
669 << DistiAttribDict::SpacingString() <<
"{\n";
670 DistiAttribDict::SpacingInc();
674 typename Map_t::iterator i;
675 for( i = _attribPtr->begin(); i != _attribPtr->end(); ++i )
677 std::ostringstream str;
679 const std::string second = str.str();
681 outstr << DistiAttribDict::SpacingString() << i->first <<
" "
682 << ( second.empty() ? GetEmptyValue() : second ) <<
'\n';
686 DistiAttribDict::SpacingDec();
687 outstr << DistiAttribDict::SpacingString() <<
"}\n";
694 instr.ignore( INT_MAX,
'{' );
698 std::stringstream fontStream;
699 instr.get( *fontStream.rdbuf(),
'}' );
703 while( fontStream.good() )
707 std::stringstream::char_type c;
715 }
while( fontStream.good() && isspace( c ) );
717 if( fontStream.good() )
719 fontStream.putback( c );
721 #if _WIN32 && _MSC_VER < 1300 // if _MSC_VER < vc70
723 Map_t::referent_type value;
725 typename Map_t::key_type key;
726 typename Map_t::mapped_type value;
730 std::getline( fontStream >> std::ws, strVal );
732 if( strVal != GetEmptyValue() )
734 std::istringstream str( strVal );
738 ( *_attribPtr )[ key ] = value;
756 unsigned int* _numVertices;
757 unsigned int _numElements;
759 bool _compatabilityMode;
762 void SetCompatabilityMode(
bool mode ) { _compatabilityMode = mode; }
766 , _attribPtr( attribPtr )
767 , _numVertices( numVertices )
769 , _fixedArray(
false )
771 _compatabilityMode =
true;
776 , _attribPtr(
new Tptr( attribPtr ) )
777 , _numVertices( NULL )
778 , _numElements( numElements )
779 , _fixedArray(
true )
781 _compatabilityMode =
true;
786 if( ( _fixedArray || _localStorage ) && _attribPtr )
793 return ( *_attribPtr != NULL );
798 if( *_attribPtr != NULL )
800 unsigned int numVerts = _numElements;
803 outstr << *_numVertices;
804 numVerts = *_numVertices;
806 DistiAttribDict::SpacingInc();
807 for(
unsigned int i = 0; i < numVerts; i++ )
810 outstr << ( *_attribPtr )[ i ];
812 DistiAttribDict::SpacingDec();
818 unsigned int numVerts = _numElements;
823 *_numVertices = numVerts;
826 if( *_attribPtr != NULL )
827 delete[] * _attribPtr;
831 *_attribPtr =
new T[ numVerts ];
836 if( !_compatabilityMode )
840 instr.getline( buf, 1024 );
843 for(
unsigned int i = 0; i < numVerts; i++ )
845 if( !_compatabilityMode )
848 instr.getline( buf, 1024 );
852 std::sscanf( buf,
"%f %f %f",
853 &( ( *_attribPtr )[ i ].x ),
854 &( ( *_attribPtr )[ i ].y ),
855 &( ( *_attribPtr )[ i ].z ) );
857 assert( 3 == count );
862 instr >> ( *_attribPtr )[ i ];
877 if( !( _name == r->
_name ) || _numElements != r->_numElements )
880 for(
unsigned int i = 0u; i < _numElements; ++i )
882 T leftVert = ( *_attribPtr )[ i ];
883 T rightVert = ( *r->_attribPtr )[ i ];
901 unsigned int* _numVertices;
902 unsigned int _numElements;
904 bool _compatabilityMode;
907 void SetCompatabilityMode(
bool mode ) { _compatabilityMode = mode; }
911 , _attribPtr( attribPtr )
912 , _numVertices( numVertices )
914 , _fixedArray(
false )
916 _compatabilityMode =
true;
921 , _attribPtr(
new Tptr( attribPtr ) )
922 , _numVertices( NULL )
923 , _numElements( numElements )
924 , _fixedArray(
true )
926 _compatabilityMode =
true;
931 if( ( _fixedArray || _localStorage ) && _attribPtr )
938 return ( *_attribPtr != NULL );
943 if( *_attribPtr != NULL )
945 unsigned int numVerts = _numElements;
948 outstr << *_numVertices;
949 numVerts = *_numVertices;
951 DistiAttribDict::SpacingInc();
952 for(
unsigned int i = 0; i < numVerts; i++ )
955 outstr << ( *_attribPtr )[ i ];
957 DistiAttribDict::SpacingDec();
963 unsigned int numVerts = _numElements;
968 *_numVertices = numVerts;
971 if( *_attribPtr != NULL )
972 delete[] * _attribPtr;
975 *_attribPtr =
new Vertex[ numVerts ];
978 if( !_compatabilityMode )
982 instr.getline( buf, 1024 );
985 for(
unsigned int i = 0; i < numVerts; i++ )
987 if( !_compatabilityMode )
990 instr.getline( buf, 1024 );
995 std::sscanf( buf,
"%f %f %f %d %d %d %d",
996 &( ( *_attribPtr )[ i ].x ),
997 &( ( *_attribPtr )[ i ].y ),
998 &( ( *_attribPtr )[ i ].z ),
1001 assert( 7 == count );
1004 ( *_attribPtr )[ i ].color.RGBA( (
unsigned char)r, (
unsigned char)g, (
unsigned char)b, (
unsigned char)a );
1008 instr >> ( *_attribPtr )[ i ];
1023 if( !( _name == r->
_name ) || _numElements != r->_numElements )
1026 for(
unsigned int i = 0u; i < _numElements; ++i )
1028 Vertex leftVert = ( *_attribPtr )[ i ];
1029 Vertex rightVert = ( *r->_attribPtr )[ i ];
1054 unsigned int numVerts = _numElements;
1056 for(
unsigned int i = 0; i < numVerts; i++ )
1058 outstr << std::endl;
1059 outstr << ( *_attribPtr )[ i ];
1066 unsigned int numVerts = _numElements;
1068 for(
unsigned int i = 0; i < numVerts; i++ )
1076 std::getline( instr, line );
1078 if( i == 0 && line.length() == 0 )
1079 std::getline( instr, line );
1081 std::stringstream strm( line );
1082 strm >> ( *_attribPtr )[ i ];
1118 , _originalAttribName( originalName )
1119 , _dictionary( dict )
1124 virtual DISTI_EXPORT
bool OkToWrite()
const DISTI_METHOD_OVERRIDE;
1127 virtual DISTI_EXPORT
bool ValueChanged() DISTI_METHOD_OVERRIDE;
1130 virtual DISTI_EXPORT
void ResetValueChanged() DISTI_METHOD_OVERRIDE;
1133 virtual DISTI_EXPORT std::string ValueString() DISTI_METHOD_OVERRIDE;
1136 virtual DISTI_EXPORT
void ValueString(
const std::string& s ) DISTI_METHOD_OVERRIDE;
1139 virtual DISTI_EXPORT
long ValueInt() DISTI_METHOD_OVERRIDE;
1142 virtual DISTI_EXPORT
void ValueInt(
long val ) DISTI_METHOD_OVERRIDE;
1145 virtual DISTI_EXPORT
double ValueFloat() DISTI_METHOD_OVERRIDE;
1148 virtual DISTI_EXPORT
void ValueFloat(
double val ) DISTI_METHOD_OVERRIDE;
1151 virtual DISTI_EXPORT std::ostream& WriteValue( std::ostream& outstr ) DISTI_METHOD_OVERRIDE;
1154 virtual DISTI_EXPORT std::istream& ReadValue( std::istream& instr ) DISTI_METHOD_OVERRIDE;
1162 virtual DISTI_EXPORT
void UnregisterObserver(
CallbackID id ) DISTI_METHOD_OVERRIDE;
1164 virtual DISTI_EXPORT
void NotifyObservers() DISTI_METHOD_OVERRIDE;
1175 template<
class T,
bool showIndex >
1183 , _attribPtr( attribPtr )
1189 , _attribPtr(
new T() )
1201 return ( _attribPtr != NULL && _attribPtr->Size() );
1206 if( _attribPtr != NULL )
1208 int numEntries = _attribPtr->Count();
1209 outstr << numEntries;
1211 DistiAttribDict::SpacingInc();
1213 for(
int i = 0; i < numEntries; i++ )
1215 outstr << std::endl;
1219 outstr << DistiAttribDict::SpacingString() << i <<
" ";
1222 outstr << DistiAttribDict::SpacingString() << ( *_attribPtr )[ i ] <<
" ";
1224 DistiAttribDict::SpacingDec();
1231 instr >> numEntries;
1233 _attribPtr->Count( numEntries );
1235 for(
int i = 0; i < numEntries; i++ )
1242 instr >> ( *_attribPtr )[ entry ];
1253 template<
class T,
bool showIndex >
1264 , _attribPtr( attribPtr )
1271 , _attribPtr(
new T() )
1286 return ( _attribPtr != NULL && _attribPtr->size() );
1291 if( _attribPtr != NULL )
1293 int numEntries = _attribPtr->size();
1294 outstr << numEntries;
1296 DistiAttribDict::SpacingInc();
1298 for(
int i = 0; i < numEntries; i++ )
1300 outstr << std::endl;
1304 outstr << DistiAttribDict::SpacingString() << i <<
" ";
1307 outstr << DistiAttribDict::SpacingString() << ( *_attribPtr )[ i ] <<
" ";
1309 DistiAttribDict::SpacingDec();
1316 if( _attribPtr != NULL )
1319 instr >> numEntries;
1321 _attribPtr->resize( numEntries );
1323 for(
int i = 0; i < numEntries; i++ )
1330 instr >> ( *_attribPtr )[ entry ];
1347 typedef T* ( *CreateItemCb )();
1351 CreateItemCb _createCb;
1358 , _createCb( createCb )
1368 << DistiAttribDict::SpacingString() <<
"{\n";
1369 DistiAttribDict::SpacingInc();
1370 for(
unsigned int i = 0; i < _array->
Count(); i++ )
1372 if( ( *_array )[ i ] )
1374 outstr << DistiAttribDict::SpacingString();
1376 ( ( *_array )[ i ] )->WriteValue( outstr );
1380 DistiAttribDict::SpacingDec();
1381 outstr << DistiAttribDict::SpacingString() <<
"}\n";
1389 while( DistiAttribDict::ScanToken( instr, buf ) )
1399 T* temp =
dynamic_cast<T*
>( _createCb() );
1403 ( *_array )[ _array->
Count() - 1 ]->ReadValue( instr );
1422 template<
class containerT,
class T,
class SetArgT = const T&,
class GetReturnT = T>
1427 typedef void ( containerT::*SetMethodType )( SetArgT );
1428 typedef GetReturnT ( containerT::*GetMethodType )();
1429 typedef GetReturnT ( containerT::*GetMethodConstType )()
const;
1433 containerT* _container;
1434 SetMethodType _setMethod;
1435 GetMethodType _getMethod;
1439 : _BaseClass( NULL, name, attribPtr )
1441 , _container( frame )
1442 , _setMethod( setMethod )
1443 , _getMethod( getMethod )
1446 if(
typeid( T ) ==
typeid(
float ) ||
typeid( T ) ==
typeid(
double ) ||
typeid( T ) ==
typeid(
long double ) )
1454 return ( this->_attribPtr || _getMethod );
1459 virtual std::string
ValueString() DISTI_METHOD_OVERRIDE {
return DistiAttributeBase::ValueString(); }
1460 virtual void ValueString(
const std::string& s ) DISTI_METHOD_OVERRIDE { DistiAttributeBase::ValueString( s ); }
1462 virtual long ValueInt() DISTI_METHOD_OVERRIDE {
return DistiAttributeBase::ValueInt(); }
1463 virtual void ValueInt(
long val ) DISTI_METHOD_OVERRIDE { DistiAttributeBase::ValueInt( val ); }
1465 virtual double ValueFloat() DISTI_METHOD_OVERRIDE {
return DistiAttributeBase::ValueFloat(); }
1466 virtual void ValueFloat(
double val ) DISTI_METHOD_OVERRIDE { DistiAttributeBase::ValueFloat( val ); }
1468 virtual std::ostream&
WriteValue( std::ostream& outstr ) DISTI_METHOD_OVERRIDE
1470 if( _precision > 0 )
1471 outstr.precision(
int( _precision ) );
1473 if( _getMethod && _container )
1476 T* tempAttribPtr = this->_attribPtr;
1479 T temp( ( _container->*_getMethod )() );
1482 this->_attribPtr = &temp;
1485 _BaseClass::WriteValue( outstr );
1488 this->_attribPtr = tempAttribPtr;
1490 else if( this->_attribPtr )
1492 _BaseClass::WriteValue( outstr );
1498 virtual std::istream&
ReadValue( std::istream& instr ) DISTI_METHOD_OVERRIDE
1500 if( _setMethod && _container )
1503 T* tempAttribPtr = this->_attribPtr;
1507 this->_attribPtr = &temp;
1510 _BaseClass::ReadValue( instr );
1513 ( _container->*_setMethod )( temp );
1515 this->_attribPtr = tempAttribPtr;
1517 else if( this->_attribPtr )
1519 _BaseClass::ReadValue( instr );
1527 if( _getMethod && _container )
1530 return ( _container->*_getMethod )();
1532 else if( this->_attribPtr )
1534 return _BaseClass::Value();
1542 virtual void Value(
const T& val ) DISTI_METHOD_OVERRIDE
1544 if( _setMethod && _container )
1546 ( _container->*_setMethod )( val );
1548 else if( this->_attribPtr )
1550 _BaseClass::Value( val );
1567 template<
typename Type,
class Class>
1578 template<
typename Type,
class Class>
1590 template<
typename Type,
class Class>
1601 template<
typename Type,
class Class>
1611 template<
typename Type,
class Class>
1622 template<
typename Type,
class Class>
1634 template<
typename GetReturnT,
typename SetArgT,
class Class>
1645 template<
class Class>
1682 template<
class enumType>
1686 enumType* _attribPtr;
1693 , _attribPtr( attribPtr )
1694 , _pairList( pairList )
1699 , _attribPtr(
new enumType( value ) )
1700 , _pairList( pairList )
1706 if( _localStorage && _attribPtr )
1712 virtual void ValueInt(
long val ) { *_attribPtr = (enumType)val; };
1719 *_attribPtr = ( enumType ) * ( ptr->_attribPtr );
1724 return DistiAttributeBase::operator=( oldClass );
1730 bool foundIt =
false;
1732 typename DistiAttributeEnumDefList::iterator item = _pairList->begin();
1733 while( item != _pairList->end() )
1735 if( ( *item )->_enum == *_attribPtr )
1737 outstr << ( *item )->_string;
1746 outstr << (int)*_attribPtr;
1758 bool foundIt =
false;
1759 typename DistiAttributeEnumDefList::iterator item = _pairList->begin();
1762 while( item != _pairList->end() )
1764 if( strcmp( ( *item )->_string, value ) == 0 )
1766 *_attribPtr = ( enumType )( *item )->_enum;
1778 *_attribPtr = (enumType)atoi( value );
1805 #define DISTI_REGISTER_METHOD_CALLBACK( instance, Class, Method ) \
1807 typedef CallbackMethodCallerTemplate<Class, Class> Caller; \
1808 typedef typename Caller::MethodType1 MethodType; \
1809 const MethodType callback = reinterpret_cast<MethodType>( Method ); \
1810 ThisClass::CallbackCaller( new Caller( callback, instance ) ); \
1820 #define DISTI_SET_OBJECT_CALLBACK1( object, method, parent ) \
1821 ( object )->CallbackCaller( \
1822 new CallbackMethodCallerTemplate<DisplayObject, DisplayObject>( \
1823 ( disti::CallbackMethodCallerTemplate<DisplayObject, DisplayObject>::MethodType1 )( method ), ( parent ) ) );
1834 #define DISTI_ADD_ATTRIBUTE( Type, name, memberVarAddr ) \
1836 static const AttributeName attr( name ); \
1837 CallbackAttributeNotifier<ThisClass> cb( this, attr ); \
1838 this->Attributes().Add( new DistiAttribute<Type>( &cb, ( attr ), ( memberVarAddr ) ) ); \
1853 #define DISTI_ADD_ATTRIBUTE_CALLBACK( Type, name, memberVarAddr, callbackFunction ) \
1855 typedef void ( ThisClass::*Method )(); \
1856 static const AttributeName attr( name ); \
1857 CallbackAttributeNotifier<ThisClass> cb( this, attr, reinterpret_cast<Method>( callbackFunction ) ); \
1858 this->Attributes().Add( new DistiAttribute<Type>( &cb, ( attr ), ( memberVarAddr ) ) ); \
1871 #define DISTI_ADD_ATTRIBUTE_SET_GET( Type, name, setter, getter ) \
1873 static const AttributeName attr( name ); \
1874 this->Attributes().Add( CreateDistiAttributeProperty<Type>( attr, this, setter, getter ) ); \
1884 #define DISTI_ADD_ATTRIBUTE_STRING( name, memberVarAddr ) \
1886 static const AttributeName attr( name ); \
1887 CallbackAttributeNotifier<ThisClass> cb( this, attr ); \
1888 this->Attributes().Add( new DistiAttributeEncodedStdString( &cb, attr, memberVarAddr ) ); \
1900 #define DISTI_ADD_ATTRIBUTE_STRING_CALLBACK( name, memberVarAddr, callbackFunction ) \
1902 typedef void ( ThisClass::*Method )(); \
1903 static const AttributeName attr( name ); \
1904 CallbackAttributeNotifier<ThisClass> cb( this, attr, reinterpret_cast<Method>( callbackFunction ) ); \
1905 this->Attributes().Add( new DistiAttributeEncodedStdString( &cb, attr, memberVarAddr ) ); \
1915 #define DISTI_ADD_ATTRIBUTE_ALIAS( aliasName, origName, obj ) \
1917 static const AttributeName aliasAttr( aliasName ); \
1918 static const AttributeName origAttr( origName ); \
1919 DistiAttribDict& attributes = ( obj )->Attributes(); \
1920 this->Attributes().Add( new DistiAttributeAlias( NULL, aliasAttr, origAttr, &attributes ) ); \
Definition: display_types.h:75
Definition: gls_metadata_attributes.h:240
Definition: gls_metadata_attributes.h:583
Definition: gls_metadata_attributes.h:257
Definition: display_types.h:100
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_metadata_attributes.h:1365
Definition: display_types.h:73
virtual std::istream & ReadValue(std::istream &instr)
Definition: gls_metadata_attributes.h:1228
Definition: gls_metadata_attributes.h:1659
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_metadata_attributes.h:796
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_metadata_attributes.h:1052
The disti::Material class.
Definition: gls_metadata_attributes.h:561
virtual std::istream & ReadValue(std::istream &instr)
Definition: gls_metadata_attributes.h:816
Definition: gls_metadata_attributes.h:282
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_metadata_attributes.h:941
virtual std::istream & ReadValue(std::istream &instr)
Definition: gls_metadata_attributes.h:1064
The disti::DynamicArray class. A templated array of objects capable of dynamically growing...
Definition: gls_metadata_attributes.h:1254
Definition: gls_metadata_attributes.h:223
Definition: gls_metadata_attributes.h:463
Definition: gls_metadata_attributes.h:385
Definition: display_types.h:153
Definition: gls_metadata_attributes.h:508
Definition: gls_metadata_attributes.h:633
virtual long ValueInt()
Definition: gls_metadata_attributes.h:1711
Definition: display_types.h:151
Definition: display_types.h:91
virtual bool OkToWrite() const
Definition: gls_metadata_attributes.h:659
virtual bool OkToWrite() const
Definition: gls_metadata_attributes.h:1199
Definition: display_types.h:103
Definition: gls_metadata_attributes.h:1683
Definition: display_types.h:92
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: disti_metadata.h:569
virtual bool operator==(const DistiAttributeBase &rArg)
Definition: gls_metadata_attributes.h:1015
virtual T Value()
Definition: gls_metadata_attributes.h:1525
Definition: gls_metadata_attributes.h:1043
virtual std::istream & ReadValue(std::istream &instr)
Definition: disti_metadata.h:583
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_metadata_attributes.h:666
virtual std::istream & ReadValue(std::istream &instr)
Definition: gls_metadata_attributes.h:1314
Definition: display_types.h:102
virtual std::string ValueString()
Definition: gls_metadata_attributes.h:1459
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:896
virtual void ValueString(const std::string &s)
Definition: gls_metadata_attributes.h:1460
unsigned int CallbackID
Type for unique identifiers.
Definition: disti_metadata.h:340
Definition: display_types.h:90
Definition: gls_metadata_attributes.h:1176
Definition: gls_metadata_attributes.h:1344
virtual std::istream & ReadValue(std::istream &instr)
Definition: gls_metadata_attributes.h:1384
Definition: gls_metadata_attributes.h:310
virtual bool OkToWrite() const
Definition: gls_metadata_attributes.h:427
Definition: gls_metadata_attributes.h:1113
Definition: display_types.h:101
Definition: disti_metadata.h:852
Definition: display_types.h:123
virtual void ValueInt(long val)
Definition: gls_metadata_attributes.h:1712
The List_c class. Generic linked list.
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_metadata_attributes.h:1668
bool operator==(const AttributeName &attr1, const AttributeName &attr2)
Definition: disti_metadata.h:140
void Count(const unsigned int count)
Definition: dynamic_array.h:115
virtual void Add(DistiAttributeBase *attr)
Definition: display_types.h:152
Definition: display_types.h:64
Definition: display_types.h:62
Definition: gls_metadata_attributes.h:1094
Definition: disti_metadata.h:486
The disti::Vertex class. A class for manipulating 3D vertices.
Generally useful defines, macros, enumerations and function prototypes.
Definition: gls_metadata_attributes.h:1423
Definition: gls_metadata_attributes.h:432
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_metadata_attributes.h:1728
Definition: disti_metadata.h:182
virtual long ValueInt()
Definition: disti_metadata.h:529
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_metadata_attributes.h:1468
virtual std::istream & ReadValue(std::istream &instr)
Definition: gls_metadata_attributes.h:961
Definition: disti_metadata.h:165
Definition: display_types.h:61
Definition: gls_metadata_attributes.h:481
virtual double ValueFloat()
Definition: gls_metadata_attributes.h:1465
Definition: disti_metadata.h:660
DistiAttributeProperty< Class, GetReturnT, SetArgT > * CreateDistiAttributeProperty(const AttributeName &attrName, Class *const obj, const typename DistiAttributeProperty< Class, GetReturnT, SetArgT >::SetMethodType setMethod, const typename DistiAttributeProperty< Class, GetReturnT, SetArgT >::GetMethodType getMethod)
Definition: gls_metadata_attributes.h:1635
Definition: disti_metadata.h:840
Definition: callback_caller_base.h:55
DistiAttributeProperty< Class, Vector, const Vertex &, const Vertex & > * CreateDistiAttributePropertyVertexToVector(const AttributeName &attrName, Class *const obj, const typename DistiAttributeProperty< Class, Vector, const Vertex &, const Vertex & >::SetMethodType setMethod, const typename DistiAttributeProperty< Class, Vector, const Vertex &, const Vertex & >::GetMethodConstType getMethod)
Definition: gls_metadata_attributes.h:1646
virtual bool OkToWrite() const
Definition: gls_metadata_attributes.h:1363
virtual std::istream & ReadValue(std::istream &instr)
Definition: gls_metadata_attributes.h:1673
Definition: display_types.h:94
virtual std::istream & ReadValue(std::istream &instr)
Definition: gls_metadata_attributes.h:1498
bool Equal(T1 x, T2 y, float precision=0.001f)
Definition: util.h:251
Definition: display_types.h:71
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_metadata_attributes.h:1204
virtual bool OkToWrite() const
Definition: gls_metadata_attributes.h:1452
Definition: display_types.h:150
Definition: gls_metadata_attributes.h:594
AttributeName _name
Definition: disti_metadata.h:189
virtual long ValueInt()
Definition: gls_metadata_attributes.h:1462
virtual bool OkToWrite() const
Definition: gls_metadata_attributes.h:936
Definition: display_types.h:117
virtual void ValueFloat(double val)
Definition: gls_metadata_attributes.h:1466
virtual std::istream & ReadValue(std::istream &instr)
Definition: gls_metadata_attributes.h:692
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_metadata_attributes.h:1289
Definition: display_types.h:93
Definition: gls_metadata_attributes.h:547
Definition: gls_metadata_attributes.h:751
Definition: display_types.h:74
virtual DistiAttributeBase & operator=(const DistiAttributeBase &oldClass)
Definition: gls_metadata_attributes.h:1714
Definition: display_types.h:70
virtual void Value(const T &val)
Definition: gls_metadata_attributes.h:1542
Definition: display_types.h:72
virtual bool OkToWrite() const
Definition: gls_metadata_attributes.h:1106
virtual std::istream & ReadValue(std::istream &instr)
Definition: gls_metadata_attributes.h:1752
Definition: gls_metadata_attributes.h:610
Definition: gls_metadata_attributes.h:403
Definition: gls_metadata_attributes.h:528
Definition: display_types.h:154
Definition: gls_metadata_attributes.h:337
Definition: disti_metadata.h:84
Definition: display_types.h:125
Definition: display_types.h:124
Definition: gls_metadata_attributes.h:361
unsigned int Size() const
Definition: dynamic_array.h:133
Definition: bmpimage.h:46
Definition: display_types.h:149
virtual void ValueInt(long val)
Definition: gls_metadata_attributes.h:1463
virtual bool OkToWrite() const
Definition: gls_metadata_attributes.h:1284
virtual bool operator==(const DistiAttributeBase &rArg)
Definition: gls_metadata_attributes.h:869
Definition: display_types.h:109
virtual bool OkToWrite() const
Definition: gls_metadata_attributes.h:791