3D City v-1.0
Computer Graphics Project
node.cpp
Go to the documentation of this file.
1#include "node.h"
2#include "drawable.h"
3#include "transformations.h"
4#include "engine.h"
5
6void node::delpos(const vec3 &delta) {
7 translation = trans::translate((delta)) * translation;
9}
10
11void node::setpos(const vec3 &position) {
12 translation = trans::translate(position);
14}
15
16void node::setScale(const vec3 &scale) {
17 scaling = trans::scaling3d(scale);
19}
20
21void node::setRotation(float angle, const vec3 &axis) {
22 rotation = trans::rotation(angle * radian, axis) * rotation;
24}
25
28 return matModel;
29}
30
31static vec3 getCenterOfMass(const Vertex *vertices, const unsigned int size) {
32 vec3 center(0);
33 for (unsigned int i = 0; i < size; i++) {
34 center += vertices[i].position;
35 }
36 return center / size;
37}
38
40 matModel_in = matModel * matModel_in;
41 for (auto &mesh : meshes) {
42 //printf("model matrix: \n");
43 //(mesh->matModel * matModel_in).print();
45 graphicsEngine.makeRequiredTriangles(mesh->m_vertices, mesh->m_indices, matModel_in);
46 }
47 //for (auto &child : children) {
48 // child.second->draw(graphicsEngine, matModel_in);
49 //}
50}
engine * graphicsEngine
Definition: application.cpp:41
vec3 getCenterOfMass(const Vertex *vertices, const unsigned int size)
constexpr float radian
Definition: maths.h:10
Definition: core.h:108
vec4 position
Definition: core.h:109
backend for all rendering purposes
Definition: engine.h:94
void makeRequiredTriangles(const std::vector< Vertex > &vertices, const std::vector< uint32_t > &indices, const mat4f &modelmat)
fill triangles array by doing required clipping and culling
Definition: engine.h:361
Mesh * currentMesh
which material to use for further render calls
Definition: engine.h:292
void draw(engine &graphicsEngine, mat4f matModel_in=mat4f())
Definition: node.cpp:39
const mat4f & refreshModel()
Definition: node.cpp:26
void setpos(const vec3 &position)
Definition: node.cpp:11
std::vector< drawable< Vertex > * > meshes
Definition: node.h:16
mat4f translation
Definition: node.h:33
mat4f matModel
Definition: node.h:17
mat4f rotation
Definition: node.h:34
mat4f scaling
Definition: node.h:32
void delpos(const vec3 &delta)
Definition: node.cpp:6
void setScale(const vec3 &scale)
Definition: node.cpp:16
void setRotation(float angle, const vec3 &axis)
Definition: node.cpp:21