fixed: auto_ptr -> unique_ptr
[opensg.git] / Source / System / Material / Base / OSGVariantMaterial.cpp
blob25e66ffeb64fad03f6a0913c80a5b69f512e494e
1 /*---------------------------------------------------------------------------*\
2 * OpenSG *
3 * *
4 * *
5 * Copyright(C) 2000-2002 by the OpenSG Forum *
6 * *
7 * www.opensg.org *
8 * *
9 * contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de *
10 * *
11 \*---------------------------------------------------------------------------*/
12 /*---------------------------------------------------------------------------*\
13 * License *
14 * *
15 * This library is free software; you can redistribute it and/or modify it *
16 * under the terms of the GNU Library General Public License as published *
17 * by the Free Software Foundation, version 2. *
18 * *
19 * This library is distributed in the hope that it will be useful, but *
20 * WITHOUT ANY WARRANTY; without even the implied warranty of *
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
22 * Library General Public License for more details. *
23 * *
24 * You should have received a copy of the GNU Library General Public *
25 * License along with this library; if not, write to the Free Software *
26 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
27 * *
28 \*---------------------------------------------------------------------------*/
29 /*---------------------------------------------------------------------------*\
30 * Changes *
31 * *
32 * *
33 * *
34 * *
35 * *
36 * *
37 \*---------------------------------------------------------------------------*/
39 //---------------------------------------------------------------------------
40 // Includes
41 //---------------------------------------------------------------------------
43 #include <cstdlib>
44 #include <cstdio>
46 #include "OSGConfig.h"
48 #include "OSGGL.h"
50 #include "OSGState.h"
51 #include "OSGMaterialDrawable.h"
53 #include "OSGVariantMaterial.h"
55 OSG_USING_NAMESPACE
57 // Documentation for this class is emited in the
58 // OSGVariantMaterialBase.cpp file.
59 // To modify it, please change the .fcd file (OSGVariantMaterial.fcd) and
60 // regenerate the base file.
62 /***************************************************************************\
63 * Class methods *
64 \***************************************************************************/
66 /*-------------------------------------------------------------------------*\
67 - private -
68 \*-------------------------------------------------------------------------*/
70 void VariantMaterial::classDescInserter(TypeObject &oType)
72 Inherited::classDescInserter(oType);
75 void VariantMaterial::initMethod(InitPhase ePhase)
77 Inherited::initMethod(ePhase);
79 if(ePhase == TypeObject::SystemPost)
84 /***************************************************************************\
85 * Instance methods *
86 \***************************************************************************/
88 /*------------- constructors & destructors --------------------------------*/
90 VariantMaterial::VariantMaterial(void) :
91 Inherited()
95 VariantMaterial::VariantMaterial(const VariantMaterial &source) :
96 Inherited(source)
100 VariantMaterial::~VariantMaterial(void)
104 void VariantMaterial::changed(ConstFieldMaskArg whichField,
105 UInt32 origin,
106 BitVector details)
108 Inherited::changed(whichField, origin, details);
112 /*-------------------------- your_category---------------------------------*/
114 /*------------------------------- dump ----------------------------------*/
116 void VariantMaterial::dump( UInt32 OSG_CHECK_ARG(uiIndent),
117 const BitVector OSG_CHECK_ARG(bvFlags )) const
119 SLOG << "VariantMaterial at " << this << std::endl;
120 SLOG << "Chunks: " << std::endl;
122 #if 0
123 UInt32 i;
125 for(i = 0; i < _mfChunks.size(); ++i)
127 SLOG << _mfChunks[i] << " "
128 << static_cast<Int32>((i < _mfSlots.size())
129 ? _mfSlots[i]
130 : State::AutoSlotReplace)
131 << std::endl;
133 #endif
137 /*-------------------------------------------------------------------------*/
138 /* Binary access */
140 PrimeMaterial *VariantMaterial::finalize( MapCacheKey oKey,
141 const StateOverride *pOverrides,
142 Window * )
144 return Inherited::finalize(oKey);
147 void VariantMaterial::addMaterial(PrimeMaterial * const pMaterial,
148 MaterialMapKey key)
150 Inherited::addElement(pMaterial, key);
154 void VariantMaterial::subMaterial(MaterialMapKey key)
156 Inherited::subElement(key);
159 bool VariantMaterial::isTransparent(void) const
161 return false;
164 const SFMaterialPtrMap *VariantMaterial::getSFMaterialStore(void) const
166 return Inherited::getMapCacheField();