Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

OSGGeometryBase.cpp

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------------*\
00002  *                                OpenSG                                     *
00003  *                                                                           *
00004  *                                                                           *
00005  *               Copyright (C) 2000-2002 by the OpenSG Forum                 *
00006  *                                                                           *
00007  *                            www.opensg.org                                 *
00008  *                                                                           *
00009  *   contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de          *
00010  *                                                                           *
00011 \*---------------------------------------------------------------------------*/
00012 /*---------------------------------------------------------------------------*\
00013  *                                License                                    *
00014  *                                                                           *
00015  * This library is free software; you can redistribute it and/or modify it   *
00016  * under the terms of the GNU Library General Public License as published    *
00017  * by the Free Software Foundation, version 2.                               *
00018  *                                                                           *
00019  * This library is distributed in the hope that it will be useful, but       *
00020  * WITHOUT ANY WARRANTY; without even the implied warranty of                *
00021  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU         *
00022  * Library General Public License for more details.                          *
00023  *                                                                           *
00024  * You should have received a copy of the GNU Library General Public         *
00025  * License along with this library; if not, write to the Free Software       *
00026  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.                 *
00027  *                                                                           *
00028 \*---------------------------------------------------------------------------*/
00029 /*---------------------------------------------------------------------------*\
00030  *                                Changes                                    *
00031  *                                                                           *
00032  *                                                                           *
00033  *                                                                           *
00034  *                                                                           *
00035  *                                                                           *
00036  *                                                                           *
00037 \*---------------------------------------------------------------------------*/
00038 
00039 /*****************************************************************************\
00040  *****************************************************************************
00041  **                                                                         **
00042  **                  This file is automatically generated.                  **
00043  **                                                                         **
00044  **          Any changes made to this file WILL be lost when it is          **
00045  **           regenerated, which can become necessary at any time.          **
00046  **                                                                         **
00047  **     Do not change this file, changes should be done in the derived      **
00048  **     class Geometry!
00049  **                                                                         **
00050  *****************************************************************************
00051 \*****************************************************************************/
00052 
00053 
00054 #define OSG_COMPILEGEOMETRYINST
00055 
00056 #include <stdlib.h>
00057 #include <stdio.h>
00058 
00059 #include <OSGConfig.h>
00060 
00061 #include "OSGGeometryBase.h"
00062 #include "OSGGeometry.h"
00063 
00064 
00065 OSG_USING_NAMESPACE
00066 
00067 const OSG::BitVector  GeometryBase::TypesFieldMask = 
00068     (TypeTraits<BitVector>::One << GeometryBase::TypesFieldId);
00069 
00070 const OSG::BitVector  GeometryBase::LengthsFieldMask = 
00071     (TypeTraits<BitVector>::One << GeometryBase::LengthsFieldId);
00072 
00073 const OSG::BitVector  GeometryBase::PositionsFieldMask = 
00074     (TypeTraits<BitVector>::One << GeometryBase::PositionsFieldId);
00075 
00076 const OSG::BitVector  GeometryBase::NormalsFieldMask = 
00077     (TypeTraits<BitVector>::One << GeometryBase::NormalsFieldId);
00078 
00079 const OSG::BitVector  GeometryBase::ColorsFieldMask = 
00080     (TypeTraits<BitVector>::One << GeometryBase::ColorsFieldId);
00081 
00082 const OSG::BitVector  GeometryBase::SecondaryColorsFieldMask = 
00083     (TypeTraits<BitVector>::One << GeometryBase::SecondaryColorsFieldId);
00084 
00085 const OSG::BitVector  GeometryBase::TexCoordsFieldMask = 
00086     (TypeTraits<BitVector>::One << GeometryBase::TexCoordsFieldId);
00087 
00088 const OSG::BitVector  GeometryBase::TexCoords1FieldMask = 
00089     (TypeTraits<BitVector>::One << GeometryBase::TexCoords1FieldId);
00090 
00091 const OSG::BitVector  GeometryBase::TexCoords2FieldMask = 
00092     (TypeTraits<BitVector>::One << GeometryBase::TexCoords2FieldId);
00093 
00094 const OSG::BitVector  GeometryBase::TexCoords3FieldMask = 
00095     (TypeTraits<BitVector>::One << GeometryBase::TexCoords3FieldId);
00096 
00097 const OSG::BitVector  GeometryBase::IndicesFieldMask = 
00098     (TypeTraits<BitVector>::One << GeometryBase::IndicesFieldId);
00099 
00100 const OSG::BitVector  GeometryBase::IndexMappingFieldMask = 
00101     (TypeTraits<BitVector>::One << GeometryBase::IndexMappingFieldId);
00102 
00103 const OSG::BitVector  GeometryBase::DlistCacheFieldMask = 
00104     (TypeTraits<BitVector>::One << GeometryBase::DlistCacheFieldId);
00105 
00106 const OSG::BitVector  GeometryBase::GLIdFieldMask = 
00107     (TypeTraits<BitVector>::One << GeometryBase::GLIdFieldId);
00108 
00109 const OSG::BitVector GeometryBase::MTInfluenceMask = 
00110     (Inherited::MTInfluenceMask) | 
00111     (static_cast<BitVector>(0x0) << Inherited::NextFieldId); 
00112 
00113 
00114 // Field descriptions
00115 
00159 
00160 
00161 FieldDescription *GeometryBase::_desc[] = 
00162 {
00163     new FieldDescription(SFGeoPTypesPtr::getClassType(), 
00164                      "types", 
00165                      TypesFieldId, TypesFieldMask,
00166                      false,
00167                      (FieldAccessMethod) &GeometryBase::getSFTypes),
00168     new FieldDescription(SFGeoPLengthsPtr::getClassType(), 
00169                      "lengths", 
00170                      LengthsFieldId, LengthsFieldMask,
00171                      false,
00172                      (FieldAccessMethod) &GeometryBase::getSFLengths),
00173     new FieldDescription(SFGeoPositionsPtr::getClassType(), 
00174                      "positions", 
00175                      PositionsFieldId, PositionsFieldMask,
00176                      false,
00177                      (FieldAccessMethod) &GeometryBase::getSFPositions),
00178     new FieldDescription(SFGeoNormalsPtr::getClassType(), 
00179                      "normals", 
00180                      NormalsFieldId, NormalsFieldMask,
00181                      false,
00182                      (FieldAccessMethod) &GeometryBase::getSFNormals),
00183     new FieldDescription(SFGeoColorsPtr::getClassType(), 
00184                      "colors", 
00185                      ColorsFieldId, ColorsFieldMask,
00186                      false,
00187                      (FieldAccessMethod) &GeometryBase::getSFColors),
00188     new FieldDescription(SFGeoColorsPtr::getClassType(), 
00189                      "secondaryColors", 
00190                      SecondaryColorsFieldId, SecondaryColorsFieldMask,
00191                      false,
00192                      (FieldAccessMethod) &GeometryBase::getSFSecondaryColors),
00193     new FieldDescription(SFGeoTexCoordsPtr::getClassType(), 
00194                      "texCoords", 
00195                      TexCoordsFieldId, TexCoordsFieldMask,
00196                      false,
00197                      (FieldAccessMethod) &GeometryBase::getSFTexCoords),
00198     new FieldDescription(SFGeoTexCoordsPtr::getClassType(), 
00199                      "texCoords1", 
00200                      TexCoords1FieldId, TexCoords1FieldMask,
00201                      false,
00202                      (FieldAccessMethod) &GeometryBase::getSFTexCoords1),
00203     new FieldDescription(SFGeoTexCoordsPtr::getClassType(), 
00204                      "texCoords2", 
00205                      TexCoords2FieldId, TexCoords2FieldMask,
00206                      false,
00207                      (FieldAccessMethod) &GeometryBase::getSFTexCoords2),
00208     new FieldDescription(SFGeoTexCoordsPtr::getClassType(), 
00209                      "texCoords3", 
00210                      TexCoords3FieldId, TexCoords3FieldMask,
00211                      false,
00212                      (FieldAccessMethod) &GeometryBase::getSFTexCoords3),
00213     new FieldDescription(SFGeoIndicesPtr::getClassType(), 
00214                      "indices", 
00215                      IndicesFieldId, IndicesFieldMask,
00216                      false,
00217                      (FieldAccessMethod) &GeometryBase::getSFIndices),
00218     new FieldDescription(MFUInt16::getClassType(), 
00219                      "indexMapping", 
00220                      IndexMappingFieldId, IndexMappingFieldMask,
00221                      false,
00222                      (FieldAccessMethod) &GeometryBase::getMFIndexMapping),
00223     new FieldDescription(SFBool::getClassType(), 
00224                      "dlistCache", 
00225                      DlistCacheFieldId, DlistCacheFieldMask,
00226                      false,
00227                      (FieldAccessMethod) &GeometryBase::getSFDlistCache),
00228     new FieldDescription(SFInt32::getClassType(), 
00229                      "GLId", 
00230                      GLIdFieldId, GLIdFieldMask,
00231                      true,
00232                      (FieldAccessMethod) &GeometryBase::getSFGLId)
00233 };
00234 
00235 
00236 FieldContainerType GeometryBase::_type(
00237     "Geometry",
00238     "MaterialDrawable",
00239     NULL,
00240     (PrototypeCreateF) &GeometryBase::createEmpty,
00241     Geometry::initMethod,
00242     _desc,
00243     sizeof(_desc));
00244 
00245 //OSG_FIELD_CONTAINER_DEF(GeometryBase, GeometryPtr)
00246 
00247 /*------------------------------ get -----------------------------------*/
00248 
00249 FieldContainerType &GeometryBase::getType(void) 
00250 {
00251     return _type; 
00252 } 
00253 
00254 const FieldContainerType &GeometryBase::getType(void) const 
00255 {
00256     return _type;
00257 } 
00258 
00259 
00260 FieldContainerPtr GeometryBase::shallowCopy(void) const 
00261 { 
00262     GeometryPtr returnValue; 
00263 
00264     newPtr(returnValue, dynamic_cast<const Geometry *>(this)); 
00265 
00266     return returnValue; 
00267 }
00268 
00269 UInt32 GeometryBase::getContainerSize(void) const 
00270 { 
00271     return sizeof(Geometry); 
00272 }
00273 
00274 
00275 #if !defined(OSG_FIXED_MFIELDSYNC)
00276 void GeometryBase::executeSync(      FieldContainer &other,
00277                                     const BitVector      &whichField)
00278 {
00279     this->executeSyncImpl((GeometryBase *) &other, whichField);
00280 }
00281 #else
00282 void GeometryBase::executeSync(      FieldContainer &other,
00283                                     const BitVector      &whichField,                                    const SyncInfo       &sInfo     )
00284 {
00285     this->executeSyncImpl((GeometryBase *) &other, whichField, sInfo);
00286 }
00287 void GeometryBase::execBeginEdit(const BitVector &whichField, 
00288                                             UInt32     uiAspect,
00289                                             UInt32     uiContainerSize) 
00290 {
00291     this->execBeginEditImpl(whichField, uiAspect, uiContainerSize);
00292 }
00293 
00294 void GeometryBase::onDestroyAspect(UInt32 uiId, UInt32 uiAspect)
00295 {
00296     Inherited::onDestroyAspect(uiId, uiAspect);
00297 
00298     _mfIndexMapping.terminateShare(uiAspect, this->getContainerSize());
00299 }
00300 #endif
00301 
00302 /*------------------------- constructors ----------------------------------*/
00303 
00304 #ifdef OSG_WIN32_ICL
00305 #pragma warning (disable : 383)
00306 #endif
00307 
00308 GeometryBase::GeometryBase(void) :
00309     _sfTypes                  (), 
00310     _sfLengths                (), 
00311     _sfPositions              (), 
00312     _sfNormals                (), 
00313     _sfColors                 (), 
00314     _sfSecondaryColors        (), 
00315     _sfTexCoords              (), 
00316     _sfTexCoords1             (), 
00317     _sfTexCoords2             (), 
00318     _sfTexCoords3             (), 
00319     _sfIndices                (), 
00320     _mfIndexMapping           (), 
00321     _sfDlistCache             (bool(true)), 
00322     _sfGLId                   (Int32(0)), 
00323     Inherited() 
00324 {
00325 }
00326 
00327 #ifdef OSG_WIN32_ICL
00328 #pragma warning (default : 383)
00329 #endif
00330 
00331 GeometryBase::GeometryBase(const GeometryBase &source) :
00332     _sfTypes                  (source._sfTypes                  ), 
00333     _sfLengths                (source._sfLengths                ), 
00334     _sfPositions              (source._sfPositions              ), 
00335     _sfNormals                (source._sfNormals                ), 
00336     _sfColors                 (source._sfColors                 ), 
00337     _sfSecondaryColors        (source._sfSecondaryColors        ), 
00338     _sfTexCoords              (source._sfTexCoords              ), 
00339     _sfTexCoords1             (source._sfTexCoords1             ), 
00340     _sfTexCoords2             (source._sfTexCoords2             ), 
00341     _sfTexCoords3             (source._sfTexCoords3             ), 
00342     _sfIndices                (source._sfIndices                ), 
00343     _mfIndexMapping           (source._mfIndexMapping           ), 
00344     _sfDlistCache             (source._sfDlistCache             ), 
00345     _sfGLId                   (source._sfGLId                   ), 
00346     Inherited                 (source)
00347 {
00348 }
00349 
00350 /*-------------------------- destructors ----------------------------------*/
00351 
00352 GeometryBase::~GeometryBase(void)
00353 {
00354 }
00355 
00356 /*------------------------------ access -----------------------------------*/
00357 
00358 UInt32 GeometryBase::getBinSize(const BitVector &whichField)
00359 {
00360     UInt32 returnValue = Inherited::getBinSize(whichField);
00361 
00362     if(FieldBits::NoField != (TypesFieldMask & whichField))
00363     {
00364         returnValue += _sfTypes.getBinSize();
00365     }
00366 
00367     if(FieldBits::NoField != (LengthsFieldMask & whichField))
00368     {
00369         returnValue += _sfLengths.getBinSize();
00370     }
00371 
00372     if(FieldBits::NoField != (PositionsFieldMask & whichField))
00373     {
00374         returnValue += _sfPositions.getBinSize();
00375     }
00376 
00377     if(FieldBits::NoField != (NormalsFieldMask & whichField))
00378     {
00379         returnValue += _sfNormals.getBinSize();
00380     }
00381 
00382     if(FieldBits::NoField != (ColorsFieldMask & whichField))
00383     {
00384         returnValue += _sfColors.getBinSize();
00385     }
00386 
00387     if(FieldBits::NoField != (SecondaryColorsFieldMask & whichField))
00388     {
00389         returnValue += _sfSecondaryColors.getBinSize();
00390     }
00391 
00392     if(FieldBits::NoField != (TexCoordsFieldMask & whichField))
00393     {
00394         returnValue += _sfTexCoords.getBinSize();
00395     }
00396 
00397     if(FieldBits::NoField != (TexCoords1FieldMask & whichField))
00398     {
00399         returnValue += _sfTexCoords1.getBinSize();
00400     }
00401 
00402     if(FieldBits::NoField != (TexCoords2FieldMask & whichField))
00403     {
00404         returnValue += _sfTexCoords2.getBinSize();
00405     }
00406 
00407     if(FieldBits::NoField != (TexCoords3FieldMask & whichField))
00408     {
00409         returnValue += _sfTexCoords3.getBinSize();
00410     }
00411 
00412     if(FieldBits::NoField != (IndicesFieldMask & whichField))
00413     {
00414         returnValue += _sfIndices.getBinSize();
00415     }
00416 
00417     if(FieldBits::NoField != (IndexMappingFieldMask & whichField))
00418     {
00419         returnValue += _mfIndexMapping.getBinSize();
00420     }
00421 
00422     if(FieldBits::NoField != (DlistCacheFieldMask & whichField))
00423     {
00424         returnValue += _sfDlistCache.getBinSize();
00425     }
00426 
00427     if(FieldBits::NoField != (GLIdFieldMask & whichField))
00428     {
00429         returnValue += _sfGLId.getBinSize();
00430     }
00431 
00432 
00433     return returnValue;
00434 }
00435 
00436 void GeometryBase::copyToBin(      BinaryDataHandler &pMem,
00437                                   const BitVector         &whichField)
00438 {
00439     Inherited::copyToBin(pMem, whichField);
00440 
00441     if(FieldBits::NoField != (TypesFieldMask & whichField))
00442     {
00443         _sfTypes.copyToBin(pMem);
00444     }
00445 
00446     if(FieldBits::NoField != (LengthsFieldMask & whichField))
00447     {
00448         _sfLengths.copyToBin(pMem);
00449     }
00450 
00451     if(FieldBits::NoField != (PositionsFieldMask & whichField))
00452     {
00453         _sfPositions.copyToBin(pMem);
00454     }
00455 
00456     if(FieldBits::NoField != (NormalsFieldMask & whichField))
00457     {
00458         _sfNormals.copyToBin(pMem);
00459     }
00460 
00461     if(FieldBits::NoField != (ColorsFieldMask & whichField))
00462     {
00463         _sfColors.copyToBin(pMem);
00464     }
00465 
00466     if(FieldBits::NoField != (SecondaryColorsFieldMask & whichField))
00467     {
00468         _sfSecondaryColors.copyToBin(pMem);
00469     }
00470 
00471     if(FieldBits::NoField != (TexCoordsFieldMask & whichField))
00472     {
00473         _sfTexCoords.copyToBin(pMem);
00474     }
00475 
00476     if(FieldBits::NoField != (TexCoords1FieldMask & whichField))
00477     {
00478         _sfTexCoords1.copyToBin(pMem);
00479     }
00480 
00481     if(FieldBits::NoField != (TexCoords2FieldMask & whichField))
00482     {
00483         _sfTexCoords2.copyToBin(pMem);
00484     }
00485 
00486     if(FieldBits::NoField != (TexCoords3FieldMask & whichField))
00487     {
00488         _sfTexCoords3.copyToBin(pMem);
00489     }
00490 
00491     if(FieldBits::NoField != (IndicesFieldMask & whichField))
00492     {
00493         _sfIndices.copyToBin(pMem);
00494     }
00495 
00496     if(FieldBits::NoField != (IndexMappingFieldMask & whichField))
00497     {
00498         _mfIndexMapping.copyToBin(pMem);
00499     }
00500 
00501     if(FieldBits::NoField != (DlistCacheFieldMask & whichField))
00502     {
00503         _sfDlistCache.copyToBin(pMem);
00504     }
00505 
00506     if(FieldBits::NoField != (GLIdFieldMask & whichField))
00507     {
00508         _sfGLId.copyToBin(pMem);
00509     }
00510 
00511 
00512 }
00513 
00514 void GeometryBase::copyFromBin(      BinaryDataHandler &pMem,
00515                                     const BitVector    &whichField)
00516 {
00517     Inherited::copyFromBin(pMem, whichField);
00518 
00519     if(FieldBits::NoField != (TypesFieldMask & whichField))
00520     {
00521         _sfTypes.copyFromBin(pMem);
00522     }
00523 
00524     if(FieldBits::NoField != (LengthsFieldMask & whichField))
00525     {
00526         _sfLengths.copyFromBin(pMem);
00527     }
00528 
00529     if(FieldBits::NoField != (PositionsFieldMask & whichField))
00530     {
00531         _sfPositions.copyFromBin(pMem);
00532     }
00533 
00534     if(FieldBits::NoField != (NormalsFieldMask & whichField))
00535     {
00536         _sfNormals.copyFromBin(pMem);
00537     }
00538 
00539     if(FieldBits::NoField != (ColorsFieldMask & whichField))
00540     {
00541         _sfColors.copyFromBin(pMem);
00542     }
00543 
00544     if(FieldBits::NoField != (SecondaryColorsFieldMask & whichField))
00545     {
00546         _sfSecondaryColors.copyFromBin(pMem);
00547     }
00548 
00549     if(FieldBits::NoField != (TexCoordsFieldMask & whichField))
00550     {
00551         _sfTexCoords.copyFromBin(pMem);
00552     }
00553 
00554     if(FieldBits::NoField != (TexCoords1FieldMask & whichField))
00555     {
00556         _sfTexCoords1.copyFromBin(pMem);
00557     }
00558 
00559     if(FieldBits::NoField != (TexCoords2FieldMask & whichField))
00560     {
00561         _sfTexCoords2.copyFromBin(pMem);
00562     }
00563 
00564     if(FieldBits::NoField != (TexCoords3FieldMask & whichField))
00565     {
00566         _sfTexCoords3.copyFromBin(pMem);
00567     }
00568 
00569     if(FieldBits::NoField != (IndicesFieldMask & whichField))
00570     {
00571         _sfIndices.copyFromBin(pMem);
00572     }
00573 
00574     if(FieldBits::NoField != (IndexMappingFieldMask & whichField))
00575     {
00576         _mfIndexMapping.copyFromBin(pMem);
00577     }
00578 
00579     if(FieldBits::NoField != (DlistCacheFieldMask & whichField))
00580     {
00581         _sfDlistCache.copyFromBin(pMem);
00582     }
00583 
00584     if(FieldBits::NoField != (GLIdFieldMask & whichField))
00585     {
00586         _sfGLId.copyFromBin(pMem);
00587     }
00588 
00589 
00590 }
00591 
00592 #if !defined(OSG_FIXED_MFIELDSYNC)
00593 void GeometryBase::executeSyncImpl(      GeometryBase *pOther,
00594                                         const BitVector         &whichField)
00595 {
00596 
00597     Inherited::executeSyncImpl(pOther, whichField);
00598 
00599     if(FieldBits::NoField != (TypesFieldMask & whichField))
00600         _sfTypes.syncWith(pOther->_sfTypes);
00601 
00602     if(FieldBits::NoField != (LengthsFieldMask & whichField))
00603         _sfLengths.syncWith(pOther->_sfLengths);
00604 
00605     if(FieldBits::NoField != (PositionsFieldMask & whichField))
00606         _sfPositions.syncWith(pOther->_sfPositions);
00607 
00608     if(FieldBits::NoField != (NormalsFieldMask & whichField))
00609         _sfNormals.syncWith(pOther->_sfNormals);
00610 
00611     if(FieldBits::NoField != (ColorsFieldMask & whichField))
00612         _sfColors.syncWith(pOther->_sfColors);
00613 
00614     if(FieldBits::NoField != (SecondaryColorsFieldMask & whichField))
00615         _sfSecondaryColors.syncWith(pOther->_sfSecondaryColors);
00616 
00617     if(FieldBits::NoField != (TexCoordsFieldMask & whichField))
00618         _sfTexCoords.syncWith(pOther->_sfTexCoords);
00619 
00620     if(FieldBits::NoField != (TexCoords1FieldMask & whichField))
00621         _sfTexCoords1.syncWith(pOther->_sfTexCoords1);
00622 
00623     if(FieldBits::NoField != (TexCoords2FieldMask & whichField))
00624         _sfTexCoords2.syncWith(pOther->_sfTexCoords2);
00625 
00626     if(FieldBits::NoField != (TexCoords3FieldMask & whichField))
00627         _sfTexCoords3.syncWith(pOther->_sfTexCoords3);
00628 
00629     if(FieldBits::NoField != (IndicesFieldMask & whichField))
00630         _sfIndices.syncWith(pOther->_sfIndices);
00631 
00632     if(FieldBits::NoField != (IndexMappingFieldMask & whichField))
00633         _mfIndexMapping.syncWith(pOther->_mfIndexMapping);
00634 
00635     if(FieldBits::NoField != (DlistCacheFieldMask & whichField))
00636         _sfDlistCache.syncWith(pOther->_sfDlistCache);
00637 
00638     if(FieldBits::NoField != (GLIdFieldMask & whichField))
00639         _sfGLId.syncWith(pOther->_sfGLId);
00640 
00641 
00642 }
00643 #else
00644 void GeometryBase::executeSyncImpl(      GeometryBase *pOther,
00645                                         const BitVector         &whichField,
00646                                         const SyncInfo          &sInfo      )
00647 {
00648 
00649     Inherited::executeSyncImpl(pOther, whichField, sInfo);
00650 
00651     if(FieldBits::NoField != (TypesFieldMask & whichField))
00652         _sfTypes.syncWith(pOther->_sfTypes);
00653 
00654     if(FieldBits::NoField != (LengthsFieldMask & whichField))
00655         _sfLengths.syncWith(pOther->_sfLengths);
00656 
00657     if(FieldBits::NoField != (PositionsFieldMask & whichField))
00658         _sfPositions.syncWith(pOther->_sfPositions);
00659 
00660     if(FieldBits::NoField != (NormalsFieldMask & whichField))
00661         _sfNormals.syncWith(pOther->_sfNormals);
00662 
00663     if(FieldBits::NoField != (ColorsFieldMask & whichField))
00664         _sfColors.syncWith(pOther->_sfColors);
00665 
00666     if(FieldBits::NoField != (SecondaryColorsFieldMask & whichField))
00667         _sfSecondaryColors.syncWith(pOther->_sfSecondaryColors);
00668 
00669     if(FieldBits::NoField != (TexCoordsFieldMask & whichField))
00670         _sfTexCoords.syncWith(pOther->_sfTexCoords);
00671 
00672     if(FieldBits::NoField != (TexCoords1FieldMask & whichField))
00673         _sfTexCoords1.syncWith(pOther->_sfTexCoords1);
00674 
00675     if(FieldBits::NoField != (TexCoords2FieldMask & whichField))
00676         _sfTexCoords2.syncWith(pOther->_sfTexCoords2);
00677 
00678     if(FieldBits::NoField != (TexCoords3FieldMask & whichField))
00679         _sfTexCoords3.syncWith(pOther->_sfTexCoords3);
00680 
00681     if(FieldBits::NoField != (IndicesFieldMask & whichField))
00682         _sfIndices.syncWith(pOther->_sfIndices);
00683 
00684     if(FieldBits::NoField != (DlistCacheFieldMask & whichField))
00685         _sfDlistCache.syncWith(pOther->_sfDlistCache);
00686 
00687     if(FieldBits::NoField != (GLIdFieldMask & whichField))
00688         _sfGLId.syncWith(pOther->_sfGLId);
00689 
00690 
00691     if(FieldBits::NoField != (IndexMappingFieldMask & whichField))
00692         _mfIndexMapping.syncWith(pOther->_mfIndexMapping, sInfo);
00693 
00694 
00695 }
00696 
00697 void GeometryBase::execBeginEditImpl (const BitVector &whichField, 
00698                                                  UInt32     uiAspect,
00699                                                  UInt32     uiContainerSize)
00700 {
00701     Inherited::execBeginEditImpl(whichField, uiAspect, uiContainerSize);
00702 
00703     if(FieldBits::NoField != (IndexMappingFieldMask & whichField))
00704         _mfIndexMapping.beginEdit(uiAspect, uiContainerSize);
00705 
00706 }
00707 #endif
00708 
00709 
00710 
00711 #include <OSGSFieldTypeDef.inl>
00712 #include <OSGMFieldTypeDef.inl>
00713 
00714 OSG_BEGIN_NAMESPACE
00715 
00716 #if !defined(OSG_DO_DOC) || defined(OSG_DOC_DEV)
00717 DataType FieldDataTraits<GeometryPtr>::_type("GeometryPtr", "MaterialDrawablePtr");
00718 #endif
00719 
00720 OSG_DLLEXPORT_SFIELD_DEF1(GeometryPtr, OSG_SYSTEMLIB_DLLTMPLMAPPING);
00721 OSG_DLLEXPORT_MFIELD_DEF1(GeometryPtr, OSG_SYSTEMLIB_DLLTMPLMAPPING);
00722 
00723 OSG_END_NAMESPACE
00724 
00725 
00726 /*------------------------------------------------------------------------*/
00727 /*                              cvs id's                                  */
00728 
00729 #ifdef OSG_SGI_CC
00730 #pragma set woff 1174
00731 #endif
00732 
00733 #ifdef OSG_LINUX_ICC
00734 #pragma warning( disable : 177 )
00735 #endif
00736 
00737 namespace
00738 {
00739     static Char8 cvsid_cpp       [] = "@(#)$Id: FCBaseTemplate_cpp.h,v 1.42 2004/08/03 05:53:03 dirk Exp $";
00740     static Char8 cvsid_hpp       [] = OSGGEOMETRYBASE_HEADER_CVSID;
00741     static Char8 cvsid_inl       [] = OSGGEOMETRYBASE_INLINE_CVSID;
00742 
00743     static Char8 cvsid_fields_hpp[] = OSGGEOMETRYFIELDS_HEADER_CVSID;
00744 }
00745 

Generated on Thu Aug 25 04:05:23 2005 for OpenSG by  doxygen 1.4.3