Changeset 1344 for GTP/trunk/Lib/Vis/Preprocessing/src/Exporter.cpp
- Timestamp:
- 09/12/06 17:39:08 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/Preprocessing/src/Exporter.cpp
r1315 r1344 5 5 #include "IntersectableWrapper.h" 6 6 #include "BvHierarchy.h" 7 #include "Triangle3.h" 8 #include "Polygon3.h" 7 9 8 10 … … 152 154 153 155 154 } 156 void Exporter::ExportIntersectable(Intersectable *object) 157 { 158 switch (object->Type()) 159 { 160 case Intersectable::MESH_INSTANCE: 161 ExportMeshInstance((MeshInstance *)object); 162 break; 163 case Intersectable::TRANSFORMED_MESH_INSTANCE: 164 ExportTransformedMeshInstance(dynamic_cast<TransformedMeshInstance *>(object)); 165 break; 166 case Intersectable::VIEW_CELL: 167 ExportViewCell(dynamic_cast<ViewCell *>(object)); 168 break; 169 case Intersectable::KD_INTERSECTABLE: 170 ExportKdIntersectable(*(dynamic_cast<KdIntersectable *>(object))); 171 break; 172 case Intersectable::TRIANGLE_INTERSECTABLE: 173 { 174 const Triangle3 triangle = dynamic_cast<TriangleIntersectable *>(object)->GetItem(); 175 176 VertexContainer vertices; 177 vertices.push_back(triangle.mVertices[0]); 178 vertices.push_back(triangle.mVertices[1]); 179 vertices.push_back(triangle.mVertices[2]); 180 181 Polygon3 poly(vertices); 182 ExportPolygon(&poly); 183 break; 184 } 185 default: 186 cerr << "Sorry the export for object type " << Intersectable::GetTypeName(object) << " is not available yet" << endl; 187 break; 188 } 189 } 190 191 void Exporter::ExportMeshInstance(MeshInstance *object) 192 { 193 // $$JB$$ 194 // in the future check whether the mesh was not already exported 195 // and use a reference to the that mesh instead 196 ExportMesh(object->GetMesh()); 197 } 198 199 200 void Exporter::ExportTransformedMeshInstance(TransformedMeshInstance *mi) 201 { 202 Mesh mesh(*mi->GetMesh()); 203 204 Matrix4x4 m; 205 mi->GetWorldTransform(m); 206 mesh.ApplyTransformation(m); 207 208 ExportMesh(&mesh); 209 } 210 211 212 void Exporter::ExportViewCells(const ViewCellContainer &viewCells) 213 { 214 ViewCellContainer::const_iterator it, it_end = viewCells.end(); 215 216 for (it = viewCells.begin(); it != it_end; ++ it) 217 { 218 ExportViewCell(*it); 219 } 220 } 221 222 223 224 }
Note: See TracChangeset
for help on using the changeset viewer.