Browse Source

Trade: document ability to copy and move.

pull/278/head
Vladimír Vondruš 13 years ago
parent
commit
97b8d38e9e
  1. 17
      src/Trade/AbstractMaterialData.h
  2. 17
      src/Trade/MeshObjectData2D.h
  3. 17
      src/Trade/MeshObjectData3D.h
  4. 4
      src/Trade/ObjectData2D.cpp
  5. 17
      src/Trade/ObjectData2D.h
  6. 4
      src/Trade/ObjectData3D.cpp
  7. 17
      src/Trade/ObjectData3D.h
  8. 4
      src/Trade/SceneData.cpp
  9. 17
      src/Trade/SceneData.h
  10. 18
      src/Trade/TextureData.h

17
src/Trade/AbstractMaterialData.h

@ -39,11 +39,6 @@ namespace Magnum { namespace Trade {
Subclasses provide access to parameters for given material type.
*/
class MAGNUM_EXPORT AbstractMaterialData {
AbstractMaterialData(const AbstractMaterialData&) = delete;
AbstractMaterialData(AbstractMaterialData&&) = delete;
AbstractMaterialData& operator=(const AbstractMaterialData&) = delete;
AbstractMaterialData& operator=(AbstractMaterialData&&) = delete;
public:
/** @brief Material type */
enum class Type: UnsignedByte {
@ -59,6 +54,18 @@ class MAGNUM_EXPORT AbstractMaterialData {
/** @brief Destructor */
virtual ~AbstractMaterialData() = 0;
/** @brief Copying is not allowed */
AbstractMaterialData(const AbstractMaterialData&) = delete;
/** @brief Move constructor */
AbstractMaterialData(AbstractMaterialData&&) = default;
/** @brief Copying is not allowed */
AbstractMaterialData& operator=(const AbstractMaterialData&) = delete;
/** @brief Move assignment */
AbstractMaterialData& operator=(AbstractMaterialData&&) = default;
/** @brief Material type */
Type type() const { return _type; }

17
src/Trade/MeshObjectData2D.h

@ -39,11 +39,6 @@ Provides access to material information for given mesh instance.
@see MeshObjectData3D
*/
class MAGNUM_EXPORT MeshObjectData2D: public ObjectData2D {
MeshObjectData2D(const MeshObjectData2D&) = delete;
MeshObjectData2D(MeshObjectData2D&&) = delete;
MeshObjectData2D& operator=(const MeshObjectData2D&) = delete;
MeshObjectData2D& operator=(MeshObjectData2D&&) = delete;
public:
/**
* @brief Constructor
@ -56,6 +51,18 @@ class MAGNUM_EXPORT MeshObjectData2D: public ObjectData2D {
*/
explicit MeshObjectData2D(std::vector<UnsignedInt> children, const Matrix3& transformation, UnsignedInt instance, UnsignedInt material);
/** @brief Copying is not allowed */
MeshObjectData2D(const MeshObjectData2D&) = delete;
/** @brief Move constructor */
MeshObjectData2D(MeshObjectData2D&&) = default;
/** @brief Copying is not allowed */
MeshObjectData2D& operator=(const MeshObjectData2D&) = delete;
/** @brief Move assignment */
MeshObjectData2D& operator=(MeshObjectData2D&&) = default;
/** @brief Material ID */
UnsignedInt material() const { return _material; }

17
src/Trade/MeshObjectData3D.h

@ -39,11 +39,6 @@ Provides access to material information for given mesh instance.
@see MeshObjectData2D
*/
class MAGNUM_EXPORT MeshObjectData3D: public ObjectData3D {
MeshObjectData3D(const MeshObjectData3D&) = delete;
MeshObjectData3D(MeshObjectData3D&&) = delete;
MeshObjectData3D& operator=(const MeshObjectData3D&) = delete;
MeshObjectData3D& operator=(MeshObjectData3D&&) = delete;
public:
/**
* @brief Constructor
@ -56,6 +51,18 @@ class MAGNUM_EXPORT MeshObjectData3D: public ObjectData3D {
*/
explicit MeshObjectData3D(std::vector<UnsignedInt> children, const Matrix4& transformation, UnsignedInt instance, UnsignedInt material);
/** @brief Copying is not allowed */
MeshObjectData3D(const MeshObjectData3D&) = delete;
/** @brief Move constructor */
MeshObjectData3D(MeshObjectData3D&&) = default;
/** @brief Copying is not allowed */
MeshObjectData3D& operator=(const MeshObjectData3D&) = delete;
/** @brief Move assignment */
MeshObjectData3D& operator=(MeshObjectData3D&&) = default;
/** @brief Material ID */
UnsignedInt material() const { return _material; }

4
src/Trade/ObjectData2D.cpp

@ -30,8 +30,12 @@ ObjectData2D::ObjectData2D(std::vector<UnsignedInt> children, const Matrix3& tra
ObjectData2D::ObjectData2D(std::vector<UnsignedInt> children, const Matrix3& transformation): _children(children), _transformation(transformation), _instanceType(InstanceType::Empty), _instanceId(-1) {}
ObjectData2D::ObjectData2D(ObjectData2D&&) = default;
ObjectData2D::~ObjectData2D() = default;
ObjectData2D& ObjectData2D::operator=(ObjectData2D&&) = default;
#ifndef DOXYGEN_GENERATING_OUTPUT
Debug operator<<(Debug debug, ObjectData2D::InstanceType value) {
switch(value) {

17
src/Trade/ObjectData2D.h

@ -43,11 +43,6 @@ MeshObjectData2D, which is specialized for objects with mesh instance type.
@see ObjectData3D
*/
class MAGNUM_EXPORT ObjectData2D {
ObjectData2D(const ObjectData2D&) = delete;
ObjectData2D(ObjectData2D&&) = delete;
ObjectData2D& operator=(const ObjectData2D&) = delete;
ObjectData2D& operator=(ObjectData2D&&) = delete;
public:
/** @brief Instance type */
enum class InstanceType {
@ -72,9 +67,21 @@ class MAGNUM_EXPORT ObjectData2D {
*/
explicit ObjectData2D(std::vector<UnsignedInt> children, const Matrix3& transformation);
/** @brief Copying is not allowed */
ObjectData2D(const ObjectData2D&) = delete;
/** @brief Move constructor */
ObjectData2D(ObjectData2D&&);
/** @brief Destructor */
virtual ~ObjectData2D();
/** @brief Copying is not allowed */
ObjectData2D& operator=(const ObjectData2D&) = delete;
/** @brief Move assignment */
ObjectData2D& operator=(ObjectData2D&&);
/** @brief Child objects */
std::vector<UnsignedInt>& children() { return _children; }

4
src/Trade/ObjectData3D.cpp

@ -30,6 +30,10 @@ ObjectData3D::ObjectData3D(std::vector<UnsignedInt> children, const Matrix4& tra
ObjectData3D::ObjectData3D(std::vector<UnsignedInt> children, const Matrix4& transformation): _children(std::move(children)), _transformation(transformation), _instanceType(InstanceType::Empty), _instanceId(-1) {}
ObjectData3D::ObjectData3D(ObjectData3D&&) = default;
ObjectData3D& ObjectData3D::operator=(ObjectData3D&&) = default;
#ifndef DOXYGEN_GENERATING_OUTPUT
Debug operator<<(Debug debug, ObjectData3D::InstanceType value) {
switch(value) {

17
src/Trade/ObjectData3D.h

@ -43,11 +43,6 @@ MeshObjectData3D, which is specialized for objects with mesh instance type.
@see ObjectData2D
*/
class MAGNUM_EXPORT ObjectData3D {
ObjectData3D(const ObjectData3D&) = delete;
ObjectData3D(ObjectData3D&&) = delete;
ObjectData3D& operator=(const ObjectData3D&) = delete;
ObjectData3D& operator=(ObjectData3D&&) = delete;
public:
/** @brief Instance type */
enum class InstanceType {
@ -73,9 +68,21 @@ class MAGNUM_EXPORT ObjectData3D {
*/
explicit ObjectData3D(std::vector<UnsignedInt> children, const Matrix4& transformation);
/** @brief Copying is not allowed */
ObjectData3D(const ObjectData3D&) = delete;
/** @brief Move constructor */
ObjectData3D(ObjectData3D&&);
/** @brief Destructor */
virtual ~ObjectData3D() {}
/** @brief Copying is not allowed */
ObjectData3D& operator=(const ObjectData3D&) = delete;
/** @brief Move assignment */
ObjectData3D& operator=(ObjectData3D&&);
/** @brief Child objects */
std::vector<UnsignedInt>& children() { return _children; }

4
src/Trade/SceneData.cpp

@ -28,4 +28,8 @@ namespace Magnum { namespace Trade {
SceneData::SceneData(std::vector<UnsignedInt> children2D, std::vector<UnsignedInt> children3D): _children2D(std::move(children2D)), _children3D(std::move(children3D)) {}
SceneData::SceneData(SceneData&&) = default;
SceneData& SceneData::operator=(SceneData&&) = default;
}}

17
src/Trade/SceneData.h

@ -40,11 +40,6 @@ namespace Magnum { namespace Trade {
@brief %Scene data
*/
class MAGNUM_EXPORT SceneData {
SceneData(const SceneData&) = delete;
SceneData(SceneData&&) = delete;
SceneData& operator=(const SceneData&) = delete;
SceneData& operator=(SceneData&&) = delete;
public:
/**
* @brief Constructor
@ -53,6 +48,18 @@ class MAGNUM_EXPORT SceneData {
*/
explicit SceneData(std::vector<UnsignedInt> children2D, std::vector<UnsignedInt> children3D);
/** @brief Copying is not allowed */
SceneData(const SceneData&) = delete;
/** @brief Move constructor */
SceneData(SceneData&&);
/** @brief Copying is not allowed */
SceneData& operator=(const SceneData&) = delete;
/** @brief Move assignment */
SceneData& operator=(SceneData&&);
/** @brief Two-dimensional child objects */
const std::vector<UnsignedInt>& children2D() const { return _children2D; }

18
src/Trade/TextureData.h

@ -33,11 +33,19 @@ namespace Magnum { namespace Trade {
/**
@brief %Texture data
*/
class MAGNUM_EXPORT TextureData {
TextureData(const TextureData&) = delete;
TextureData(TextureData&&) = delete;
TextureData& operator=(const TextureData&) = delete;
TextureData& operator=(TextureData&&) = delete;
class TextureData {
public:
/** @brief Copying is not allowed */
TextureData(const TextureData&) = delete;
/** @brief Move constructor */
TextureData(TextureData&&) = default;
/** @brief Copying is not allowed */
TextureData& operator=(const TextureData&) = delete;
/** @brief Move assignment */
TextureData& operator=(TextureData&&) = default;
};
}}

Loading…
Cancel
Save