Ignore:
Timestamp:
06/05/06 23:14:04 (18 years ago)
Author:
mattausch
Message:

added mesh instance support
improved support for occlusion queries + other extensions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Vis/Preprocessing/src/VspBspTree.cpp

    r978 r1001  
    313313                        mesh = dynamic_cast<ViewCell *>(object)->GetMesh(); 
    314314                        break; 
    315                         // TODO: handle transformed mesh instances 
     315                case Intersectable::TRANSFORMED_MESH_INSTANCE: 
     316                        { 
     317                                TransformedMeshInstance *mi = dynamic_cast<TransformedMeshInstance *>(object); 
     318 
     319                                if (!mi->GetMesh()) 
     320                                        break; 
     321 
     322                                mesh = new Mesh(*mi->GetMesh()); 
     323 
     324                                Matrix4x4 m; 
     325                                mi->GetWorldTransform(m); 
     326 
     327                                mesh->ApplyTransformation(m); 
     328 
     329                break; 
     330                        } 
    316331                default: 
    317332                        Debug << "intersectable type not supported" << endl; 
     
    323338                        mBox.Include(object->GetBox()); // add to BSP tree aabb 
    324339                        AddMeshToPolygons(mesh, polys, NULL); 
     340 
     341                        // cleanup 
     342                        if (object->Type() == Intersectable::TRANSFORMED_MESH_INSTANCE) 
     343                                DEL_PTR(mesh); 
    325344                } 
    326345        } 
Note: See TracChangeset for help on using the changeset viewer.