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_COMPILECUBETEXTURECHUNKINST
00055
00056 #include <stdlib.h>
00057 #include <stdio.h>
00058
00059 #include <OSGConfig.h>
00060
00061 #include "OSGCubeTextureChunkBase.h"
00062 #include "OSGCubeTextureChunk.h"
00063
00064
00065 OSG_USING_NAMESPACE
00066
00067 const OSG::BitVector CubeTextureChunkBase::PosZImageFieldMask =
00068 (TypeTraits<BitVector>::One << CubeTextureChunkBase::PosZImageFieldId);
00069
00070 const OSG::BitVector CubeTextureChunkBase::PosXImageFieldMask =
00071 (TypeTraits<BitVector>::One << CubeTextureChunkBase::PosXImageFieldId);
00072
00073 const OSG::BitVector CubeTextureChunkBase::NegXImageFieldMask =
00074 (TypeTraits<BitVector>::One << CubeTextureChunkBase::NegXImageFieldId);
00075
00076 const OSG::BitVector CubeTextureChunkBase::PosYImageFieldMask =
00077 (TypeTraits<BitVector>::One << CubeTextureChunkBase::PosYImageFieldId);
00078
00079 const OSG::BitVector CubeTextureChunkBase::NegYImageFieldMask =
00080 (TypeTraits<BitVector>::One << CubeTextureChunkBase::NegYImageFieldId);
00081
00082 const OSG::BitVector CubeTextureChunkBase::IsReflectionMapFieldMask =
00083 (TypeTraits<BitVector>::One << CubeTextureChunkBase::IsReflectionMapFieldId);
00084
00085 const OSG::BitVector CubeTextureChunkBase::MTInfluenceMask =
00086 (Inherited::MTInfluenceMask) |
00087 (static_cast<BitVector>(0x0) << Inherited::NextFieldId);
00088
00089
00090
00091
00111
00112
00113 FieldDescription *CubeTextureChunkBase::_desc[] =
00114 {
00115 new FieldDescription(SFImagePtr::getClassType(),
00116 "posZImage",
00117 PosZImageFieldId, PosZImageFieldMask,
00118 false,
00119 (FieldAccessMethod) &CubeTextureChunkBase::getSFPosZImage),
00120 new FieldDescription(SFImagePtr::getClassType(),
00121 "posXImage",
00122 PosXImageFieldId, PosXImageFieldMask,
00123 false,
00124 (FieldAccessMethod) &CubeTextureChunkBase::getSFPosXImage),
00125 new FieldDescription(SFImagePtr::getClassType(),
00126 "negXImage",
00127 NegXImageFieldId, NegXImageFieldMask,
00128 false,
00129 (FieldAccessMethod) &CubeTextureChunkBase::getSFNegXImage),
00130 new FieldDescription(SFImagePtr::getClassType(),
00131 "posYImage",
00132 PosYImageFieldId, PosYImageFieldMask,
00133 false,
00134 (FieldAccessMethod) &CubeTextureChunkBase::getSFPosYImage),
00135 new FieldDescription(SFImagePtr::getClassType(),
00136 "negYImage",
00137 NegYImageFieldId, NegYImageFieldMask,
00138 false,
00139 (FieldAccessMethod) &CubeTextureChunkBase::getSFNegYImage),
00140 new FieldDescription(SFBool::getClassType(),
00141 "isReflectionMap",
00142 IsReflectionMapFieldId, IsReflectionMapFieldMask,
00143 false,
00144 (FieldAccessMethod) &CubeTextureChunkBase::getSFIsReflectionMap)
00145 };
00146
00147
00148 FieldContainerType CubeTextureChunkBase::_type(
00149 "CubeTextureChunk",
00150 "TextureChunk",
00151 NULL,
00152 (PrototypeCreateF) &CubeTextureChunkBase::createEmpty,
00153 CubeTextureChunk::initMethod,
00154 _desc,
00155 sizeof(_desc));
00156
00157
00158
00159
00160
00161 FieldContainerType &CubeTextureChunkBase::getType(void)
00162 {
00163 return _type;
00164 }
00165
00166 const FieldContainerType &CubeTextureChunkBase::getType(void) const
00167 {
00168 return _type;
00169 }
00170
00171
00172 FieldContainerPtr CubeTextureChunkBase::shallowCopy(void) const
00173 {
00174 CubeTextureChunkPtr returnValue;
00175
00176 newPtr(returnValue, dynamic_cast<const CubeTextureChunk *>(this));
00177
00178 return returnValue;
00179 }
00180
00181 UInt32 CubeTextureChunkBase::getContainerSize(void) const
00182 {
00183 return sizeof(CubeTextureChunk);
00184 }
00185
00186
00187 #if !defined(OSG_FIXED_MFIELDSYNC)
00188 void CubeTextureChunkBase::executeSync( FieldContainer &other,
00189 const BitVector &whichField)
00190 {
00191 this->executeSyncImpl((CubeTextureChunkBase *) &other, whichField);
00192 }
00193 #else
00194 void CubeTextureChunkBase::executeSync( FieldContainer &other,
00195 const BitVector &whichField, const SyncInfo &sInfo )
00196 {
00197 this->executeSyncImpl((CubeTextureChunkBase *) &other, whichField, sInfo);
00198 }
00199 void CubeTextureChunkBase::execBeginEdit(const BitVector &whichField,
00200 UInt32 uiAspect,
00201 UInt32 uiContainerSize)
00202 {
00203 this->execBeginEditImpl(whichField, uiAspect, uiContainerSize);
00204 }
00205
00206 void CubeTextureChunkBase::onDestroyAspect(UInt32 uiId, UInt32 uiAspect)
00207 {
00208 Inherited::onDestroyAspect(uiId, uiAspect);
00209
00210 }
00211 #endif
00212
00213
00214
00215 #ifdef OSG_WIN32_ICL
00216 #pragma warning (disable : 383)
00217 #endif
00218
00219 CubeTextureChunkBase::CubeTextureChunkBase(void) :
00220 _sfPosZImage (),
00221 _sfPosXImage (),
00222 _sfNegXImage (),
00223 _sfPosYImage (),
00224 _sfNegYImage (),
00225 _sfIsReflectionMap (bool(true)),
00226 Inherited()
00227 {
00228 }
00229
00230 #ifdef OSG_WIN32_ICL
00231 #pragma warning (default : 383)
00232 #endif
00233
00234 CubeTextureChunkBase::CubeTextureChunkBase(const CubeTextureChunkBase &source) :
00235 _sfPosZImage (source._sfPosZImage ),
00236 _sfPosXImage (source._sfPosXImage ),
00237 _sfNegXImage (source._sfNegXImage ),
00238 _sfPosYImage (source._sfPosYImage ),
00239 _sfNegYImage (source._sfNegYImage ),
00240 _sfIsReflectionMap (source._sfIsReflectionMap ),
00241 Inherited (source)
00242 {
00243 }
00244
00245
00246
00247 CubeTextureChunkBase::~CubeTextureChunkBase(void)
00248 {
00249 }
00250
00251
00252
00253 UInt32 CubeTextureChunkBase::getBinSize(const BitVector &whichField)
00254 {
00255 UInt32 returnValue = Inherited::getBinSize(whichField);
00256
00257 if(FieldBits::NoField != (PosZImageFieldMask & whichField))
00258 {
00259 returnValue += _sfPosZImage.getBinSize();
00260 }
00261
00262 if(FieldBits::NoField != (PosXImageFieldMask & whichField))
00263 {
00264 returnValue += _sfPosXImage.getBinSize();
00265 }
00266
00267 if(FieldBits::NoField != (NegXImageFieldMask & whichField))
00268 {
00269 returnValue += _sfNegXImage.getBinSize();
00270 }
00271
00272 if(FieldBits::NoField != (PosYImageFieldMask & whichField))
00273 {
00274 returnValue += _sfPosYImage.getBinSize();
00275 }
00276
00277 if(FieldBits::NoField != (NegYImageFieldMask & whichField))
00278 {
00279 returnValue += _sfNegYImage.getBinSize();
00280 }
00281
00282 if(FieldBits::NoField != (IsReflectionMapFieldMask & whichField))
00283 {
00284 returnValue += _sfIsReflectionMap.getBinSize();
00285 }
00286
00287
00288 return returnValue;
00289 }
00290
00291 void CubeTextureChunkBase::copyToBin( BinaryDataHandler &pMem,
00292 const BitVector &whichField)
00293 {
00294 Inherited::copyToBin(pMem, whichField);
00295
00296 if(FieldBits::NoField != (PosZImageFieldMask & whichField))
00297 {
00298 _sfPosZImage.copyToBin(pMem);
00299 }
00300
00301 if(FieldBits::NoField != (PosXImageFieldMask & whichField))
00302 {
00303 _sfPosXImage.copyToBin(pMem);
00304 }
00305
00306 if(FieldBits::NoField != (NegXImageFieldMask & whichField))
00307 {
00308 _sfNegXImage.copyToBin(pMem);
00309 }
00310
00311 if(FieldBits::NoField != (PosYImageFieldMask & whichField))
00312 {
00313 _sfPosYImage.copyToBin(pMem);
00314 }
00315
00316 if(FieldBits::NoField != (NegYImageFieldMask & whichField))
00317 {
00318 _sfNegYImage.copyToBin(pMem);
00319 }
00320
00321 if(FieldBits::NoField != (IsReflectionMapFieldMask & whichField))
00322 {
00323 _sfIsReflectionMap.copyToBin(pMem);
00324 }
00325
00326
00327 }
00328
00329 void CubeTextureChunkBase::copyFromBin( BinaryDataHandler &pMem,
00330 const BitVector &whichField)
00331 {
00332 Inherited::copyFromBin(pMem, whichField);
00333
00334 if(FieldBits::NoField != (PosZImageFieldMask & whichField))
00335 {
00336 _sfPosZImage.copyFromBin(pMem);
00337 }
00338
00339 if(FieldBits::NoField != (PosXImageFieldMask & whichField))
00340 {
00341 _sfPosXImage.copyFromBin(pMem);
00342 }
00343
00344 if(FieldBits::NoField != (NegXImageFieldMask & whichField))
00345 {
00346 _sfNegXImage.copyFromBin(pMem);
00347 }
00348
00349 if(FieldBits::NoField != (PosYImageFieldMask & whichField))
00350 {
00351 _sfPosYImage.copyFromBin(pMem);
00352 }
00353
00354 if(FieldBits::NoField != (NegYImageFieldMask & whichField))
00355 {
00356 _sfNegYImage.copyFromBin(pMem);
00357 }
00358
00359 if(FieldBits::NoField != (IsReflectionMapFieldMask & whichField))
00360 {
00361 _sfIsReflectionMap.copyFromBin(pMem);
00362 }
00363
00364
00365 }
00366
00367 #if !defined(OSG_FIXED_MFIELDSYNC)
00368 void CubeTextureChunkBase::executeSyncImpl( CubeTextureChunkBase *pOther,
00369 const BitVector &whichField)
00370 {
00371
00372 Inherited::executeSyncImpl(pOther, whichField);
00373
00374 if(FieldBits::NoField != (PosZImageFieldMask & whichField))
00375 _sfPosZImage.syncWith(pOther->_sfPosZImage);
00376
00377 if(FieldBits::NoField != (PosXImageFieldMask & whichField))
00378 _sfPosXImage.syncWith(pOther->_sfPosXImage);
00379
00380 if(FieldBits::NoField != (NegXImageFieldMask & whichField))
00381 _sfNegXImage.syncWith(pOther->_sfNegXImage);
00382
00383 if(FieldBits::NoField != (PosYImageFieldMask & whichField))
00384 _sfPosYImage.syncWith(pOther->_sfPosYImage);
00385
00386 if(FieldBits::NoField != (NegYImageFieldMask & whichField))
00387 _sfNegYImage.syncWith(pOther->_sfNegYImage);
00388
00389 if(FieldBits::NoField != (IsReflectionMapFieldMask & whichField))
00390 _sfIsReflectionMap.syncWith(pOther->_sfIsReflectionMap);
00391
00392
00393 }
00394 #else
00395 void CubeTextureChunkBase::executeSyncImpl( CubeTextureChunkBase *pOther,
00396 const BitVector &whichField,
00397 const SyncInfo &sInfo )
00398 {
00399
00400 Inherited::executeSyncImpl(pOther, whichField, sInfo);
00401
00402 if(FieldBits::NoField != (PosZImageFieldMask & whichField))
00403 _sfPosZImage.syncWith(pOther->_sfPosZImage);
00404
00405 if(FieldBits::NoField != (PosXImageFieldMask & whichField))
00406 _sfPosXImage.syncWith(pOther->_sfPosXImage);
00407
00408 if(FieldBits::NoField != (NegXImageFieldMask & whichField))
00409 _sfNegXImage.syncWith(pOther->_sfNegXImage);
00410
00411 if(FieldBits::NoField != (PosYImageFieldMask & whichField))
00412 _sfPosYImage.syncWith(pOther->_sfPosYImage);
00413
00414 if(FieldBits::NoField != (NegYImageFieldMask & whichField))
00415 _sfNegYImage.syncWith(pOther->_sfNegYImage);
00416
00417 if(FieldBits::NoField != (IsReflectionMapFieldMask & whichField))
00418 _sfIsReflectionMap.syncWith(pOther->_sfIsReflectionMap);
00419
00420
00421
00422 }
00423
00424 void CubeTextureChunkBase::execBeginEditImpl (const BitVector &whichField,
00425 UInt32 uiAspect,
00426 UInt32 uiContainerSize)
00427 {
00428 Inherited::execBeginEditImpl(whichField, uiAspect, uiContainerSize);
00429
00430 }
00431 #endif
00432
00433
00434
00435 #include <OSGSFieldTypeDef.inl>
00436 #include <OSGMFieldTypeDef.inl>
00437
00438 OSG_BEGIN_NAMESPACE
00439
00440 #if !defined(OSG_DO_DOC) || defined(OSG_DOC_DEV)
00441 DataType FieldDataTraits<CubeTextureChunkPtr>::_type("CubeTextureChunkPtr", "TextureChunkPtr");
00442 #endif
00443
00444 OSG_DLLEXPORT_SFIELD_DEF1(CubeTextureChunkPtr, OSG_SYSTEMLIB_DLLTMPLMAPPING);
00445 OSG_DLLEXPORT_MFIELD_DEF1(CubeTextureChunkPtr, OSG_SYSTEMLIB_DLLTMPLMAPPING);
00446
00447 OSG_END_NAMESPACE
00448
00449
00450
00451
00452
00453 #ifdef OSG_SGI_CC
00454 #pragma set woff 1174
00455 #endif
00456
00457 #ifdef OSG_LINUX_ICC
00458 #pragma warning( disable : 177 )
00459 #endif
00460
00461 namespace
00462 {
00463 static Char8 cvsid_cpp [] = "@(#)$Id: FCBaseTemplate_cpp.h,v 1.45 2005/07/20 00:10:14 vossg Exp $";
00464 static Char8 cvsid_hpp [] = OSGCUBETEXTURECHUNKBASE_HEADER_CVSID;
00465 static Char8 cvsid_inl [] = OSGCUBETEXTURECHUNKBASE_INLINE_CVSID;
00466
00467 static Char8 cvsid_fields_hpp[] = OSGCUBETEXTURECHUNKFIELDS_HEADER_CVSID;
00468 }
00469