void Element::SetVertices(const int *ind) { int i, n, *v; n = GetNVertices(); v = GetVertices(); for (i = 0; i < n; i++) v[i] = ind[i]; }
bool TMMesh::SaveVRML2(std::ofstream &fout, const Material & material) { if (fout.is_open()) { size_t nV = m_vertices.GetSize(); size_t nT = m_triangles.GetSize(); fout <<"#VRML V2.0 utf8" << std::endl; fout <<"" << std::endl; fout <<"# Vertices: " << nV << std::endl; fout <<"# Triangles: " << nT << std::endl; fout <<"" << std::endl; fout <<"Group {" << std::endl; fout <<" children [" << std::endl; fout <<" Shape {" << std::endl; fout <<" appearance Appearance {" << std::endl; fout <<" material Material {" << std::endl; fout <<" diffuseColor " << material.m_diffuseColor.X() << " " << material.m_diffuseColor.Y() << " " << material.m_diffuseColor.Z() << std::endl; fout <<" ambientIntensity " << material.m_ambientIntensity << std::endl; fout <<" specularColor " << material.m_specularColor.X() << " " << material.m_specularColor.Y() << " " << material.m_specularColor.Z() << std::endl; fout <<" emissiveColor " << material.m_emissiveColor.X() << " " << material.m_emissiveColor.Y() << " " << material.m_emissiveColor.Z() << std::endl; fout <<" shininess " << material.m_shininess << std::endl; fout <<" transparency " << material.m_transparency << std::endl; fout <<" }" << std::endl; fout <<" }" << std::endl; fout <<" geometry IndexedFaceSet {" << std::endl; fout <<" ccw TRUE" << std::endl; fout <<" solid TRUE" << std::endl; fout <<" convex TRUE" << std::endl; if (GetNVertices() > 0) { fout <<" coord DEF co Coordinate {" << std::endl; fout <<" point [" << std::endl; for(size_t v = 0; v < nV; v++) { TMMVertex & currentVertex = m_vertices.GetData(); fout <<" " << currentVertex.m_pos.X() << " " << currentVertex.m_pos.Y() << " " << currentVertex.m_pos.Z() << "," << std::endl; currentVertex.m_id = v; m_vertices.Next(); } fout <<" ]" << std::endl; fout <<" }" << std::endl; } if (GetNTriangles() > 0) { fout <<" coordIndex [ " << std::endl; for(size_t f = 0; f < nT; f++) { TMMTriangle & currentTriangle = m_triangles.GetData(); fout <<" " << currentTriangle.m_vertices[0]->GetData().m_id << ", " << currentTriangle.m_vertices[1]->GetData().m_id << ", " << currentTriangle.m_vertices[2]->GetData().m_id << ", -1," << std::endl; m_triangles.Next(); } fout <<" ]" << std::endl; } fout <<" }" << std::endl; fout <<" }" << std::endl; fout <<" ]" << std::endl; fout <<"}" << std::endl; } return true; }