[osg-users] getColorIndices usage

Tomas Hnilica tomas.hnilica at webstep.net
Wed Jul 2 00:20:30 PDT 2008


Hello all OSG users,

does anyone know how to use the Geometry::getColorIndices() method? I do 
not know how to work with the returned IndexArray - how to access and 
change the values.

My situation: Geometry uses generally one color and sometimes it's 
necessary to draw some primitiveSets by another color.
So, I use BIND_PER_PRIMITIVE_SET, colorArray has one element and 
colorIndices is:

    /*copied from OSG pyramid example, I do not know what last 2 params 
DataSize and DataType 4,4 mean :( */
    osg::TemplateIndexArray<unsigned int, osg::Array::UIntArrayType,4,4> 
*colorIndices;
    colorIndices = new osg::TemplateIndexArray<unsigned int, 
osg::Array::UIntArrayType,4,4>;

....
(for every primitiveset) colorIndices.push_back(0);
...
.

This works fine, but now I want to change index in colorIndices array, 
but I do not know how to access the data in IndexArray* that is returned 
by Geometry::getColorIndices().
I tried to dynamic_cast  to osg::UIntArray*, but such cast does not 
work. (like Vec4Array* works for getColorArray())

Any ideas how to access and work with the colorIndices array? Or is it 
necessary to remember the array as osg::TemplateIndexArray and use only 
setColorIndices - but if so, then why getColorIndices() exists?

Many thanks,
Tomas



More information about the osg-users mailing list