-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMesh3D.h
More file actions
35 lines (28 loc) · 1.02 KB
/
Copy pathMesh3D.h
File metadata and controls
35 lines (28 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#pragma once
#include "Object3D.h"
#include "Geometry.h"
#include "Material.h"
namespace dawn
{
class Mesh3D : public Object3D
{
public:
Mesh3D(Geometry *geometry, Material *material) : m_geometry(geometry), m_material(material) { }
virtual CONSTANTS::Type type() const { return CONSTANTS::Mesh3D; }
Geometry *geometry() const { return m_geometry; }
void geometry(Geometry *g) { setChanged(m_geometry != g); m_geometry = g; }
Material *material() const { return m_material; }
void material(Material *m) { setChanged(m_material != m); m_material = m; }
virtual bool isChanged(etag_t *etag, bool recursive) {
bool changed = Object3D::isChanged(etag, recursive);
if (recursive) {
changed |= m_geometry->isChanged(etag, recursive);
changed |= m_material->isChanged(etag, recursive);
}
return changed;
}
protected:
Geometry *m_geometry;
Material *m_material;
};
}