Browse Source

Trade: document how MeshData can be further transformed.

pull/272/head
Vladimír Vondruš 8 years ago
parent
commit
37dfd0ed49
  1. 35
      doc/snippets/MagnumTrade.cpp
  2. 8
      src/Magnum/Trade/MeshData2D.h
  3. 8
      src/Magnum/Trade/MeshData3D.h

35
doc/snippets/MagnumTrade.cpp

@ -27,8 +27,11 @@
#include <Corrade/Utility/Directory.h>
#include "Magnum/PixelFormat.h"
#include "Magnum/MeshTools/Transform.h"
#include "Magnum/Trade/AbstractImporter.h"
#include "Magnum/Trade/ImageData.h"
#include "Magnum/Trade/MeshData2D.h"
#include "Magnum/Trade/MeshData3D.h"
#include "Magnum/Trade/ObjectData2D.h"
#include "Magnum/Trade/ObjectData3D.h"
#include "Magnum/Trade/PhongMaterialData.h"
@ -163,8 +166,20 @@ else
#endif
{
Trade::ObjectData2D& foo();
Trade::ObjectData2D& data = foo();
Trade::MeshData2D& foo();
Trade::MeshData2D& data = foo();
/* [MeshData2D-transform] */
Matrix3 transformation =
Matrix3::translation({3.0f, -2.0f})*
Matrix3::scaling(Vector2{2.0f})*
Matrix3::rotation(45.0_degf);
MeshTools::transformPointsInPlace(transformation, data.positions(0));
/* [MeshData2D-transform] */
}
{
Trade::ObjectData2D& baz();
Trade::ObjectData2D& data = baz();
/* [ObjectData2D-transformation] */
Matrix3 transformation =
Matrix3::from(data.rotation().toMatrix(), data.translation())*
@ -174,8 +189,20 @@ static_cast<void>(transformation);
}
{
Trade::ObjectData3D& bar();
Trade::ObjectData3D& data = bar();
Trade::MeshData3D& bar();
Trade::MeshData3D& data = bar();
/* [MeshData3D-transform] */
Matrix4 transformation =
Matrix4::translation({3.0f, 1.5f, -2.0f})*
Matrix4::rotationX(45.0_degf);
MeshTools::transformPointsInPlace(transformation, data.positions(0));
MeshTools::transformVectorsInPlace(transformation, data.normals(0));
/* [MeshData3D-transform] */
}
{
Trade::ObjectData3D& fizz();
Trade::ObjectData3D& data = fizz();
/* [ObjectData3D-transformation] */
Matrix4 transformation =
Matrix4::from(data.rotation().toMatrix(), data.translation())*

8
src/Magnum/Trade/MeshData2D.h

@ -42,6 +42,14 @@ namespace Magnum { namespace Trade {
Provides access to mesh data and additional information, such as primitive
type.
It's possible to use @ref MeshTools::transformPointsInPlace() and
@ref MeshTools::transformVectorsInPlace() to do transformations on the stored
vertex data. For example, baking a particular translation + rotation + scaling
directly to vertex positions:
@snippet MagnumTrade.cpp MeshData2D-transform
@see @ref AbstractImporter::mesh2D(), @ref MeshData3D
*/
class MAGNUM_TRADE_EXPORT MeshData2D {

8
src/Magnum/Trade/MeshData3D.h

@ -42,6 +42,14 @@ namespace Magnum { namespace Trade {
Provides access to mesh data and additional information, such as primitive
type.
It's possible to use @ref MeshTools::transformPointsInPlace() and
@ref MeshTools::transformVectorsInPlace() to do transformations on the stored
vertex data. For example, baking a particular translation + rotation directly
to positions and normals:
@snippet MagnumTrade.cpp MeshData3D-transform
@see @ref AbstractImporter::mesh3D(), @ref MeshData2D
*/
class MAGNUM_TRADE_EXPORT MeshData3D {

Loading…
Cancel
Save