FCDGeometryInstance* FCDPhysicsShape::CreateGeometryInstance(FCDGeometry* geom, bool createConvexMesh) { analGeom = NULL; SAFE_RELEASE(geometry); geometry = (FCDGeometryInstance*)FCDEntityInstanceFactory::CreateInstance(GetDocument(), NULL, FCDEntity::GEOMETRY); if (createConvexMesh) { FCDGeometry* convexHullGeom = GetDocument()->GetGeometryLibrary()->AddEntity(); fm::string convexId = geom->GetDaeId()+"-convex"; convexHullGeom->SetDaeId(convexId); convexHullGeom->SetName(FUStringConversion::ToFString(convexId)); FCDGeometryMesh* convexHullGeomMesh = convexHullGeom->CreateMesh(); convexHullGeomMesh->SetConvexHullOf(geom); convexHullGeomMesh->SetConvex(true); geometry->SetEntity(convexHullGeom); } else { geometry->SetEntity(geom); } SetNewChildFlag(); return geometry; }