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_COMPILETEXGENCHUNKINST
00055
00056 #include <stdlib.h>
00057 #include <stdio.h>
00058
00059 #include <OSGConfig.h>
00060
00061 #include "OSGTexGenChunkBase.h"
00062 #include "OSGTexGenChunk.h"
00063
00064 #include <OSGGL.h>
00065 #include <OSGGL.h>
00066 #include <OSGGL.h>
00067 #include <OSGGL.h>
00068
00069 OSG_USING_NAMESPACE
00070
00071 const OSG::BitVector TexGenChunkBase::GenFuncSFieldMask =
00072 (TypeTraits<BitVector>::One << TexGenChunkBase::GenFuncSFieldId);
00073
00074 const OSG::BitVector TexGenChunkBase::GenFuncTFieldMask =
00075 (TypeTraits<BitVector>::One << TexGenChunkBase::GenFuncTFieldId);
00076
00077 const OSG::BitVector TexGenChunkBase::GenFuncRFieldMask =
00078 (TypeTraits<BitVector>::One << TexGenChunkBase::GenFuncRFieldId);
00079
00080 const OSG::BitVector TexGenChunkBase::GenFuncQFieldMask =
00081 (TypeTraits<BitVector>::One << TexGenChunkBase::GenFuncQFieldId);
00082
00083 const OSG::BitVector TexGenChunkBase::GenFuncSPlaneFieldMask =
00084 (TypeTraits<BitVector>::One << TexGenChunkBase::GenFuncSPlaneFieldId);
00085
00086 const OSG::BitVector TexGenChunkBase::GenFuncTPlaneFieldMask =
00087 (TypeTraits<BitVector>::One << TexGenChunkBase::GenFuncTPlaneFieldId);
00088
00089 const OSG::BitVector TexGenChunkBase::GenFuncRPlaneFieldMask =
00090 (TypeTraits<BitVector>::One << TexGenChunkBase::GenFuncRPlaneFieldId);
00091
00092 const OSG::BitVector TexGenChunkBase::GenFuncQPlaneFieldMask =
00093 (TypeTraits<BitVector>::One << TexGenChunkBase::GenFuncQPlaneFieldId);
00094
00095 const OSG::BitVector TexGenChunkBase::SBeaconFieldMask =
00096 (TypeTraits<BitVector>::One << TexGenChunkBase::SBeaconFieldId);
00097
00098 const OSG::BitVector TexGenChunkBase::TBeaconFieldMask =
00099 (TypeTraits<BitVector>::One << TexGenChunkBase::TBeaconFieldId);
00100
00101 const OSG::BitVector TexGenChunkBase::RBeaconFieldMask =
00102 (TypeTraits<BitVector>::One << TexGenChunkBase::RBeaconFieldId);
00103
00104 const OSG::BitVector TexGenChunkBase::QBeaconFieldMask =
00105 (TypeTraits<BitVector>::One << TexGenChunkBase::QBeaconFieldId);
00106
00107 const OSG::BitVector TexGenChunkBase::MTInfluenceMask =
00108 (Inherited::MTInfluenceMask) |
00109 (static_cast<BitVector>(0x0) << Inherited::NextFieldId);
00110
00111
00112
00113
00151
00152
00153 FieldDescription *TexGenChunkBase::_desc[] =
00154 {
00155 new FieldDescription(SFGLenum::getClassType(),
00156 "genFuncS",
00157 GenFuncSFieldId, GenFuncSFieldMask,
00158 false,
00159 (FieldAccessMethod) &TexGenChunkBase::getSFGenFuncS),
00160 new FieldDescription(SFGLenum::getClassType(),
00161 "genFuncT",
00162 GenFuncTFieldId, GenFuncTFieldMask,
00163 false,
00164 (FieldAccessMethod) &TexGenChunkBase::getSFGenFuncT),
00165 new FieldDescription(SFGLenum::getClassType(),
00166 "genFuncR",
00167 GenFuncRFieldId, GenFuncRFieldMask,
00168 false,
00169 (FieldAccessMethod) &TexGenChunkBase::getSFGenFuncR),
00170 new FieldDescription(SFGLenum::getClassType(),
00171 "genFuncQ",
00172 GenFuncQFieldId, GenFuncQFieldMask,
00173 false,
00174 (FieldAccessMethod) &TexGenChunkBase::getSFGenFuncQ),
00175 new FieldDescription(SFVec4f::getClassType(),
00176 "genFuncSPlane",
00177 GenFuncSPlaneFieldId, GenFuncSPlaneFieldMask,
00178 false,
00179 (FieldAccessMethod) &TexGenChunkBase::getSFGenFuncSPlane),
00180 new FieldDescription(SFVec4f::getClassType(),
00181 "genFuncTPlane",
00182 GenFuncTPlaneFieldId, GenFuncTPlaneFieldMask,
00183 false,
00184 (FieldAccessMethod) &TexGenChunkBase::getSFGenFuncTPlane),
00185 new FieldDescription(SFVec4f::getClassType(),
00186 "genFuncRPlane",
00187 GenFuncRPlaneFieldId, GenFuncRPlaneFieldMask,
00188 false,
00189 (FieldAccessMethod) &TexGenChunkBase::getSFGenFuncRPlane),
00190 new FieldDescription(SFVec4f::getClassType(),
00191 "genFuncQPlane",
00192 GenFuncQPlaneFieldId, GenFuncQPlaneFieldMask,
00193 false,
00194 (FieldAccessMethod) &TexGenChunkBase::getSFGenFuncQPlane),
00195 new FieldDescription(SFNodePtr::getClassType(),
00196 "sBeacon",
00197 SBeaconFieldId, SBeaconFieldMask,
00198 false,
00199 (FieldAccessMethod) &TexGenChunkBase::getSFSBeacon),
00200 new FieldDescription(SFNodePtr::getClassType(),
00201 "tBeacon",
00202 TBeaconFieldId, TBeaconFieldMask,
00203 false,
00204 (FieldAccessMethod) &TexGenChunkBase::getSFTBeacon),
00205 new FieldDescription(SFNodePtr::getClassType(),
00206 "rBeacon",
00207 RBeaconFieldId, RBeaconFieldMask,
00208 false,
00209 (FieldAccessMethod) &TexGenChunkBase::getSFRBeacon),
00210 new FieldDescription(SFNodePtr::getClassType(),
00211 "qBeacon",
00212 QBeaconFieldId, QBeaconFieldMask,
00213 false,
00214 (FieldAccessMethod) &TexGenChunkBase::getSFQBeacon)
00215 };
00216
00217
00218 FieldContainerType TexGenChunkBase::_type(
00219 "TexGenChunk",
00220 "StateChunk",
00221 NULL,
00222 (PrototypeCreateF) &TexGenChunkBase::createEmpty,
00223 TexGenChunk::initMethod,
00224 _desc,
00225 sizeof(_desc));
00226
00227
00228
00229
00230
00231 FieldContainerType &TexGenChunkBase::getType(void)
00232 {
00233 return _type;
00234 }
00235
00236 const FieldContainerType &TexGenChunkBase::getType(void) const
00237 {
00238 return _type;
00239 }
00240
00241
00242 FieldContainerPtr TexGenChunkBase::shallowCopy(void) const
00243 {
00244 TexGenChunkPtr returnValue;
00245
00246 newPtr(returnValue, dynamic_cast<const TexGenChunk *>(this));
00247
00248 return returnValue;
00249 }
00250
00251 UInt32 TexGenChunkBase::getContainerSize(void) const
00252 {
00253 return sizeof(TexGenChunk);
00254 }
00255
00256
00257 #if !defined(OSG_FIXED_MFIELDSYNC)
00258 void TexGenChunkBase::executeSync( FieldContainer &other,
00259 const BitVector &whichField)
00260 {
00261 this->executeSyncImpl((TexGenChunkBase *) &other, whichField);
00262 }
00263 #else
00264 void TexGenChunkBase::executeSync( FieldContainer &other,
00265 const BitVector &whichField, const SyncInfo &sInfo )
00266 {
00267 this->executeSyncImpl((TexGenChunkBase *) &other, whichField, sInfo);
00268 }
00269 void TexGenChunkBase::execBeginEdit(const BitVector &whichField,
00270 UInt32 uiAspect,
00271 UInt32 uiContainerSize)
00272 {
00273 this->execBeginEditImpl(whichField, uiAspect, uiContainerSize);
00274 }
00275
00276 void TexGenChunkBase::onDestroyAspect(UInt32 uiId, UInt32 uiAspect)
00277 {
00278 Inherited::onDestroyAspect(uiId, uiAspect);
00279
00280 }
00281 #endif
00282
00283
00284
00285 #ifdef OSG_WIN32_ICL
00286 #pragma warning (disable : 383)
00287 #endif
00288
00289 TexGenChunkBase::TexGenChunkBase(void) :
00290 _sfGenFuncS (GLenum(GL_NONE)),
00291 _sfGenFuncT (GLenum(GL_NONE)),
00292 _sfGenFuncR (GLenum(GL_NONE)),
00293 _sfGenFuncQ (GLenum(GL_NONE)),
00294 _sfGenFuncSPlane (Vec4f(1,0,0,0)),
00295 _sfGenFuncTPlane (Vec4f(0,1,0,0)),
00296 _sfGenFuncRPlane (Vec4f(0,0,1,0)),
00297 _sfGenFuncQPlane (Vec4f(0,0,0,1)),
00298 _sfSBeacon (),
00299 _sfTBeacon (),
00300 _sfRBeacon (),
00301 _sfQBeacon (),
00302 Inherited()
00303 {
00304 }
00305
00306 #ifdef OSG_WIN32_ICL
00307 #pragma warning (default : 383)
00308 #endif
00309
00310 TexGenChunkBase::TexGenChunkBase(const TexGenChunkBase &source) :
00311 _sfGenFuncS (source._sfGenFuncS ),
00312 _sfGenFuncT (source._sfGenFuncT ),
00313 _sfGenFuncR (source._sfGenFuncR ),
00314 _sfGenFuncQ (source._sfGenFuncQ ),
00315 _sfGenFuncSPlane (source._sfGenFuncSPlane ),
00316 _sfGenFuncTPlane (source._sfGenFuncTPlane ),
00317 _sfGenFuncRPlane (source._sfGenFuncRPlane ),
00318 _sfGenFuncQPlane (source._sfGenFuncQPlane ),
00319 _sfSBeacon (source._sfSBeacon ),
00320 _sfTBeacon (source._sfTBeacon ),
00321 _sfRBeacon (source._sfRBeacon ),
00322 _sfQBeacon (source._sfQBeacon ),
00323 Inherited (source)
00324 {
00325 }
00326
00327
00328
00329 TexGenChunkBase::~TexGenChunkBase(void)
00330 {
00331 }
00332
00333
00334
00335 UInt32 TexGenChunkBase::getBinSize(const BitVector &whichField)
00336 {
00337 UInt32 returnValue = Inherited::getBinSize(whichField);
00338
00339 if(FieldBits::NoField != (GenFuncSFieldMask & whichField))
00340 {
00341 returnValue += _sfGenFuncS.getBinSize();
00342 }
00343
00344 if(FieldBits::NoField != (GenFuncTFieldMask & whichField))
00345 {
00346 returnValue += _sfGenFuncT.getBinSize();
00347 }
00348
00349 if(FieldBits::NoField != (GenFuncRFieldMask & whichField))
00350 {
00351 returnValue += _sfGenFuncR.getBinSize();
00352 }
00353
00354 if(FieldBits::NoField != (GenFuncQFieldMask & whichField))
00355 {
00356 returnValue += _sfGenFuncQ.getBinSize();
00357 }
00358
00359 if(FieldBits::NoField != (GenFuncSPlaneFieldMask & whichField))
00360 {
00361 returnValue += _sfGenFuncSPlane.getBinSize();
00362 }
00363
00364 if(FieldBits::NoField != (GenFuncTPlaneFieldMask & whichField))
00365 {
00366 returnValue += _sfGenFuncTPlane.getBinSize();
00367 }
00368
00369 if(FieldBits::NoField != (GenFuncRPlaneFieldMask & whichField))
00370 {
00371 returnValue += _sfGenFuncRPlane.getBinSize();
00372 }
00373
00374 if(FieldBits::NoField != (GenFuncQPlaneFieldMask & whichField))
00375 {
00376 returnValue += _sfGenFuncQPlane.getBinSize();
00377 }
00378
00379 if(FieldBits::NoField != (SBeaconFieldMask & whichField))
00380 {
00381 returnValue += _sfSBeacon.getBinSize();
00382 }
00383
00384 if(FieldBits::NoField != (TBeaconFieldMask & whichField))
00385 {
00386 returnValue += _sfTBeacon.getBinSize();
00387 }
00388
00389 if(FieldBits::NoField != (RBeaconFieldMask & whichField))
00390 {
00391 returnValue += _sfRBeacon.getBinSize();
00392 }
00393
00394 if(FieldBits::NoField != (QBeaconFieldMask & whichField))
00395 {
00396 returnValue += _sfQBeacon.getBinSize();
00397 }
00398
00399
00400 return returnValue;
00401 }
00402
00403 void TexGenChunkBase::copyToBin( BinaryDataHandler &pMem,
00404 const BitVector &whichField)
00405 {
00406 Inherited::copyToBin(pMem, whichField);
00407
00408 if(FieldBits::NoField != (GenFuncSFieldMask & whichField))
00409 {
00410 _sfGenFuncS.copyToBin(pMem);
00411 }
00412
00413 if(FieldBits::NoField != (GenFuncTFieldMask & whichField))
00414 {
00415 _sfGenFuncT.copyToBin(pMem);
00416 }
00417
00418 if(FieldBits::NoField != (GenFuncRFieldMask & whichField))
00419 {
00420 _sfGenFuncR.copyToBin(pMem);
00421 }
00422
00423 if(FieldBits::NoField != (GenFuncQFieldMask & whichField))
00424 {
00425 _sfGenFuncQ.copyToBin(pMem);
00426 }
00427
00428 if(FieldBits::NoField != (GenFuncSPlaneFieldMask & whichField))
00429 {
00430 _sfGenFuncSPlane.copyToBin(pMem);
00431 }
00432
00433 if(FieldBits::NoField != (GenFuncTPlaneFieldMask & whichField))
00434 {
00435 _sfGenFuncTPlane.copyToBin(pMem);
00436 }
00437
00438 if(FieldBits::NoField != (GenFuncRPlaneFieldMask & whichField))
00439 {
00440 _sfGenFuncRPlane.copyToBin(pMem);
00441 }
00442
00443 if(FieldBits::NoField != (GenFuncQPlaneFieldMask & whichField))
00444 {
00445 _sfGenFuncQPlane.copyToBin(pMem);
00446 }
00447
00448 if(FieldBits::NoField != (SBeaconFieldMask & whichField))
00449 {
00450 _sfSBeacon.copyToBin(pMem);
00451 }
00452
00453 if(FieldBits::NoField != (TBeaconFieldMask & whichField))
00454 {
00455 _sfTBeacon.copyToBin(pMem);
00456 }
00457
00458 if(FieldBits::NoField != (RBeaconFieldMask & whichField))
00459 {
00460 _sfRBeacon.copyToBin(pMem);
00461 }
00462
00463 if(FieldBits::NoField != (QBeaconFieldMask & whichField))
00464 {
00465 _sfQBeacon.copyToBin(pMem);
00466 }
00467
00468
00469 }
00470
00471 void TexGenChunkBase::copyFromBin( BinaryDataHandler &pMem,
00472 const BitVector &whichField)
00473 {
00474 Inherited::copyFromBin(pMem, whichField);
00475
00476 if(FieldBits::NoField != (GenFuncSFieldMask & whichField))
00477 {
00478 _sfGenFuncS.copyFromBin(pMem);
00479 }
00480
00481 if(FieldBits::NoField != (GenFuncTFieldMask & whichField))
00482 {
00483 _sfGenFuncT.copyFromBin(pMem);
00484 }
00485
00486 if(FieldBits::NoField != (GenFuncRFieldMask & whichField))
00487 {
00488 _sfGenFuncR.copyFromBin(pMem);
00489 }
00490
00491 if(FieldBits::NoField != (GenFuncQFieldMask & whichField))
00492 {
00493 _sfGenFuncQ.copyFromBin(pMem);
00494 }
00495
00496 if(FieldBits::NoField != (GenFuncSPlaneFieldMask & whichField))
00497 {
00498 _sfGenFuncSPlane.copyFromBin(pMem);
00499 }
00500
00501 if(FieldBits::NoField != (GenFuncTPlaneFieldMask & whichField))
00502 {
00503 _sfGenFuncTPlane.copyFromBin(pMem);
00504 }
00505
00506 if(FieldBits::NoField != (GenFuncRPlaneFieldMask & whichField))
00507 {
00508 _sfGenFuncRPlane.copyFromBin(pMem);
00509 }
00510
00511 if(FieldBits::NoField != (GenFuncQPlaneFieldMask & whichField))
00512 {
00513 _sfGenFuncQPlane.copyFromBin(pMem);
00514 }
00515
00516 if(FieldBits::NoField != (SBeaconFieldMask & whichField))
00517 {
00518 _sfSBeacon.copyFromBin(pMem);
00519 }
00520
00521 if(FieldBits::NoField != (TBeaconFieldMask & whichField))
00522 {
00523 _sfTBeacon.copyFromBin(pMem);
00524 }
00525
00526 if(FieldBits::NoField != (RBeaconFieldMask & whichField))
00527 {
00528 _sfRBeacon.copyFromBin(pMem);
00529 }
00530
00531 if(FieldBits::NoField != (QBeaconFieldMask & whichField))
00532 {
00533 _sfQBeacon.copyFromBin(pMem);
00534 }
00535
00536
00537 }
00538
00539 #if !defined(OSG_FIXED_MFIELDSYNC)
00540 void TexGenChunkBase::executeSyncImpl( TexGenChunkBase *pOther,
00541 const BitVector &whichField)
00542 {
00543
00544 Inherited::executeSyncImpl(pOther, whichField);
00545
00546 if(FieldBits::NoField != (GenFuncSFieldMask & whichField))
00547 _sfGenFuncS.syncWith(pOther->_sfGenFuncS);
00548
00549 if(FieldBits::NoField != (GenFuncTFieldMask & whichField))
00550 _sfGenFuncT.syncWith(pOther->_sfGenFuncT);
00551
00552 if(FieldBits::NoField != (GenFuncRFieldMask & whichField))
00553 _sfGenFuncR.syncWith(pOther->_sfGenFuncR);
00554
00555 if(FieldBits::NoField != (GenFuncQFieldMask & whichField))
00556 _sfGenFuncQ.syncWith(pOther->_sfGenFuncQ);
00557
00558 if(FieldBits::NoField != (GenFuncSPlaneFieldMask & whichField))
00559 _sfGenFuncSPlane.syncWith(pOther->_sfGenFuncSPlane);
00560
00561 if(FieldBits::NoField != (GenFuncTPlaneFieldMask & whichField))
00562 _sfGenFuncTPlane.syncWith(pOther->_sfGenFuncTPlane);
00563
00564 if(FieldBits::NoField != (GenFuncRPlaneFieldMask & whichField))
00565 _sfGenFuncRPlane.syncWith(pOther->_sfGenFuncRPlane);
00566
00567 if(FieldBits::NoField != (GenFuncQPlaneFieldMask & whichField))
00568 _sfGenFuncQPlane.syncWith(pOther->_sfGenFuncQPlane);
00569
00570 if(FieldBits::NoField != (SBeaconFieldMask & whichField))
00571 _sfSBeacon.syncWith(pOther->_sfSBeacon);
00572
00573 if(FieldBits::NoField != (TBeaconFieldMask & whichField))
00574 _sfTBeacon.syncWith(pOther->_sfTBeacon);
00575
00576 if(FieldBits::NoField != (RBeaconFieldMask & whichField))
00577 _sfRBeacon.syncWith(pOther->_sfRBeacon);
00578
00579 if(FieldBits::NoField != (QBeaconFieldMask & whichField))
00580 _sfQBeacon.syncWith(pOther->_sfQBeacon);
00581
00582
00583 }
00584 #else
00585 void TexGenChunkBase::executeSyncImpl( TexGenChunkBase *pOther,
00586 const BitVector &whichField,
00587 const SyncInfo &sInfo )
00588 {
00589
00590 Inherited::executeSyncImpl(pOther, whichField, sInfo);
00591
00592 if(FieldBits::NoField != (GenFuncSFieldMask & whichField))
00593 _sfGenFuncS.syncWith(pOther->_sfGenFuncS);
00594
00595 if(FieldBits::NoField != (GenFuncTFieldMask & whichField))
00596 _sfGenFuncT.syncWith(pOther->_sfGenFuncT);
00597
00598 if(FieldBits::NoField != (GenFuncRFieldMask & whichField))
00599 _sfGenFuncR.syncWith(pOther->_sfGenFuncR);
00600
00601 if(FieldBits::NoField != (GenFuncQFieldMask & whichField))
00602 _sfGenFuncQ.syncWith(pOther->_sfGenFuncQ);
00603
00604 if(FieldBits::NoField != (GenFuncSPlaneFieldMask & whichField))
00605 _sfGenFuncSPlane.syncWith(pOther->_sfGenFuncSPlane);
00606
00607 if(FieldBits::NoField != (GenFuncTPlaneFieldMask & whichField))
00608 _sfGenFuncTPlane.syncWith(pOther->_sfGenFuncTPlane);
00609
00610 if(FieldBits::NoField != (GenFuncRPlaneFieldMask & whichField))
00611 _sfGenFuncRPlane.syncWith(pOther->_sfGenFuncRPlane);
00612
00613 if(FieldBits::NoField != (GenFuncQPlaneFieldMask & whichField))
00614 _sfGenFuncQPlane.syncWith(pOther->_sfGenFuncQPlane);
00615
00616 if(FieldBits::NoField != (SBeaconFieldMask & whichField))
00617 _sfSBeacon.syncWith(pOther->_sfSBeacon);
00618
00619 if(FieldBits::NoField != (TBeaconFieldMask & whichField))
00620 _sfTBeacon.syncWith(pOther->_sfTBeacon);
00621
00622 if(FieldBits::NoField != (RBeaconFieldMask & whichField))
00623 _sfRBeacon.syncWith(pOther->_sfRBeacon);
00624
00625 if(FieldBits::NoField != (QBeaconFieldMask & whichField))
00626 _sfQBeacon.syncWith(pOther->_sfQBeacon);
00627
00628
00629
00630 }
00631
00632 void TexGenChunkBase::execBeginEditImpl (const BitVector &whichField,
00633 UInt32 uiAspect,
00634 UInt32 uiContainerSize)
00635 {
00636 Inherited::execBeginEditImpl(whichField, uiAspect, uiContainerSize);
00637
00638 }
00639 #endif
00640
00641
00642
00643 #include <OSGSFieldTypeDef.inl>
00644 #include <OSGMFieldTypeDef.inl>
00645
00646 OSG_BEGIN_NAMESPACE
00647
00648 #if !defined(OSG_DO_DOC) || defined(OSG_DOC_DEV)
00649 DataType FieldDataTraits<TexGenChunkPtr>::_type("TexGenChunkPtr", "StateChunkPtr");
00650 #endif
00651
00652 OSG_DLLEXPORT_SFIELD_DEF1(TexGenChunkPtr, OSG_SYSTEMLIB_DLLTMPLMAPPING);
00653 OSG_DLLEXPORT_MFIELD_DEF1(TexGenChunkPtr, OSG_SYSTEMLIB_DLLTMPLMAPPING);
00654
00655 OSG_END_NAMESPACE
00656
00657
00658
00659
00660
00661 #ifdef OSG_SGI_CC
00662 #pragma set woff 1174
00663 #endif
00664
00665 #ifdef OSG_LINUX_ICC
00666 #pragma warning( disable : 177 )
00667 #endif
00668
00669 namespace
00670 {
00671 static Char8 cvsid_cpp [] = "@(#)$Id: FCBaseTemplate_cpp.h,v 1.45 2005/07/20 00:10:14 vossg Exp $";
00672 static Char8 cvsid_hpp [] = OSGTEXGENCHUNKBASE_HEADER_CVSID;
00673 static Char8 cvsid_inl [] = OSGTEXGENCHUNKBASE_INLINE_CVSID;
00674
00675 static Char8 cvsid_fields_hpp[] = OSGTEXGENCHUNKFIELDS_HEADER_CVSID;
00676 }
00677