Browse Source

Cleanup of export function to remove redundant arg
Removed unused var
Cleaned up collision export on convexShape
Added prefab export functionality

Areloch 7 years ago
parent
commit
8dedcf456a

+ 2 - 4
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;

+ 1 - 1
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 );
 

+ 13 - 0
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<SceneObject*> 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" )
 {

+ 2 - 0
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 );

+ 1 - 1
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;

+ 1 - 1
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();

+ 1 - 1
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());
    }
 

+ 1 - 2
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;

+ 1 - 3
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)
          {}
       };