Show
Ignore:
Timestamp:
10/20/07 18:11:52 (11 months ago)
Author:
cneumann
Message:

added: RootObjectT template paremter for ReferenceCountPointer?

and ParentPointer? templates - allows use for FieldBundles?

compile fixes - but still not done

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/Carsten_PtrWork/Source/Contrib/VTK/OSGVTKMapperBase.cpp

    r969 r976  
    9292\***************************************************************************/ 
    9393 
    94 /*! \var NodePtr        VTKMapperBase::_sfRoot 
     94/*! \var NodeInternalRefPtr VTKMapperBase::_sfRoot 
    9595     
    9696*/ 
    9797 
    98 /*! \var NodePtr        VTKMapperBase::_mfGeoRoots 
     98/*! \var NodeInternalRefPtr VTKMapperBase::_mfGeoRoots 
    9999     
    100100*/ 
    101101 
    102 /*! \var GeometryPtr    VTKMapperBase::_mfGeometries 
     102/*! \var GeometryInternalRefPtr VTKMapperBase::_mfGeometries 
    103103     
    104104*/ 
    105105 
    106 /*! \var ChunkMaterialPtr VTKMapperBase::_mfMaterials 
     106/*! \var ChunkMaterialInternalRefPtr VTKMapperBase::_mfMaterials 
    107107     
    108108*/ 
    109109 
    110 /*! \var MaterialChunkPtr VTKMapperBase::_mfMaterialChunks 
     110/*! \var MaterialChunkInternalRefPtr VTKMapperBase::_mfMaterialChunks 
    111111     
    112112*/ 
    113113 
    114 /*! \var GeoPnt3fPropertyPtr VTKMapperBase::_mfPositions 
     114/*! \var GeoPnt3fPropertyInternalRefPtr VTKMapperBase::_mfPositions 
    115115     
    116116*/ 
    117117 
    118 /*! \var GeoUInt32PropertyPtr VTKMapperBase::_mfLength 
     118/*! \var GeoUInt32PropertyInternalRefPtr VTKMapperBase::_mfLength 
    119119     
    120120*/ 
    121121 
    122 /*! \var GeoUInt8PropertyPtr VTKMapperBase::_mfTypes 
     122/*! \var GeoUInt8PropertyInternalRefPtr VTKMapperBase::_mfTypes 
    123123     
    124124*/ 
    125125 
    126 /*! \var GeoColor4fPropertyPtr VTKMapperBase::_mfColors 
     126/*! \var GeoColor4fPropertyInternalRefPtr VTKMapperBase::_mfColors 
    127127     
    128128*/ 
    129129 
    130 /*! \var GeoVec3fPropertyPtr VTKMapperBase::_mfNormals 
     130/*! \var GeoVec3fPropertyInternalRefPtr VTKMapperBase::_mfNormals 
    131131     
    132132*/ 
     
    138138 
    139139 
    140     pDesc = new SFNodePtr::Description( 
    141         SFNodePtr::getClassType(), 
     140    pDesc = new SFNodeInternalRefPtr::Description( 
     141        SFNodeInternalRefPtr::getClassType(), 
    142142        "root", 
    143143        "", 
     
    150150    oType.addInitialDesc(pDesc); 
    151151 
    152     pDesc = new MFNodePtr::Description( 
    153         MFNodePtr::getClassType(), 
     152    pDesc = new MFNodeInternalRefPtr::Description( 
     153        MFNodeInternalRefPtr::getClassType(), 
    154154        "geoRoots", 
    155155        "", 
     
    162162    oType.addInitialDesc(pDesc); 
    163163 
    164     pDesc = new MFGeometryPtr::Description( 
    165         MFGeometryPtr::getClassType(), 
     164    pDesc = new MFGeometryInternalRefPtr::Description( 
     165        MFGeometryInternalRefPtr::getClassType(), 
    166166        "geometries", 
    167167        "", 
     
    174174    oType.addInitialDesc(pDesc); 
    175175 
    176     pDesc = new MFChunkMaterialPtr::Description( 
    177         MFChunkMaterialPtr::getClassType(), 
     176    pDesc = new MFChunkMaterialInternalRefPtr::Description( 
     177        MFChunkMaterialInternalRefPtr::getClassType(), 
    178178        "materials", 
    179179        "", 
     
    186186    oType.addInitialDesc(pDesc); 
    187187 
    188     pDesc = new MFMaterialChunkPtr::Description( 
    189         MFMaterialChunkPtr::getClassType(), 
     188    pDesc = new MFMaterialChunkInternalRefPtr::Description( 
     189        MFMaterialChunkInternalRefPtr::getClassType(), 
    190190        "materialChunks", 
    191191        "", 
     
    198198    oType.addInitialDesc(pDesc); 
    199199 
    200     pDesc = new MFGeoPnt3fPropertyPtr::Description( 
    201         MFGeoPnt3fPropertyPtr::getClassType(), 
     200    pDesc = new MFGeoPnt3fPropertyInternalRefPtr::Description( 
     201        MFGeoPnt3fPropertyInternalRefPtr::getClassType(), 
    202202        "positions", 
    203203        "", 
     
    210210    oType.addInitialDesc(pDesc); 
    211211 
    212     pDesc = new MFGeoUInt32PropertyPtr::Description( 
    213         MFGeoUInt32PropertyPtr::getClassType(), 
     212    pDesc = new MFGeoUInt32PropertyInternalRefPtr::Description( 
     213        MFGeoUInt32PropertyInternalRefPtr::getClassType(), 
    214214        "length", 
    215215        "", 
     
    222222    oType.addInitialDesc(pDesc); 
    223223 
    224     pDesc = new MFGeoUInt8PropertyPtr::Description( 
    225         MFGeoUInt8PropertyPtr::getClassType(), 
     224    pDesc = new MFGeoUInt8PropertyInternalRefPtr::Description( 
     225        MFGeoUInt8PropertyInternalRefPtr::getClassType(), 
    226226        "types", 
    227227        "", 
     
    234234    oType.addInitialDesc(pDesc); 
    235235 
    236     pDesc = new MFGeoColor4fPropertyPtr::Description( 
    237         MFGeoColor4fPropertyPtr::getClassType(), 
     236    pDesc = new MFGeoColor4fPropertyInternalRefPtr::Description( 
     237        MFGeoColor4fPropertyInternalRefPtr::getClassType(), 
    238238        "Colors", 
    239239        "", 
     
    246246    oType.addInitialDesc(pDesc); 
    247247 
    248     pDesc = new MFGeoVec3fPropertyPtr::Description( 
    249         MFGeoVec3fPropertyPtr::getClassType(), 
     248    pDesc = new MFGeoVec3fPropertyInternalRefPtr::Description( 
     249        MFGeoVec3fPropertyInternalRefPtr::getClassType(), 
    250250        "normals", 
    251251        "", 
     
    284284    "\t<Field\n" 
    285285    "\t\tname=\"root\"\n" 
    286     "\t\ttype=\"NodePtr\"\n" 
     286    "        category=\"pointer\"\n" 
     287    "\t\ttype=\"Node\"\n" 
    287288    "\t\tcardinality=\"single\"\n" 
    288289    "\t\tvisibility=\"external\"\n" 
     
    292293    "\t<Field\n" 
    293294    "\t\tname=\"geoRoots\"\n" 
    294     "\t\ttype=\"NodePtr\"\n" 
     295    "\t\tcategory=\"pointer\"\n" 
     296    "        type=\"Node\"\n" 
    295297    "\t\tcardinality=\"multi\"\n" 
    296298    "\t\tvisibility=\"external\"\n" 
     
    301303    "\t<Field\n" 
    302304    "\t\tname=\"geometries\"\n" 
    303     "\t\ttype=\"GeometryPtr\"\n" 
     305    "        category=\"pointer\"\n" 
     306    "\t\ttype=\"Geometry\"\n" 
    304307    "\t\tcardinality=\"multi\"\n" 
    305308    "\t\tvisibility=\"external\"\n" 
     
    310313    "\t<Field\n" 
    311314    "\t\tname=\"materials\"\n" 
    312     "\t\ttype=\"ChunkMaterialPtr\"\n" 
     315    "        category=\"pointer\"\n" 
     316    "\t\ttype=\"ChunkMaterial\"\n" 
    313317    "\t\tcardinality=\"multi\"\n" 
    314318    "\t\tvisibility=\"external\"\n" 
     
    319323    "\t<Field\n" 
    320324    "\t\tname=\"materialChunks\"\n" 
    321     "\t\ttype=\"MaterialChunkPtr\"\n" 
     325    "        category=\"pointer\"\n" 
     326    "\t\ttype=\"MaterialChunk\"\n" 
    322327    "\t\tcardinality=\"multi\"\n" 
    323328    "\t\tvisibility=\"external\"\n" 
     
    328333    "\t<Field\n" 
    329334    "\t\tname=\"positions\"\n" 
    330     "\t\ttype=\"GeoPnt3fPropertyPtr\"\n" 
     335    "        category=\"pointer\"\n" 
     336    "\t\ttype=\"GeoPnt3fProperty\"\n" 
    331337    "\t\tcardinality=\"multi\"\n" 
    332338    "\t\tvisibility=\"external\"\n" 
     
    337343    "\t<Field\n" 
    338344    "\t\tname=\"length\"\n" 
    339     "\t\ttype=\"GeoUInt32PropertyPtr\"\n" 
     345    "        category=\"pointer\"\n" 
     346    "\t\ttype=\"GeoUInt32Property\"\n" 
    340347    "\t\tcardinality=\"multi\"\n" 
    341348    "\t\tvisibility=\"external\"\n" 
     
    346353    "\t<Field\n" 
    347354    "\t\tname=\"types\"\n" 
    348     "\t\ttype=\"GeoUInt8PropertyPtr\"\n" 
     355    "        category=\"pointer\"\n" 
     356    "\t\ttype=\"GeoUInt8Property\"\n" 
    349357    "\t\tcardinality=\"multi\"\n" 
    350358    "\t\tvisibility=\"external\"\n" 
     
    355363    "\t<Field\n" 
    356364    "\t\tname=\"Colors\"\n" 
    357     "\t\ttype=\"GeoColor4fPropertyPtr\"\n" 
     365    "        category=\"pointer\"\n" 
     366    "\t\ttype=\"GeoColor4fProperty\"\n" 
    358367    "\t\tcardinality=\"multi\"\n" 
    359368    "\t\tvisibility=\"external\"\n" 
     
    364373    "\t<Field\n" 
    365374    "\t\tname=\"normals\"\n" 
    366     "\t\ttype=\"GeoVec3fPropertyPtr\"\n" 
     375    "        category=\"pointer\"\n" 
     376    "\t\ttype=\"GeoVec3fProperty\"\n" 
    367377    "\t\tcardinality=\"multi\"\n" 
    368378    "\t\tvisibility=\"external\"\n" 
     
    409419//     addRef(value); 
    410420 
    411     _mfGeoRoots.push_back(NodePtr(value)); 
    412 } 
    413  
    414 void 
    415 VTKMapperBase::assignGeoRoots(MFNodePtr const &value) 
    416 { 
    417     MFNodePtr::const_iterator elemIt  = 
     421    _mfGeoRoots.push_back(NodeInternalRefPtr(value)); 
     422} 
     423 
     424void 
     425VTKMapperBase::assignGeoRoots(MFNodeInternalRefPtr const &value) 
     426{ 
     427    MFNodeInternalRefPtr::const_iterator elemIt  = 
    418428        value.begin(); 
    419     MFNodePtr::const_iterator elemEnd = 
     429    MFNodeInternalRefPtr::const_iterator elemEnd = 
    420430        value.end  (); 
    421431 
     
    440450    editMField(GeoRootsFieldMask, _mfGeoRoots); 
    441451 
    442     MFNodePtr::iterator fieldIt = _mfGeoRoots.begin(); 
     452    MFNodeInternalRefPtr::iterator fieldIt = _mfGeoRoots.begin(); 
    443453 
    444454//     addRef(value); 
     
    446456    fieldIt += uiIndex; 
    447457 
    448     _mfGeoRoots.insert(fieldIt, NodePtr(value)); 
     458    _mfGeoRoots.insert(fieldIt, NodeInternalRefPtr(value)); 
    449459} 
    450460 
     
    466476//     subRef(_mfGeoRoots[uiIndex]); 
    467477 
    468     _mfGeoRoots[uiIndex] = NodePtr(value); 
     478    _mfGeoRoots[uiIndex] = NodeInternalRefPtr(value); 
    469479} 
    470480 
     
    477487        return; 
    478488 
    479     Int32  elemIdx = _mfGeoRoots.findIndex(NodePtr(pOldElem)); 
     489    Int32  elemIdx = _mfGeoRoots.findIndex(NodeInternalRefPtr(pOldElem)); 
    480490 
    481491    if(elemIdx != -1) 
     
    483493        editMField(GeoRootsFieldMask, _mfGeoRoots); 
    484494 
    485         MFNodePtr::iterator fieldIt = _mfGeoRoots.begin(); 
     495        MFNodeInternalRefPtr::iterator fieldIt = _mfGeoRoots.begin(); 
    486496 
    487497        fieldIt += elemIdx; 
     
    490500//         subRef(pOldElem); 
    491501 
    492         (*fieldIt) = NodePtr(pNewElem); 
     502        (*fieldIt) = NodeInternalRefPtr(pNewElem); 
    493503    } 
    494504} 
     
    501511        editMField(GeoRootsFieldMask, _mfGeoRoots); 
    502512 
    503         MFNodePtr::iterator fieldIt = _mfGeoRoots.begin(); 
     513        MFNodeInternalRefPtr::iterator fieldIt = _mfGeoRoots.begin(); 
    504514 
    505515        fieldIt += uiIndex; 
     
    514524VTKMapperBase::subGeoRoots(NodePtrConstArg value) 
    515525{ 
    516     Int32 iElemIdx = _mfGeoRoots.findIndex(NodePtr(value)); 
     526    Int32 iElemIdx = _mfGeoRoots.findIndex(NodeInternalRefPtr(value)); 
    517527 
    518528    if(iElemIdx != -1) 
     
    520530        editMField(GeoRootsFieldMask, _mfGeoRoots); 
    521531 
    522         MFNodePtr::iterator fieldIt = _mfGeoRoots.begin(); 
     532        MFNodeInternalRefPtr::iterator fieldIt = _mfGeoRoots.begin(); 
    523533 
    524534        fieldIt += iElemIdx; 
     
    535545    editMField(GeoRootsFieldMask, _mfGeoRoots); 
    536546 
    537     MFNodePtr::iterator       fieldIt  = _mfGeoRoots.begin(); 
    538     MFNodePtr::const_iterator fieldEnd = _mfGeoRoots.end  (); 
     547    MFNodeInternalRefPtr::iterator       fieldIt  = _mfGeoRoots.begin(); 
     548    MFNodeInternalRefPtr::const_iterator fieldEnd = _mfGeoRoots.end  (); 
    539549 
    540550    while(fieldIt != fieldEnd) 
     
    561571//     addRef(value); 
    562572 
    563     _mfGeometries.push_back(GeometryPtr(value)); 
    564 } 
    565  
    566 void 
    567 VTKMapperBase::assignGeometries(MFGeometryPtr const &value) 
    568 { 
    569     MFGeometryPtr::const_iterator elemIt  = 
     573    _mfGeometries.push_back(GeometryInternalRefPtr(value)); 
     574} 
     575 
     576void 
     577VTKMapperBase::assignGeometries(MFGeometryInternalRefPtr const &value) 
     578{ 
     579    MFGeometryInternalRefPtr::const_iterator elemIt  = 
    570580        value.begin(); 
    571     MFGeometryPtr::const_iterator elemEnd = 
     581    MFGeometryInternalRefPtr::const_iterator elemEnd = 
    572582        value.end  (); 
    573583 
     
    592602    editMField(GeometriesFieldMask, _mfGeometries); 
    593603 
    594     MFGeometryPtr::iterator fieldIt = _mfGeometries.begin(); 
     604    MFGeometryInternalRefPtr::iterator fieldIt = _mfGeometries.begin(); 
    595605 
    596606//     addRef(value); 
     
    598608    fieldIt += uiIndex; 
    599609 
    600     _mfGeometries.insert(fieldIt, GeometryPtr(value)); 
     610    _mfGeometries.insert(fieldIt, GeometryInternalRefPtr(value)); 
    601611} 
    602612 
     
    618628//     subRef(_mfGeometries[uiIndex]); 
    619629 
    620     _mfGeometries[uiIndex] = GeometryPtr(value); 
     630    _mfGeometries[uiIndex] = GeometryInternalRefPtr(value); 
    621631} 
    622632 
     
    629639        return; 
    630640 
    631     Int32  elemIdx = _mfGeometries.findIndex(GeometryPtr(pOldElem)); 
     641    Int32  elemIdx = _mfGeometries.findIndex(GeometryInternalRefPtr(pOldElem)); 
    632642 
    633643    if(elemIdx != -1) 
     
    635645        editMField(GeometriesFieldMask, _mfGeometries); 
    636646 
    637         MFGeometryPtr::iterator fieldIt = _mfGeometries.begin(); 
     647        MFGeometryInternalRefPtr::iterator fieldIt = _mfGeometries.begin(); 
    638648 
    639649        fieldIt += elemIdx; 
     
    642652//         subRef(pOldElem); 
    643653 
    644         (*fieldIt) = GeometryPtr(pNewElem); 
     654        (*fieldIt) = GeometryInternalRefPtr(pNewElem); 
    645655    } 
    646656} 
     
    653663        editMField(GeometriesFieldMask, _mfGeometries); 
    654664 
    655         MFGeometryPtr::iterator fieldIt = _mfGeometries.begin(); 
     665        MFGeometryInternalRefPtr::iterator fieldIt = _mfGeometries.begin(); 
    656666 
    657667        fieldIt += uiIndex; 
     
    666676VTKMapperBase::subGeometries(GeometryPtrConstArg value) 
    667677{ 
    668     Int32 iElemIdx = _mfGeometries.findIndex(GeometryPtr(value)); 
     678    Int32 iElemIdx = _mfGeometries.findIndex(GeometryInternalRefPtr(value)); 
    669679 
    670680    if(iElemIdx != -1) 
     
    672682        editMField(GeometriesFieldMask, _mfGeometries); 
    673683 
    674         MFGeometryPtr::iterator fieldIt = _mfGeometries.begin(); 
     684        MFGeometryInternalRefPtr::iterator fieldIt = _mfGeometries.begin(); 
    675685 
    676686        fieldIt += iElemIdx; 
     
    687697    editMField(GeometriesFieldMask, _mfGeometries); 
    688698 
    689     MFGeometryPtr::iterator       fieldIt  = _mfGeometries.begin(); 
    690     MFGeometryPtr::const_iterator fieldEnd = _mfGeometries.end  (); 
     699    MFGeometryInternalRefPtr::iterator       fieldIt  = _mfGeometries.begin(); 
     700    MFGeometryInternalRefPtr::const_iterator fieldEnd = _mfGeometries.end  (); 
    691701 
    692702    while(fieldIt != fieldEnd) 
     
    713723//     addRef(value); 
    714724 
    715     _mfMaterials.push_back(ChunkMaterialPtr(value)); 
    716 } 
    717  
    718 void 
    719 VTKMapperBase::assignMaterials(MFChunkMaterialPtr const &value) 
    720 { 
    721     MFChunkMaterialPtr::const_iterator elemIt  = 
     725    _mfMaterials.push_back(ChunkMaterialInternalRefPtr(value)); 
     726} 
     727 
     728void 
     729VTKMapperBase::assignMaterials(MFChunkMaterialInternalRefPtr const &value) 
     730{ 
     731    MFChunkMaterialInternalRefPtr::const_iterator elemIt  = 
    722732        value.begin(); 
    723     MFChunkMaterialPtr::const_iterator elemEnd = 
     733    MFChunkMaterialInternalRefPtr::const_iterator elemEnd = 
    724734        value.end  (); 
    725735 
     
    744754    editMField(MaterialsFieldMask, _mfMaterials); 
    745755 
    746     MFChunkMaterialPtr::iterator fieldIt = _mfMaterials.begin(); 
     756    MFChunkMaterialInternalRefPtr::iterator fieldIt = _mfMaterials.begin(); 
    747757 
    748758//     addRef(value); 
     
    750760    fieldIt += uiIndex; 
    751761 
    752     _mfMaterials.insert(fieldIt, ChunkMaterialPtr(value)); 
     762    _mfMaterials.insert(fieldIt, ChunkMaterialInternalRefPtr(value)); 
    753763} 
    754764 
     
    770780//     subRef(_mfMaterials[uiIndex]); 
    771781 
    772     _mfMaterials[uiIndex] = ChunkMaterialPtr(value); 
     782    _mfMaterials[uiIndex] = ChunkMaterialInternalRefPtr(value); 
    773783} 
    774784 
     
    781791        return; 
    782792 
    783     Int32  elemIdx = _mfMaterials.findIndex(ChunkMaterialPtr(pOldElem)); 
     793    Int32  elemIdx = _mfMaterials.findIndex(ChunkMaterialInternalRefPtr(pOldElem)); 
    784794 
    785795    if(elemIdx != -1) 
     
    787797        editMField(MaterialsFieldMask, _mfMaterials); 
    788798 
    789         MFChunkMaterialPtr::iterator fieldIt = _mfMaterials.begin(); 
     799        MFChunkMaterialInternalRefPtr::iterator fieldIt = _mfMaterials.begin(); 
    790800 
    791801        fieldIt += elemIdx; 
     
    794804//         subRef(pOldElem); 
    795805 
    796         (*fieldIt) = ChunkMaterialPtr(pNewElem); 
     806        (*fieldIt) = ChunkMaterialInternalRefPtr(pNewElem); 
    797807    } 
    798808} 
     
    805815        editMField(MaterialsFieldMask, _mfMaterials); 
    806816 
    807         MFChunkMaterialPtr::iterator fieldIt = _mfMaterials.begin(); 
     817        MFChunkMaterialInternalRefPtr::iterator fieldIt = _mfMaterials.begin(); 
    808818 
    809819        fieldIt += uiIndex; 
     
    818828VTKMapperBase::subMaterials(ChunkMaterialPtrConstArg value) 
    819829{ 
    820     Int32 iElemIdx = _mfMaterials.findIndex(ChunkMaterialPtr(value)); 
     830    Int32 iElemIdx = _mfMaterials.findIndex(ChunkMaterialInternalRefPtr(value)); 
    821831 
    822832    if(iElemIdx != -1) 
     
    824834        editMField(MaterialsFieldMask, _mfMaterials); 
    825835 
    826         MFChunkMaterialPtr::iterator fieldIt = _mfMaterials.begin(); 
     836        MFChunkMaterialInternalRefPtr::iterator fieldIt = _mfMaterials.begin(); 
    827837 
    828838        fieldIt += iElemIdx; 
     
    839849    editMField(MaterialsFieldMask, _mfMaterials); 
    840850 
    841     MFChunkMaterialPtr::iterator       fieldIt  = _mfMaterials.begin(); 
    842     MFChunkMaterialPtr::const_iterator fieldEnd = _mfMaterials.end  (); 
     851    MFChunkMaterialInternalRefPtr::iterator       fieldIt  = _mfMaterials.begin(); 
     852    MFChunkMaterialInternalRefPtr::const_iterator fieldEnd = _mfMaterials.end  (); 
    843853 
    844854    while(fieldIt != fieldEnd) 
     
    865875//     addRef(value); 
    866876 
    867     _mfMaterialChunks.push_back(MaterialChunkPtr(value)); 
    868 } 
    869  
    870 void 
    871 VTKMapperBase::assignMaterialChunks(MFMaterialChunkPtr const &value) 
    872 { 
    873     MFMaterialChunkPtr::const_iterator elemIt  = 
     877    _mfMaterialChunks.push_back(MaterialChunkInternalRefPtr(value)); 
     878} 
     879 
     880void 
     881VTKMapperBase::assignMaterialChunks(MFMaterialChunkInternalRefPtr const &value) 
     882{ 
     883    MFMaterialChunkInternalRefPtr::const_iterator elemIt  = 
    874884        value.begin(); 
    875     MFMaterialChunkPtr::const_iterator elemEnd = 
     885    MFMaterialChunkInternalRefPtr::const_iterator elemEnd = 
    876886        value.end  (); 
    877887 
     
    896906    editMField(MaterialChunksFieldMask, _mfMaterialChunks); 
    897907 
    898     MFMaterialChunkPtr::iterator fieldIt = _mfMaterialChunks.begin(); 
     908    MFMaterialChunkInternalRefPtr::iterator fieldIt = _mfMaterialChunks.begin(); 
    899909 
    900910//     addRef(value); 
     
    902912    fieldIt += uiIndex; 
    903913 
    904     _mfMaterialChunks.insert(fieldIt, MaterialChunkPtr(value)); 
     914    _mfMaterialChunks.insert(fieldIt, MaterialChunkInternalRefPtr(value)); 
    905915} 
    906916 
     
    922932//     subRef(_mfMaterialChunks[uiIndex]); 
    923933 
    924     _mfMaterialChunks[uiIndex] = MaterialChunkPtr(value); 
     934    _mfMaterialChunks[uiIndex] = MaterialChunkInternalRefPtr(value); 
    925935} 
    926936 
     
    933943        return; 
    934944 
    935     Int32  elemIdx = _mfMaterialChunks.findIndex(MaterialChunkPtr(pOldElem)); 
     945    Int32  elemIdx = _mfMaterialChunks.findIndex(MaterialChunkInternalRefPtr(pOldElem)); 
    936946 
    937947    if(elemIdx != -1) 
     
    939949        editMField(MaterialChunksFieldMask, _mfMaterialChunks); 
    940950 
    941         MFMaterialChunkPtr::iterator fieldIt = _mfMaterialChunks.begin(); 
     951        MFMaterialChunkInternalRefPtr::iterator fieldIt = _mfMaterialChunks.begin(); 
    942952 
    943953        fieldIt += elemIdx; 
     
    946956//         subRef(pOldElem); 
    947957 
    948         (*fieldIt) = MaterialChunkPtr(pNewElem); 
     958        (*fieldIt) = MaterialChunkInternalRefPtr(pNewElem); 
    949959    } 
    950960} 
     
    957967        editMField(MaterialChunksFieldMask, _mfMaterialChunks); 
    958968 
    959         MFMaterialChunkPtr::iterator fieldIt = _mfMaterialChunks.begin(); 
     969        MFMaterialChunkInternalRefPtr::iterator fieldIt = _mfMaterialChunks.begin(); 
    960970 
    961971        fieldIt += uiIndex; 
     
    970980VTKMapperBase::subMaterialChunks(MaterialChunkPtrConstArg value) 
    971981{ 
    972     Int32 iElemIdx = _mfMaterialChunks.findIndex(MaterialChunkPtr(value)); 
     982    Int32 iElemIdx = _mfMaterialChunks.findIndex(MaterialChunkInternalRefPtr(value)); 
    973983 
    974984    if(iElemIdx != -1) 
     
    976986        editMField(MaterialChunksFieldMask, _mfMaterialChunks); 
    977987 
    978         MFMaterialChunkPtr::iterator fieldIt = _mfMaterialChunks.begin(); 
     988        MFMaterialChunkInternalRefPtr::iterator fieldIt = _mfMaterialChunks.begin(); 
    979989 
    980990        fieldIt += iElemIdx; 
     
    9911001    editMField(MaterialChunksFieldMask, _mfMaterialChunks); 
    9921002 
    993     MFMaterialChunkPtr::iterator       fieldIt  = _mfMaterialChunks.begin(); 
    994     MFMaterialChunkPtr::const_iterator fieldEnd = _mfMaterialChunks.end  (); 
     1003    MFMaterialChunkInternalRefPtr::iterator       fieldIt  = _mfMaterialChunks.begin(); 
     1004    MFMaterialChunkInternalRefPtr::const_iterator fieldEnd = _mfMaterialChunks.end  (); 
    9951005 
    9961006    while(fieldIt != fieldEnd) 
     
    10171027//     addRef(value); 
    10181028 
    1019     _mfPositions.push_back(GeoPnt3fPropertyPtr(value)); 
    1020 } 
    1021  
    1022 void 
    1023 VTKMapperBase::assignPositions(MFGeoPnt3fPropertyPtr const &value) 
    1024 { 
    1025     MFGeoPnt3fPropertyPtr::const_iterator elemIt  = 
     1029    _mfPositions.push_back(GeoPnt3fPropertyInternalRefPtr(value)); 
     1030} 
     1031 
     1032void 
     1033VTKMapperBase::assignPositions(MFGeoPnt3fPropertyInternalRefPtr const &value) 
     1034{ 
     1035    MFGeoPnt3fPropertyInternalRefPtr::const_iterator elemIt  = 
    10261036        value.begin(); 
    1027     MFGeoPnt3fPropertyPtr::const_iterator elemEnd = 
     1037    MFGeoPnt3fPropertyInternalRefPtr::const_iterator elemEnd = 
    10281038        value.end  (); 
    10291039 
     
    10481058    editMField(PositionsFieldMask, _mfPositions); 
    10491059 
    1050     MFGeoPnt3fPropertyPtr::iterator fieldIt = _mfPositions.begin(); 
     1060    MFGeoPnt3fPropertyInternalRefPtr::iterator fieldIt = _mfPositions.begin(); 
    10511061 
    10521062//     addRef(value); 
     
    10541064    fieldIt += uiIndex; 
    10551065 
    1056     _mfPositions.insert(fieldIt, GeoPnt3fPropertyPtr(value)); 
     1066    _mfPositions.insert(fieldIt, GeoPnt3fPropertyInternalRefPtr(value)); 
    10571067} 
    10581068 
     
    10741084//     subRef(_mfPositions[uiIndex]); 
    10751085 
    1076     _mfPositions[uiIndex] = GeoPnt3fPropertyPtr(value); 
     1086    _mfPositions[uiIndex] = GeoPnt3fPropertyInternalRefPtr(value); 
    10771087} 
    10781088 
     
    10851095        return; 
    10861096 
    1087     Int32  elemIdx = _mfPositions.findIndex(GeoPnt3fPropertyPtr(pOldElem)); 
     1097    Int32  elemIdx = _mfPositions.findIndex(GeoPnt3fPropertyInternalRefPtr(pOldElem)); 
    10881098 
    10891099    if(elemIdx != -1) 
     
    10911101        editMField(PositionsFieldMask, _mfPositions); 
    10921102 
    1093         MFGeoPnt3fPropertyPtr::iterator fieldIt = _mfPositions.begin(); 
     1103        MFGeoPnt3fPropertyInternalRefPtr::iterator fieldIt = _mfPositions.begin(); 
    10941104 
    10951105        fieldIt += elemIdx; 
     
    10981108//         subRef(pOldElem); 
    10991109 
    1100         (*fieldIt) = GeoPnt3fPropertyPtr(pNewElem); 
     1110        (*fieldIt) = GeoPnt3fPropertyInternalRefPtr(pNewElem); 
    11011111    } 
    11021112} 
     
    11091119        editMField(PositionsFieldMask, _mfPositions); 
    11101120 
    1111         MFGeoPnt3fPropertyPtr::iterator fieldIt = _mfPositions.begin(); 
     1121        MFGeoPnt3fPropertyInternalRefPtr::iterator fieldIt = _mfPositions.begin(); 
    11121122 
    11131123        fieldIt += uiIndex; 
     
    11221132VTKMapperBase::subPositions(GeoPnt3fPropertyPtrConstArg value) 
    11231133{ 
    1124     Int32 iElemIdx = _mfPositions.findIndex(GeoPnt3fPropertyPtr(value)); 
     1134    Int32 iElemIdx = _mfPositions.findIndex(GeoPnt3fPropertyInternalRefPtr(value)); 
    11251135 
    11261136    if(iElemIdx != -1) 
     
    11281138        editMField(PositionsFieldMask, _mfPositions); 
    11291139 
    1130         MFGeoPnt3fPropertyPtr::iterator fieldIt = _mfPositions.begin(); 
     1140        MFGeoPnt3fPropertyInternalRefPtr::iterator fieldIt = _mfPositions.begin(); 
    11311141 
    11321142        fieldIt += iElemIdx; 
     
    11431153    editMField(PositionsFieldMask, _mfPositions); 
    11441154 
    1145     MFGeoPnt3fPropertyPtr::iterator       fieldIt  = _mfPositions.begin(); 
    1146     MFGeoPnt3fPropertyPtr::const_iterator fieldEnd = _mfPositions.end  (); 
     1155    MFGeoPnt3fPropertyInternalRefPtr::iterator       fieldIt  = _mfPositions.begin(); 
     1156    MFGeoPnt3fPropertyInternalRefPtr::const_iterator fieldEnd = _mfPositions.end  (); 
    11471157 
    11481158    while(fieldIt != fieldEnd) 
     
    11691179//     addRef(value); 
    11701180 
    1171     _mfLength.push_back(GeoUInt32PropertyPtr(value)); 
    1172 } 
    1173  
    1174 void 
    1175 VTKMapperBase::assignLength(MFGeoUInt32PropertyPtr const &value) 
    1176 { 
    1177     MFGeoUInt32PropertyPtr::const_iterator elemIt  = 
     1181    _mfLength.push_back(GeoUInt32PropertyInternalRefPtr(value)); 
     1182} 
     1183 
     1184void 
     1185VTKMapperBase::assignLength(MFGeoUInt32PropertyInternalRefPtr const &value) 
     1186{ 
     1187    MFGeoUInt32PropertyInternalRefPtr::const_iterator elemIt  = 
    11781188        value.begin(); 
    1179     MFGeoUInt32PropertyPtr::const_iterator elemEnd = 
     1189    MFGeoUInt32PropertyInternalRefPtr::const_iterator elemEnd = 
    11801190        value.end  (); 
    11811191 
     
    12001210    editMField(LengthFieldMask, _mfLength); 
    12011211 
    1202     MFGeoUInt32PropertyPtr::iterator fieldIt = _mfLength.begin(); 
     1212    MFGeoUInt32PropertyInternalRefPtr::iterator fieldIt = _mfLength.begin(); 
    12031213 
    12041214//     addRef(value); 
     
    12061216    fieldIt += uiIndex; 
    12071217 
    1208     _mfLength.insert(fieldIt, GeoUInt32PropertyPtr(value)); 
     1218    _mfLength.insert(fieldIt, GeoUInt32PropertyInternalRefPtr(value)); 
    12091219} 
    12101220 
     
    12261236//     subRef(_mfLength[uiIndex]); 
    12271237 
    1228     _mfLength[uiIndex] = GeoUInt32PropertyPtr(value); 
     1238    _mfLength[uiIndex] = GeoUInt32PropertyInternalRefPtr(value); 
    12291239} 
    12301240 
     
    12371247        return; 
    12381248 
    1239     Int32  elemIdx = _mfLength.findIndex(GeoUInt32PropertyPtr(pOldElem)); 
     1249    Int32  elemIdx = _mfLength.findIndex(GeoUInt32PropertyInternalRefPtr(pOldElem)); 
    12401250 
    12411251    if(elemIdx != -1) 
     
    12431253        editMField(LengthFieldMask, _mfLength); 
    12441254 
    1245         MFGeoUInt32PropertyPtr::iterator fieldIt = _mfLength.begin(); 
     1255        MFGeoUInt32PropertyInternalRefPtr::iterator fieldIt = _mfLength.begin(); 
    12461256 
    12471257        fieldIt += elemIdx; 
     
    12501260//         subRef(pOldElem); 
    12511261 
    1252         (*fieldIt) = GeoUInt32PropertyPtr(pNewElem); 
     1262        (*fieldIt) = GeoUInt32PropertyInternalRefPtr(pNewElem); 
    12531263    } 
    12541264} 
     
    12611271        editMField(LengthFieldMask, _mfLength); 
    12621272 
    1263         MFGeoUInt32PropertyPtr::iterator fieldIt = _mfLength.begin(); 
     1273        MFGeoUInt32PropertyInternalRefPtr::iterator fieldIt = _mfLength.begin(); 
    12641274 
    12651275        fieldIt += uiIndex; 
     
    12741284VTKMapperBase::subLength(GeoUInt32PropertyPtrConstArg value) 
    12751285{ 
    1276     Int32 iElemIdx = _mfLength.findIndex(GeoUInt32PropertyPtr(value)); 
     1286    Int32 iElemIdx = _mfLength.findIndex(GeoUInt32PropertyInternalRefPtr(value)); 
    12771287 
    12781288    if(iElemIdx != -1) 
     
    12801290        editMField(LengthFieldMask, _mfLength); 
    12811291 
    1282         MFGeoUInt32PropertyPtr::iterator fieldIt = _mfLength.begin(); 
     1292        MFGeoUInt32PropertyInternalRefPtr::iterator fieldIt = _mfLength.begin(); 
    12831293 
    12841294        fieldIt += iElemIdx; 
     
    12951305    editMField(LengthFieldMask, _mfLength); 
    12961306 
    1297     MFGeoUInt32PropertyPtr::iterator       fieldIt  = _mfLength.begin(); 
    1298     MFGeoUInt32PropertyPtr::const_iterator fieldEnd = _mfLength.end  (); 
     1307    MFGeoUInt32PropertyInternalRefPtr::iterator       fieldIt  = _mfLength.begin(); 
     1308    MFGeoUInt32PropertyInternalRefPtr::const_iterator fieldEnd = _mfLength.end  (); 
    12991309 
    13001310    while(fieldIt != fieldEnd) 
     
    13211331//     addRef(value); 
    13221332 
    1323     _mfTypes.push_back(GeoUInt8PropertyPtr(value)); 
    1324 } 
    1325  
    1326 void 
    1327 VTKMapperBase::assignTypes(MFGeoUInt8PropertyPtr const &value) 
    1328 { 
    1329     MFGeoUInt8PropertyPtr::const_iterator elemIt  = 
     1333    _mfTypes.push_back(GeoUInt8PropertyInternalRefPtr(value)); 
     1334} 
     1335 
     1336void 
     1337VTKMapperBase::assignTypes(MFGeoUInt8PropertyInternalRefPtr const &value) 
     1338{ 
     1339    MFGeoUInt8PropertyInternalRefPtr::const_iterator elemIt  = 
    13301340        value.begin(); 
    1331     MFGeoUInt8PropertyPtr::const_iterator elemEnd = 
     1341    MFGeoUInt8PropertyInternalRefPtr::const_iterator elemEnd = 
    13321342        value.end  (); 
    13331343 
     
    13521362    editMField(TypesFieldMask, _mfTypes); 
    13531363 
    1354     MFGeoUInt8PropertyPtr::iterator fieldIt = _mfTypes.begin(); 
     1364    MFGeoUInt8PropertyInternalRefPtr::iterator fieldIt = _mfTypes.begin(); 
    13551365 
    13561366//     addRef(value); 
     
    13581368    fieldIt += uiIndex; 
    13591369 
    1360     _mfTypes.insert(fieldIt, GeoUInt8PropertyPtr(value)); 
     1370    _mfTypes.insert(fieldIt, GeoUInt8PropertyInternalRefPtr(value)); 
    13611371} 
    13621372 
     
    13781388//     subRef(_mfTypes[uiIndex]); 
    13791389 
    1380     _mfTypes[uiIndex] = GeoUInt8PropertyPtr(value); 
     1390    _mfTypes[uiIndex] = GeoUInt8PropertyInternalRefPtr(value); 
    13811391} 
    13821392 
     
    13891399        return; 
    13901400 
    1391     Int32  elemIdx = _mfTypes.findIndex(GeoUInt8PropertyPtr(pOldElem)); 
     1401    Int32  elemIdx = _mfTypes.findIndex(GeoUInt8PropertyInternalRefPtr(pOldElem)); 
    13921402 
    13931403    if(elemIdx != -1) 
     
    13951405        editMField(TypesFieldMask, _mfTypes); 
    13961406 
    1397         MFGeoUInt8PropertyPtr::iterator fieldIt = _mfTypes.begin(); 
     1407        MFGeoUInt8PropertyInternalRefPtr::iterator fieldIt = _mfTypes.begin(); 
    13981408 
    13991409        fieldIt += elemIdx; 
     
    14021412//         subRef(pOldElem); 
    14031413 
    1404         (*fieldIt) = GeoUInt8PropertyPtr(pNewElem); 
     1414        (*fieldIt) = GeoUInt8PropertyInternalRefPtr(pNewElem); 
    14051415    } 
    14061416} 
     
    14131423        editMField(TypesFieldMask, _mfTypes); 
    14141424 
    1415         MFGeoUInt8PropertyPtr::iterator fieldIt = _mfTypes.begin(); 
     1425        MFGeoUInt8PropertyInternalRefPtr::iterator fieldIt = _mfTypes.begin(); 
    14161426 
    14171427        fieldIt += uiIndex; 
     
    14261436VTKMapperBase::subTypes(GeoUInt8PropertyPtrConstArg value) 
    14271437{ 
    1428     Int32 iElemIdx = _mfTypes.findIndex(GeoUInt8PropertyPtr(value)); 
     1438    Int32 iElemIdx = _mfTypes.findIndex(GeoUInt8PropertyInternalRefPtr(value)); 
    14291439 
    14301440    if(iElemIdx != -1) 
     
    14321442        editMField(TypesFieldMask, _mfTypes); 
    14331443 
    1434         MFGeoUInt8PropertyPtr::iterator fieldIt = _mfTypes.begin(); 
     1444        MFGeoUInt8PropertyInternalRefPtr::iterator fieldIt = _mfTypes.begin(); 
    14351445 
    14361446        fieldIt += iElemIdx; 
     
    14471457    editMField(TypesFieldMask, _mfTypes); 
    14481458 
    1449     MFGeoUInt8PropertyPtr::iterator       fieldIt  = _mfTypes.begin(); 
    1450     MFGeoUInt8PropertyPtr::const_iterator fieldEnd = _mfTypes.end  (); 
     1459    MFGeoUInt8PropertyInternalRefPtr::iterator       fieldIt  = _mfTypes.begin(); 
     1460    MFGeoUInt8PropertyInternalRefPtr::const_iterator fieldEnd = _mfTypes.end  (); 
    14511461 
    14521462    while(fieldIt != fieldEnd) 
     
    14731483//     addRef(value); 
    14741484 
    1475     _mfColors.push_back(GeoColor4fPropertyPtr(value)); 
    1476 } 
    1477  
    1478 void 
    1479 VTKMapperBase::assignColors(MFGeoColor4fPropertyPtr const &value) 
    1480 { 
    1481     MFGeoColor4fPropertyPtr::const_iterator elemIt  = 
     1485    _mfColors.push_back(GeoColor4fPropertyInternalRefPtr(value)); 
     1486} 
     1487 
     1488void 
     1489VTKMapperBase::assignColors(MFGeoColor4fPropertyInternalRefPtr const &value) 
     1490{ 
     1491    MFGeoColor4fPropertyInternalRefPtr::const_iterator elemIt  = 
    14821492        value.begin(); 
    1483     MFGeoColor4fPropertyPtr::const_iterator elemEnd = 
     1493    MFGeoColor4fPropertyInternalRefPtr::const_iterator elemEnd = 
    14841494        value.end  (); 
    14851495 
     
    15041514    editMField(ColorsFieldMask, _mfColors); 
    15051515 
    1506     MFGeoColor4fPropertyPtr::iterator fieldIt = _mfColors.begin(); 
     1516    MFGeoColor4fPropertyInternalRefPtr::iterator fieldIt = _mfColors.begin(); 
    15071517 
    15081518//     addRef(value); 
     
    15101520    fieldIt += uiIndex; 
    15111521 
    1512     _mfColors.insert(fieldIt, GeoColor4fPropertyPtr(value)); 
     1522    _mfColors.insert(fieldIt, GeoColor4fPropertyInternalRefPtr(value)); 
    15131523} 
    15141524 
     
    15301540//     subRef(_mfColors[uiIndex]); 
    15311541 
    1532     _mfColors[uiIndex] = GeoColor4fPropertyPtr(value); 
     1542    _mfColors[uiIndex] = GeoColor4fPropertyInternalRefPtr(value); 
    15331543} 
    15341544 
     
    15411551        return; 
    15421552 
    1543     Int32  elemIdx = _mfColors.findIndex(GeoColor4fPropertyPtr(pOldElem)); 
     1553    Int32  elemIdx = _mfColors.findIndex(GeoColor4fPropertyInternalRefPtr(pOldElem)); 
    15441554 
    15451555    if(elemIdx != -1) 
     
    15471557        editMField(ColorsFieldMask, _mfColors); 
    15481558 
    1549         MFGeoColor4fPropertyPtr::iterator fieldIt = _mfColors.begin(); 
     1559        MFGeoColor4fPropertyInternalRefPtr::iterator fieldIt = _mfColors.begin(); 
    15501560 
    15511561        fieldIt += elemIdx; 
     
    15541564//         subRef(pOldElem); 
    15551565 
    1556         (*fieldIt) = GeoColor4fPropertyPtr(pNewElem); 
     1566        (*fieldIt) = GeoColor4fPropertyInternalRefPtr(pNewElem); 
    15571567    } 
    15581568} 
     
    15651575        editMField(ColorsFieldMask, _mfColors); 
    15661576 
    1567         MFGeoColor4fPropertyPtr::iterator fieldIt = _mfColors.begin(); 
     1577        MFGeoColor4fPropertyInternalRefPtr::iterator fieldIt = _mfColors.begin(); 
    15681578 
    15691579        fieldIt += uiIndex; 
     
    15781588VTKMapperBase::subColors(GeoColor4fPropertyPtrConstArg value) 
    15791589{ 
    1580     Int32 iElemIdx = _mfColors.findIndex(GeoColor4fPropertyPtr(value)); 
     1590    Int32 iElemIdx = _mfColors.findIndex(GeoColor4fPropertyInternalRefPtr(value)); 
    15811591 
    15821592    if(iElemIdx != -1) 
     
    15841594        editMField(ColorsFieldMask, _mfColors); 
    15851595 
    1586         MFGeoColor4fPropertyPtr::iterator fieldIt = _mfColors.begin(); 
     1596        MFGeoColor4fPropertyInternalRefPtr::iterator fieldIt = _mfColors.begin(); 
    15871597 
    15881598        fieldIt += iElemIdx; 
     
    15991609    editMField(ColorsFieldMask, _mfColors); 
    16001610 
    1601     MFGeoColor4fPropertyPtr::iterator       fieldIt  = _mfColors.begin(); 
    1602     MFGeoColor4fPropertyPtr::const_iterator fieldEnd = _mfColors.end  (); 
     1611    MFGeoColor4fPropertyInternalRefPtr::iterator       fieldIt  = _mfColors.begin(); 
     1612    MFGeoColor4fPropertyInternalRefPtr::const_iterator fieldEnd = _mfColors.end  (); 
    16031613 
    16041614    while(fieldIt != fieldEnd) 
     
    16251635//     addRef(value); 
    16261636 
    1627     _mfNormals.push_back(GeoVec3fPropertyPtr(value)); 
    1628 } 
    1629  
    1630 void 
    1631 VTKMapperBase::assignNormals(MFGeoVec3fPropertyPtr const &value) 
    1632 { 
    1633     MFGeoVec3fPropertyPtr::const_iterator elemIt  = 
     1637    _mfNormals.push_back(GeoVec3fPropertyInternalRefPtr(value)); 
     1638} 
     1639 
     1640void 
     1641VTKMapperBase::assignNormals(MFGeoVec3fPropertyInternalRefPtr const &value) 
     1642{ 
     1643    MFGe