blender/source/gameengine/Physics/Sumo/convert.txt
2002-10-12 11:37:38 +00:00

36 lines
804 B
Plaintext

static DT_ShapeHandle CreateShapeFromMesh(RAS_MeshObject* meshobj)
{
DT_ShapeHandle shape = DT_NewComplexShape();
int numpolys = meshobj->NumPolygons();
int numvalidpolys = 0;
for (int p=0; p<numpolys; p++)
{
RAS_Polygon* poly = meshobj->GetPolygon(p);
// only add polygons that have the collisionflag set
if (poly->IsCollider())
{
DT_Begin();
for (int v=0; v<poly->VertexCount(); v++) {
MT_Point3 pt = meshobj->GetVertex(poly->GetVertexIndexBase().m_vtxarray,
poly->GetVertexIndexBase().m_indexarray[v],
poly->GetMaterial()->GetPolyMaterial())->xyz();
DT_Vertex(pt[0],pt[1],pt[2]);
}
DT_End();
numvalidpolys++;
}
}
DT_EndComplexShape();
if (numvalidpolys==0) {
delete shape;
return NULL;
} else {
return shape;
}
}