bool asCDataType::IsSamePrimitiveBaseType(const asCDataType &dt) const { if( !IsPrimitive() || !dt.IsPrimitive() ) return false; if( IsIntegerType() && dt.IsIntegerType() ) return true; if( IsUnsignedType() && dt.IsUnsignedType() ) return true; if( IsFloatType() && dt.IsFloatType() ) return true; if( IsDoubleType() && dt.IsDoubleType() ) return true; if( IsBooleanType() && dt.IsBooleanType() ) return true; if( IsFloatType() && dt.IsDoubleType() ) return true; if( IsDoubleType() && dt.IsFloatType() ) return true; return false; }
void ParamElement::ReadValue(const DOMNode* node) { _ASSERTE(node != NULL); DOMNode* value = node->getFirstChild(); if( value == NULL ) { return; } BaseRefVectorOf<XMLCh>* vecValue = XMLString::tokenizeString( value->getNodeValue() ); unsigned int sizeValue = vecValue->size(); if( sizeValue == 0 ) { return; } if( IsFloatType() ) { valFloat.reserve( sizeValue ); for( unsigned int i = 0; i < sizeValue; i++ ) { valFloat.push_back( XMLChToFloat( vecValue->elementAt( i ) ) ); } } else if( IsBoolType() ) { valBool.reserve( sizeValue ); for( unsigned int i = 0; i < sizeValue; i++ ) { valBool.push_back( XMLChToBool( vecValue->elementAt( i ) ) ); } } else if( IsBlendType() ) { // 未実装 } else if( IsFunctionType() ) { // 未実装 } else { _ASSERTE(!"UnknownType"); } SAFE_DELETE(vecValue); }
unsigned int ParamElement::GetSize() const { if( IsBoolType() ) { return (unsigned int)valBool.size(); } if( IsFloatType() ) { return (unsigned int)valFloat.size(); } return 0; }