00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054 #define OSG_COMPILESHADERPARAMETERBOOLINST
00055
00056 #include <stdlib.h>
00057 #include <stdio.h>
00058
00059 #include <OSGConfig.h>
00060
00061 #include "OSGShaderParameterBoolBase.h"
00062 #include "OSGShaderParameterBool.h"
00063
00064
00065 OSG_BEGIN_NAMESPACE
00066
00067 const OSG::BitVector ShaderParameterBoolBase::ValueFieldMask =
00068 (TypeTraits<BitVector>::One << ShaderParameterBoolBase::ValueFieldId);
00069
00070 const OSG::BitVector ShaderParameterBoolBase::MTInfluenceMask =
00071 (Inherited::MTInfluenceMask) |
00072 (static_cast<BitVector>(0x0) << Inherited::NextFieldId);
00073
00074
00075
00076
00081
00082
00083 FieldDescription *ShaderParameterBoolBase::_desc[] =
00084 {
00085 new FieldDescription(SFBool::getClassType(),
00086 "value",
00087 ValueFieldId, ValueFieldMask,
00088 false,
00089 reinterpret_cast<FieldAccessMethod>(&ShaderParameterBoolBase::editSFValue))
00090 };
00091
00092
00093 FieldContainerType ShaderParameterBoolBase::_type(
00094 "ShaderParameterBool",
00095 "ShaderParameter",
00096 NULL,
00097 reinterpret_cast<PrototypeCreateF>(&ShaderParameterBoolBase::createEmpty),
00098 ShaderParameterBool::initMethod,
00099 _desc,
00100 sizeof(_desc));
00101
00102
00103
00104
00105
00106 FieldContainerType &ShaderParameterBoolBase::getType(void)
00107 {
00108 return _type;
00109 }
00110
00111 const FieldContainerType &ShaderParameterBoolBase::getType(void) const
00112 {
00113 return _type;
00114 }
00115
00116
00117 FieldContainerPtr ShaderParameterBoolBase::shallowCopy(void) const
00118 {
00119 ShaderParameterBoolPtr returnValue;
00120
00121 newPtr(returnValue, dynamic_cast<const ShaderParameterBool *>(this));
00122
00123 return returnValue;
00124 }
00125
00126 UInt32 ShaderParameterBoolBase::getContainerSize(void) const
00127 {
00128 return sizeof(ShaderParameterBool);
00129 }
00130
00131
00132 #if !defined(OSG_FIXED_MFIELDSYNC)
00133 void ShaderParameterBoolBase::executeSync( FieldContainer &other,
00134 const BitVector &whichField)
00135 {
00136 this->executeSyncImpl(static_cast<ShaderParameterBoolBase *>(&other),
00137 whichField);
00138 }
00139 #else
00140 void ShaderParameterBoolBase::executeSync( FieldContainer &other,
00141 const BitVector &whichField, const SyncInfo &sInfo )
00142 {
00143 this->executeSyncImpl((ShaderParameterBoolBase *) &other, whichField, sInfo);
00144 }
00145 void ShaderParameterBoolBase::execBeginEdit(const BitVector &whichField,
00146 UInt32 uiAspect,
00147 UInt32 uiContainerSize)
00148 {
00149 this->execBeginEditImpl(whichField, uiAspect, uiContainerSize);
00150 }
00151
00152 void ShaderParameterBoolBase::onDestroyAspect(UInt32 uiId, UInt32 uiAspect)
00153 {
00154 Inherited::onDestroyAspect(uiId, uiAspect);
00155
00156 }
00157 #endif
00158
00159
00160
00161 #ifdef OSG_WIN32_ICL
00162 #pragma warning (disable : 383)
00163 #endif
00164
00165 ShaderParameterBoolBase::ShaderParameterBoolBase(void) :
00166 _sfValue (),
00167 Inherited()
00168 {
00169 }
00170
00171 #ifdef OSG_WIN32_ICL
00172 #pragma warning (default : 383)
00173 #endif
00174
00175 ShaderParameterBoolBase::ShaderParameterBoolBase(const ShaderParameterBoolBase &source) :
00176 _sfValue (source._sfValue ),
00177 Inherited (source)
00178 {
00179 }
00180
00181
00182
00183 ShaderParameterBoolBase::~ShaderParameterBoolBase(void)
00184 {
00185 }
00186
00187
00188
00189 UInt32 ShaderParameterBoolBase::getBinSize(const BitVector &whichField)
00190 {
00191 UInt32 returnValue = Inherited::getBinSize(whichField);
00192
00193 if(FieldBits::NoField != (ValueFieldMask & whichField))
00194 {
00195 returnValue += _sfValue.getBinSize();
00196 }
00197
00198
00199 return returnValue;
00200 }
00201
00202 void ShaderParameterBoolBase::copyToBin( BinaryDataHandler &pMem,
00203 const BitVector &whichField)
00204 {
00205 Inherited::copyToBin(pMem, whichField);
00206
00207 if(FieldBits::NoField != (ValueFieldMask & whichField))
00208 {
00209 _sfValue.copyToBin(pMem);
00210 }
00211
00212
00213 }
00214
00215 void ShaderParameterBoolBase::copyFromBin( BinaryDataHandler &pMem,
00216 const BitVector &whichField)
00217 {
00218 Inherited::copyFromBin(pMem, whichField);
00219
00220 if(FieldBits::NoField != (ValueFieldMask & whichField))
00221 {
00222 _sfValue.copyFromBin(pMem);
00223 }
00224
00225
00226 }
00227
00228 #if !defined(OSG_FIXED_MFIELDSYNC)
00229 void ShaderParameterBoolBase::executeSyncImpl( ShaderParameterBoolBase *pOther,
00230 const BitVector &whichField)
00231 {
00232
00233 Inherited::executeSyncImpl(pOther, whichField);
00234
00235 if(FieldBits::NoField != (ValueFieldMask & whichField))
00236 _sfValue.syncWith(pOther->_sfValue);
00237
00238
00239 }
00240 #else
00241 void ShaderParameterBoolBase::executeSyncImpl( ShaderParameterBoolBase *pOther,
00242 const BitVector &whichField,
00243 const SyncInfo &sInfo )
00244 {
00245
00246 Inherited::executeSyncImpl(pOther, whichField, sInfo);
00247
00248 if(FieldBits::NoField != (ValueFieldMask & whichField))
00249 _sfValue.syncWith(pOther->_sfValue);
00250
00251
00252
00253 }
00254
00255 void ShaderParameterBoolBase::execBeginEditImpl (const BitVector &whichField,
00256 UInt32 uiAspect,
00257 UInt32 uiContainerSize)
00258 {
00259 Inherited::execBeginEditImpl(whichField, uiAspect, uiContainerSize);
00260
00261 }
00262 #endif
00263
00264
00265
00266 OSG_END_NAMESPACE
00267
00268 #include <OSGSFieldTypeDef.inl>
00269 #include <OSGMFieldTypeDef.inl>
00270
00271 OSG_BEGIN_NAMESPACE
00272
00273 #if !defined(OSG_DO_DOC) || defined(OSG_DOC_DEV)
00274 DataType FieldDataTraits<ShaderParameterBoolPtr>::_type("ShaderParameterBoolPtr", "ShaderParameterPtr");
00275 #endif
00276
00277 OSG_DLLEXPORT_SFIELD_DEF1(ShaderParameterBoolPtr, OSG_SYSTEMLIB_DLLTMPLMAPPING);
00278 OSG_DLLEXPORT_MFIELD_DEF1(ShaderParameterBoolPtr, OSG_SYSTEMLIB_DLLTMPLMAPPING);
00279
00280
00281
00282
00283
00284 #ifdef OSG_SGI_CC
00285 #pragma set woff 1174
00286 #endif
00287
00288 #ifdef OSG_LINUX_ICC
00289 #pragma warning( disable : 177 )
00290 #endif
00291
00292 namespace
00293 {
00294 static Char8 cvsid_cpp [] = "@(#)$Id: OSGShaderParameterBoolBase.cpp,v 1.9 2008/06/09 12:28:05 vossg Exp $";
00295 static Char8 cvsid_hpp [] = OSGSHADERPARAMETERBOOLBASE_HEADER_CVSID;
00296 static Char8 cvsid_inl [] = OSGSHADERPARAMETERBOOLBASE_INLINE_CVSID;
00297
00298 static Char8 cvsid_fields_hpp[] = OSGSHADERPARAMETERBOOLFIELDS_HEADER_CVSID;
00299 }
00300
00301 OSG_END_NAMESPACE
00302