Pioneer
Loading...
Searching...
No Matches
MatrixTransform.h
Go to the documentation of this file.
1// Copyright © 2008-2023 Pioneer Developers. See AUTHORS.txt for details
2// Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
3
4#ifndef _MATRIXTRANSFORM_H
5#define _MATRIXTRANSFORM_H
6
7#include "Group.h"
8#include "matrix4x4.h"
9
10namespace Graphics {
11 class Renderer;
12}
13
14namespace SceneGraph {
15
16 /*
17 * Applies a matrix transform to child nodes
18 *
19 * Note: transforms are not automatically serialized when saving to disk;
20 * they are derived from the original model and animations.
21 * If you have programmatically positioned a MatrixTransform, it is your
22 * responsibility to ensure the new position is properly serialized.
23 */
24 class MatrixTransform : public Group {
25 public:
28
29 virtual Node *Clone(NodeCopyCache *cache = 0) override;
30 virtual const char *GetTypeName() const override { return "MatrixTransform"; }
31 virtual void Accept(NodeVisitor &v) override;
32
33 virtual void Save(NodeDatabase &) override;
35
36 virtual void Render(const matrix4x4f &trans, const RenderData *rd) override;
37 virtual void Render(const std::vector<matrix4x4f> &trans, const RenderData *rd) override;
38
39 const matrix4x4f &GetTransform() const { return m_transform; }
40 void SetTransform(const matrix4x4f &m) { m_transform = m; }
41
42 protected:
43 virtual ~MatrixTransform() {}
44
45 private:
46 matrix4x4f m_transform;
47 };
48} // namespace SceneGraph
49#endif
Definition Renderer.h:44
Definition Group.h:12
Definition MatrixTransform.h:24
virtual void Render(const matrix4x4f &trans, const RenderData *rd) override
Definition MatrixTransform.cpp:34
virtual void Accept(NodeVisitor &v) override
Definition MatrixTransform.cpp:29
static MatrixTransform * Load(NodeDatabase &)
Definition MatrixTransform.cpp:65
virtual void Save(NodeDatabase &) override
Definition MatrixTransform.cpp:58
virtual Node * Clone(NodeCopyCache *cache=0) override
Definition MatrixTransform.cpp:24
virtual const char * GetTypeName() const override
Definition MatrixTransform.h:30
virtual ~MatrixTransform()
Definition MatrixTransform.h:43
void SetTransform(const matrix4x4f &m)
Definition MatrixTransform.h:40
const matrix4x4f & GetTransform() const
Definition MatrixTransform.h:39
Definition NodeCopyCache.h:14
Definition NodeVisitor.h:26
Definition Node.h:72
Definition Background.h:14
Definition CityOnPlanet.h:31
Definition Node.h:63
Definition Node.h:44