diff --git a/Engine/source/T3D/convexShape.cpp b/Engine/source/T3D/convexShape.cpp index ceaa75616..d73d387bd 100644 --- a/Engine/source/T3D/convexShape.cpp +++ b/Engine/source/T3D/convexShape.cpp @@ -697,7 +697,7 @@ bool ConvexShape::buildPolyList( PolyListContext context, AbstractPolyList *plis return true; } -bool ConvexShape::buildExportPolyList(PolyListContext context, ColladaUtils::ExportData* exportData, const Box3F &box, const SphereF &) +bool ConvexShape::buildExportPolyList(ColladaUtils::ExportData* exportData, const Box3F &box, const SphereF &) { if (mGeometry.points.empty()) return false; @@ -740,9 +740,7 @@ bool ConvexShape::buildExportPolyList(PolyListContext context, ColladaUtils::Exp ColladaUtils::ExportData::detailLevel* curDetail = &meshData->meshDetailLevels.last(); //Make sure we denote the size this detail level has - curDetail->size = getNextPow2(getObjBox().len()); - - bool t = true; + curDetail->size = 512; } return true; diff --git a/Engine/source/T3D/convexShape.h b/Engine/source/T3D/convexShape.h index 32d0122f5..413877a36 100644 --- a/Engine/source/T3D/convexShape.h +++ b/Engine/source/T3D/convexShape.h @@ -172,7 +172,7 @@ public: virtual void prepRenderImage( SceneRenderState *state ); virtual void buildConvex( const Box3F &box, Convex *convex ); virtual bool buildPolyList( PolyListContext context, AbstractPolyList *polyList, const Box3F &box, const SphereF &sphere ); - virtual bool buildExportPolyList(PolyListContext context, ColladaUtils::ExportData* exportData, const Box3F &box, const SphereF &); + virtual bool buildExportPolyList(ColladaUtils::ExportData* exportData, const Box3F &box, const SphereF &); virtual bool castRay( const Point3F &start, const Point3F &end, RayInfo *info ); virtual bool collideBox( const Point3F &start, const Point3F &end, RayInfo *info ); diff --git a/Engine/source/T3D/prefab.cpp b/Engine/source/T3D/prefab.cpp index 6d357565f..a30a24217 100644 --- a/Engine/source/T3D/prefab.cpp +++ b/Engine/source/T3D/prefab.cpp @@ -538,6 +538,19 @@ bool Prefab::buildPolyList(PolyListContext context, AbstractPolyList* polyList, return true; } +bool Prefab::buildExportPolyList(ColladaUtils::ExportData* exportData, const Box3F &box, const SphereF &sphere) +{ + Vector foundObjects; + mChildGroup->findObjectByType(foundObjects); + + for (S32 i = 0; i < foundObjects.size(); i++) + { + foundObjects[i]->buildExportPolyList(exportData, box, sphere); + } + + return true; +} + ExplodePrefabUndoAction::ExplodePrefabUndoAction( Prefab *prefab ) : UndoAction( "Explode Prefab" ) { diff --git a/Engine/source/T3D/prefab.h b/Engine/source/T3D/prefab.h index 48d87c232..fd1ebc2a4 100644 --- a/Engine/source/T3D/prefab.h +++ b/Engine/source/T3D/prefab.h @@ -98,6 +98,8 @@ public: bool buildPolyList(PolyListContext context, AbstractPolyList* polyList, const Box3F &box, const SphereF& sphere); + bool buildExportPolyList(ColladaUtils::ExportData* exportData, const Box3F &box, const SphereF &); + protected: void _closeFile( bool removeFileNotify ); diff --git a/Engine/source/T3D/tsStatic.cpp b/Engine/source/T3D/tsStatic.cpp index 9eaab881b..68b5333df 100644 --- a/Engine/source/T3D/tsStatic.cpp +++ b/Engine/source/T3D/tsStatic.cpp @@ -1073,7 +1073,7 @@ bool TSStatic::buildPolyList(PolyListContext context, AbstractPolyList* polyList return true; } -bool TSStatic::buildExportPolyList(PolyListContext context, ColladaUtils::ExportData* exportData, const Box3F &box, const SphereF &) +bool TSStatic::buildExportPolyList(ColladaUtils::ExportData* exportData, const Box3F &box, const SphereF &) { if (!mShapeInstance) return false; diff --git a/Engine/source/T3D/tsStatic.h b/Engine/source/T3D/tsStatic.h index 2df45a861..9c6918c8d 100644 --- a/Engine/source/T3D/tsStatic.h +++ b/Engine/source/T3D/tsStatic.h @@ -138,7 +138,7 @@ protected: bool castRay(const Point3F &start, const Point3F &end, RayInfo* info); bool castRayRendered(const Point3F &start, const Point3F &end, RayInfo* info); bool buildPolyList(PolyListContext context, AbstractPolyList* polyList, const Box3F &box, const SphereF& sphere); - bool buildExportPolyList(PolyListContext context, ColladaUtils::ExportData* exportData, const Box3F &box, const SphereF &); + bool buildExportPolyList(ColladaUtils::ExportData* exportData, const Box3F &box, const SphereF &); void buildConvex(const Box3F& box, Convex* convex); bool _createShape(); diff --git a/Engine/source/gui/worldEditor/worldEditor.cpp b/Engine/source/gui/worldEditor/worldEditor.cpp index ca6c966ae..b66ead790 100644 --- a/Engine/source/gui/worldEditor/worldEditor.cpp +++ b/Engine/source/gui/worldEditor/worldEditor.cpp @@ -3932,7 +3932,7 @@ void WorldEditor::makeSelectionAMesh(const char *filename) for (S32 i = 0; i < objectList.size(); i++) { SceneObject *pObj = objectList[i]; - if (!pObj->buildExportPolyList(PLC_Export, &exportData, pObj->getWorldBox(), pObj->getWorldSphere())) + if (!pObj->buildExportPolyList(&exportData, pObj->getWorldBox(), pObj->getWorldSphere())) Con::warnf("colladaExportObjectList() - object %i returned no geometry.", pObj->getId()); } diff --git a/Engine/source/scene/sceneObject.h b/Engine/source/scene/sceneObject.h index 3e7fab355..34060acce 100644 --- a/Engine/source/scene/sceneObject.h +++ b/Engine/source/scene/sceneObject.h @@ -564,8 +564,7 @@ class SceneObject : public NetObject, private SceneContainer::Link, public Proce /// @param box Box bounding volume /// @param sphere Sphere bounding volume /// - virtual bool buildExportPolyList(PolyListContext context, - ColladaUtils::ExportData *exportData, + virtual bool buildExportPolyList(ColladaUtils::ExportData *exportData, const Box3F& box, const SphereF& sphere) { return false; diff --git a/Engine/source/ts/collada/colladaUtils.h b/Engine/source/ts/collada/colladaUtils.h index 62a453ed3..144a62c7b 100644 --- a/Engine/source/ts/collada/colladaUtils.h +++ b/Engine/source/ts/collada/colladaUtils.h @@ -140,8 +140,6 @@ namespace ColladaUtils Point3F scale; - bool fillWithSingleDetail; - S32 hasDetailLevel(S32 size) { for (U32 i = 0; i < meshDetailLevels.size(); ++i) @@ -155,7 +153,7 @@ namespace ColladaUtils return -1; } - meshLODData() : shapeInst(nullptr), meshTransform(true), originatingObject(nullptr), scale(0), fillWithSingleDetail(false) + meshLODData() : shapeInst(nullptr), meshTransform(true), originatingObject(nullptr), scale(0) {} };