Cumulia Illustrator Rendering Engine v1.0.0
A Rendering engine for industrial CAD/CAE model and optimized for greatest performance
 
Loading...
Searching...
No Matches
node.h
1//##################################################################################################
2//
3// Copyright (c) 2024 Beijing Qiongqi Tech Co.,Ltd. All rights reserved.
4
5// This source code is confidential and proprietary to Beijing Qiongqi Tech Co.,Ltd(The Holder).
6// Any unauthorized use, copying, modification, or distribution of the code is strictly prohibited.
7// Any user shall obtain authorizaition from the Holder before modifying the source code. And the user shall not
8// sublicense, sell, distribute, or transfer the source code, whether in original or modified form, to any third party
9// without the prior written consent of the Holder.
10
11// This copyright notice and permission grant shall be included in all copies or substantial portions of the source code.
12
13// Author Cumulia Illustrator
14// Date 2024-05-01
15// Version V1.0.0
16//##################################################################################################
17
18#pragma once
19
20#include "../variant/matrix.h"
21#include "../variant/vector.h"
22#include "mesh.h"
23#include "../object/object.h"
24#include "../primitive/material.h"
25#include "../primitive/geometry.h"
26#include "../primitive/query.h"
27
28#include <memory>
29#include <string>
30
31namespace cil
32{
34 class Node : public Object
35 {
36 public:
37 std::string name;
38 std::shared_ptr<Mesh> mesh;
39 std::shared_ptr<std::vector<std::shared_ptr<Node>>> children;
40 std::shared_ptr<Matrix4f> transform;
41 std::shared_ptr<BoundingBox> boundingBox;
42 std::shared_ptr<Material> material;
43 std::shared_ptr<Geometry> geometry;
44 std::shared_ptr<Query> query;
45 };
46
47 std::shared_ptr<BoundingBox> getBoundingBox(const std::shared_ptr<Node>& node);
48}
49
The Node class represents a node in a scene graph. A scene graph is a hierarchicaldata stucture used ...
Definition node.h:35
std::shared_ptr< BoundingBox > boundingBox
This member is a shared pointer to a BoundingBox.
Definition node.h:41
std::shared_ptr< Geometry > geometry
This member is a shared pointer to a Geometry object, which maybe used for specific geometric data re...
Definition node.h:43
std::shared_ptr< Mesh > mesh
This member is a shared pointer to a Mesh object, which means the node has a 3D object with its geome...
Definition node.h:38
std::shared_ptr< Material > material
This member is a shared pointer to a Mateiral object, which means the node can have its own material ...
Definition node.h:42
std::shared_ptr< std::vector< std::shared_ptr< Node > > > children
This member is a dynamic array of shared pointers to the child Node objects. This allows the node to ...
Definition node.h:39
std::shared_ptr< Query > query
This member is a shared pointer to a Query object, and it is some type of query operation performed o...
Definition node.h:44
std::shared_ptr< Matrix4f > transform
This member is a shared pointer to a Matrix4f object. This matrix represents the transformation(posit...
Definition node.h:40
std::string name
This memeber stores the name of the node.
Definition node.h:37
Definition object.h:23
Definition decal.h:23
std::shared_ptr< BoundingBox > getBoundingBox(const std::shared_ptr< Geometry > &geometry, const std::string &attribName="positions")