1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| //creation d'une geometry
ref_ptr<MatrixTransform> mat_objet4 = new MatrixTransform;
ref_ptr<Geode> gde_objet4 = new Geode;
tessellateDemoGeometry *geo_objet4 = new tessellateDemoGeometry;
gde_objet4->addDrawable(geo_objet4);
mat_objet4->addChild(gde_objet4);
grp_root->addChild(mat_objet4);
Vec3Array *vertex = new Vec3Array;
vertex->push_back(Vec3d(0, 0, 0));
vertex->push_back(Vec3d(1, 0, 0));
vertex->push_back(Vec3d(1, 1, 0));
vertex->push_back(Vec3d(0, 1, 0));
geo_objet4->setVertexArray(vertex);
DrawElementsUInt *quad = new DrawElementsUInt(PrimitiveSet::QUADS, 0);
quad->push_back(0);
quad->push_back(1);
quad->push_back(2);
quad->push_back(3);
geo_objet4->addPrimitiveSet(quad);
Vec4Array *couleur = new Vec4Array;
couleur->push_back(Vec4d(0, 0, 0, 1));
couleur->push_back(Vec4d(0, 0, 0, 1));
couleur->push_back(Vec4d(0, 0, 0, 1));
couleur->push_back(Vec4d(0, 0, 0, 1));
TemplateIndexArray<unsigned int, Array::UIntArrayType, 4, 4> *indexDeCouleur;
indexDeCouleur = new TemplateIndexArray<unsigned int, Array::UIntArrayType, 4, 4>;
indexDeCouleur->push_back(0);
indexDeCouleur->push_back(1);
indexDeCouleur->push_back(2);
indexDeCouleur->push_back(3);
geo_objet4->setColorArray(couleur);
geo_objet4->setColorIndices(indexDeCouleur);
geo_objet4->setColorBinding(Geometry::BIND_PER_VERTEX);
Geometry::PrimitiveSetList test = geo_objet4->getPrimitiveSetList();
osgUtil::Tessellator *tess = new osgUtil::Tessellator;
tess->setTessellationType(osgUtil::Tessellator::TESS_TYPE_GEOMETRY);
tess->setWindingType( osgUtil::Tessellator::TESS_WINDING_POSITIVE);
tess->retessellatePolygons(*geo_objet4);
//MEME APRES LE TESSELLATOR C'EST DES QUADS
int mode = geo_objet4->getPrimitiveSet(0)->getMode(); |
Partager