Pioneer
Loading...
Searching...
No Matches
MatrixTransform.h
Go to the documentation of this file.
1// Copyright © 2008-2024 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 virtual matrix4x4f CalcGlobalTransform() const override;
43
44 protected:
45 virtual ~MatrixTransform() {}
46
47 private:
48 matrix4x4f m_transform;
49 };
50} // namespace SceneGraph
51#endif
Definition: Renderer.h:45
Definition: Group.h:13
Definition: MatrixTransform.h:24
virtual void Render(const matrix4x4f &trans, const RenderData *rd) override
Definition: MatrixTransform.cpp:41
virtual void Accept(NodeVisitor &v) override
Definition: MatrixTransform.cpp:31
static MatrixTransform * Load(NodeDatabase &)
Definition: MatrixTransform.cpp:72
virtual void Save(NodeDatabase &) override
Definition: MatrixTransform.cpp:65
virtual Node * Clone(NodeCopyCache *cache=0) override
Definition: MatrixTransform.cpp:26
virtual const char * GetTypeName() const override
Definition: MatrixTransform.h:30
virtual ~MatrixTransform()
Definition: MatrixTransform.h:45
void SetTransform(const matrix4x4f &m)
Definition: MatrixTransform.h:40
virtual matrix4x4f CalcGlobalTransform() const override
Definition: MatrixTransform.cpp:36
const matrix4x4f & GetTransform() const
Definition: MatrixTransform.h:39
Definition: NodeCopyCache.h:14
Definition: NodeVisitor.h:25
Definition: Node.h:75
Definition: Background.h:14
Definition: CityOnPlanet.h:32
Definition: Node.h:66
Definition: Node.h:47