Browse Source

Trade: don't define MeshData constructor etc. in header.

The class has heavy construction/destruction due to all the vectors.
pull/278/head
Vladimír Vondruš 13 years ago
parent
commit
e76543703f
  1. 6
      src/Trade/MeshData2D.cpp
  2. 6
      src/Trade/MeshData2D.h
  3. 6
      src/Trade/MeshData3D.cpp
  4. 6
      src/Trade/MeshData3D.h

6
src/Trade/MeshData2D.cpp

@ -28,6 +28,12 @@
namespace Magnum { namespace Trade {
MeshData2D::MeshData2D(Mesh::Primitive primitive, std::vector<UnsignedInt>* indices, std::vector<std::vector<Vector2>*> positions, std::vector<std::vector<Vector2>*> textureCoords2D): _primitive(primitive), _indices(indices), _positions(std::move(positions)), _textureCoords2D(std::move(textureCoords2D)) {}
MeshData2D::MeshData2D(MeshData2D&&) = default;
MeshData2D& MeshData2D::operator=(MeshData2D&&) = default;
MeshData2D::~MeshData2D() {
delete _indices;
for(auto i: _positions) delete i;

6
src/Trade/MeshData2D.h

@ -56,16 +56,16 @@ class MAGNUM_EXPORT MeshData2D {
* @param textureCoords2D Array with two-dimensional texture
* coordinate arrays or empty array
*/
inline MeshData2D(Mesh::Primitive primitive, std::vector<UnsignedInt>* indices, std::vector<std::vector<Vector2>*> positions, std::vector<std::vector<Vector2>*> textureCoords2D): _primitive(primitive), _indices(indices), _positions(positions), _textureCoords2D(textureCoords2D) {}
MeshData2D(Mesh::Primitive primitive, std::vector<UnsignedInt>* indices, std::vector<std::vector<Vector2>*> positions, std::vector<std::vector<Vector2>*> textureCoords2D);
/** @brief Move constructor */
MeshData2D(MeshData2D&&) = default;
MeshData2D(MeshData2D&&);
/** @brief Destructor */
~MeshData2D();
/** @brief Move assignment */
MeshData2D& operator=(MeshData2D&&) = default;
MeshData2D& operator=(MeshData2D&&);
/** @brief Primitive */
inline Mesh::Primitive primitive() const { return _primitive; }

6
src/Trade/MeshData3D.cpp

@ -28,6 +28,12 @@
namespace Magnum { namespace Trade {
MeshData3D::MeshData3D(Mesh::Primitive primitive, std::vector<UnsignedInt>* indices, std::vector<std::vector<Vector3>*> positions, std::vector<std::vector<Vector3>*> normals, std::vector<std::vector<Vector2>*> textureCoords2D): _primitive(primitive), _indices(indices), _positions(std::move(positions)), _normals(std::move(normals)), _textureCoords2D(std::move(textureCoords2D)) {}
MeshData3D::MeshData3D(MeshData3D&&) = default;
MeshData3D& MeshData3D::operator=(MeshData3D&&) = default;
MeshData3D::~MeshData3D() {
delete _indices;
for(auto i: _positions) delete i;

6
src/Trade/MeshData3D.h

@ -57,16 +57,16 @@ class MAGNUM_EXPORT MeshData3D {
* @param textureCoords2D Array with two-dimensional texture
* coordinate arrays or empty array
*/
inline MeshData3D(Mesh::Primitive primitive, std::vector<UnsignedInt>* indices, std::vector<std::vector<Vector3>*> positions, std::vector<std::vector<Vector3>*> normals, std::vector<std::vector<Vector2>*> textureCoords2D): _primitive(primitive), _indices(indices), _positions(positions), _normals(normals), _textureCoords2D(textureCoords2D) {}
MeshData3D(Mesh::Primitive primitive, std::vector<UnsignedInt>* indices, std::vector<std::vector<Vector3>*> positions, std::vector<std::vector<Vector3>*> normals, std::vector<std::vector<Vector2>*> textureCoords2D);
/** @brief Move constructor */
MeshData3D(MeshData3D&&) = default;
MeshData3D(MeshData3D&&);
/** @brief Destructor */
~MeshData3D();
/** @brief Move assignment */
MeshData3D& operator=(MeshData3D&&) = default;
MeshData3D& operator=(MeshData3D&&);
/** @brief Primitive */
inline Mesh::Primitive primitive() const { return _primitive; }

Loading…
Cancel
Save