aboutsummaryrefslogtreecommitdiff
path: root/src/common/Collision/Models
diff options
context:
space:
mode:
authorNaios <naios-dev@live.de>2015-10-12 14:13:50 +0200
committerNaios <naios-dev@live.de>2015-10-17 13:14:20 +0200
commit13654bac2c41b2971915e706b5304a3ce6089a47 (patch)
treebd32d793a084cf23d296048d8dc3517c279cd945 /src/common/Collision/Models
parent0946fcf2aa35ebe0b8db07813315e3d6546b9d31 (diff)
Core/Tools: Fix brutal linking in mmaps extractor.
* caused warnings with shared linking * ref #15671
Diffstat (limited to 'src/common/Collision/Models')
-rw-r--r--src/common/Collision/Models/ModelInstance.h3
-rw-r--r--src/common/Collision/Models/WorldModel.cpp19
-rw-r--r--src/common/Collision/Models/WorldModel.h10
3 files changed, 24 insertions, 8 deletions
diff --git a/src/common/Collision/Models/ModelInstance.h b/src/common/Collision/Models/ModelInstance.h
index dfdb001db0a..f8bbfa4fa73 100644
--- a/src/common/Collision/Models/ModelInstance.h
+++ b/src/common/Collision/Models/ModelInstance.h
@@ -70,12 +70,11 @@ namespace VMAP
void intersectPoint(const G3D::Vector3& p, AreaInfo &info) const;
bool GetLocationInfo(const G3D::Vector3& p, LocationInfo &info) const;
bool GetLiquidLevel(const G3D::Vector3& p, LocationInfo &info, float &liqHeight) const;
+ WorldModel* getWorldModel() { return iModel; }
protected:
G3D::Matrix3 iInvRot;
float iInvScale;
WorldModel* iModel;
- public:
- WorldModel* getWorldModel();
};
} // namespace VMAP
diff --git a/src/common/Collision/Models/WorldModel.cpp b/src/common/Collision/Models/WorldModel.cpp
index 3af120045cb..f8290005ed8 100644
--- a/src/common/Collision/Models/WorldModel.cpp
+++ b/src/common/Collision/Models/WorldModel.cpp
@@ -250,6 +250,13 @@ namespace VMAP
return result;
}
+ void WmoLiquid::getPosInfo(uint32 &tilesX, uint32 &tilesY, G3D::Vector3 &corner) const
+ {
+ tilesX = iTilesX;
+ tilesY = iTilesY;
+ corner = iCorner;
+ }
+
// ===================== GroupModel ==================================
GroupModel::GroupModel(const GroupModel &other):
@@ -410,6 +417,13 @@ namespace VMAP
return 0;
}
+ void GroupModel::getMeshData(std::vector<G3D::Vector3> &vertices, std::vector<MeshTriangle> &triangles, WmoLiquid* &liquid)
+ {
+ vertices = this->vertices;
+ triangles = this->triangles;
+ liquid = iLiquid;
+ }
+
// ===================== WorldModel ==================================
void WorldModel::setGroupModels(std::vector<GroupModel> &models)
@@ -583,4 +597,9 @@ namespace VMAP
fclose(rf);
return result;
}
+
+ void WorldModel::getGroupModels(std::vector<GroupModel> &groupModels)
+ {
+ groupModels = this->groupModels;
+ }
}
diff --git a/src/common/Collision/Models/WorldModel.h b/src/common/Collision/Models/WorldModel.h
index 6a901a59fdf..4d46915678b 100644
--- a/src/common/Collision/Models/WorldModel.h
+++ b/src/common/Collision/Models/WorldModel.h
@@ -58,6 +58,7 @@ namespace VMAP
uint32 GetFileSize();
bool writeToFile(FILE* wf);
static bool readFromFile(FILE* rf, WmoLiquid* &liquid);
+ void getPosInfo(uint32 &tilesX, uint32 &tilesY, G3D::Vector3 &corner) const;
private:
WmoLiquid() : iTilesX(0), iTilesY(0), iCorner(), iType(0), iHeight(NULL), iFlags(NULL) { }
uint32 iTilesX; //!< number of tiles in x direction, each
@@ -66,8 +67,6 @@ namespace VMAP
uint32 iType; //!< liquid type
float *iHeight; //!< (tilesX + 1)*(tilesY + 1) height values
uint8 *iFlags; //!< info if liquid tile is used
- public:
- void getPosInfo(uint32 &tilesX, uint32 &tilesY, G3D::Vector3 &corner) const;
};
/*! holding additional info for WMO group files */
@@ -92,6 +91,7 @@ namespace VMAP
const G3D::AABox& GetBound() const { return iBound; }
uint32 GetMogpFlags() const { return iMogpFlags; }
uint32 GetWmoID() const { return iGroupWMOID; }
+ void getMeshData(std::vector<G3D::Vector3> &vertices, std::vector<MeshTriangle> &triangles, WmoLiquid* &liquid);
protected:
G3D::AABox iBound;
uint32 iMogpFlags;// 0x8 outdor; 0x2000 indoor
@@ -100,9 +100,8 @@ namespace VMAP
std::vector<MeshTriangle> triangles;
BIH meshTree;
WmoLiquid* iLiquid;
- public:
- void getMeshData(std::vector<G3D::Vector3> &vertices, std::vector<MeshTriangle> &triangles, WmoLiquid* &liquid);
};
+
/*! Holds a model (converted M2 or WMO) in its original coordinate space */
class WorldModel
{
@@ -117,12 +116,11 @@ namespace VMAP
bool GetLocationInfo(const G3D::Vector3 &p, const G3D::Vector3 &down, float &dist, LocationInfo &info) const;
bool writeFile(const std::string &filename);
bool readFile(const std::string &filename);
+ void getGroupModels(std::vector<GroupModel> &groupModels);
protected:
uint32 RootWMOID;
std::vector<GroupModel> groupModels;
BIH groupTree;
- public:
- void getGroupModels(std::vector<GroupModel> &groupModels);
};
} // namespace VMAP