12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- // Copyright (C) 2009-2012 Christian Stehno
- // This file is part of the "Irrlicht Engine".
- // For conditions of distribution and use, see copyright notice in irrlicht.h
- #pragma once
- #include "vector3d.h"
- namespace irr
- {
- namespace scene
- {
- class IMesh;
- class IMeshBuffer;
- struct SMesh;
- //! Interface for vertex manipulators.
- /** You should derive your manipulator from this class if it shall be called for every vertex, getting as parameter just the vertex.
- */
- struct IVertexManipulator
- {
- };
- //! Vertex manipulator which scales the position of the vertex
- class SVertexPositionScaleManipulator : public IVertexManipulator
- {
- public:
- SVertexPositionScaleManipulator(const core::vector3df &factor) :
- Factor(factor) {}
- template <typename VType>
- void operator()(VType &vertex) const
- {
- vertex.Pos *= Factor;
- }
- private:
- core::vector3df Factor;
- };
- } // end namespace scene
- } // end namespace irr
|