Cumulia Illustrator Rendering Engine v1.1.0
A Rendering engine for industrial CAD/CAE model and optimized for greatest performance
 
Loading...
Searching...
No Matches
scenemaker.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-10-31
15// Version V1.1.0
16//##################################################################################################
17
18#pragma once
19
20#include "../primitive/primitive.h"
21#include "../scene/mesh.h"
22#include "../scene/camera.h"
23#include "../scene/node.h"
24#include "../scene/pass.h"
25#include "../scene/scene.h"
26#include "variantmaker.h"
27
28#include <memory>
29#include <vector>
30#include <map>
31
32namespace cil
33{
34 // _camera
35 std::shared_ptr<Camera> _camera(const std::shared_ptr<Matrix4f>& viewMatrix = _mat4(),
36 const std::shared_ptr<Matrix4f>& projectionMatrix = _mat4(),
37 const std::shared_ptr<Vector3f>& orbitPoint = _vec3());
38
39 // _premitives
40 std::shared_ptr<std::vector<std::shared_ptr<Primitive>>> _primitives(const std::vector<std::shared_ptr<Primitive>>& primitives = {});
41
42 // _mesh
43 std::shared_ptr<Mesh> _mesh(const std::shared_ptr<std::vector<std::shared_ptr<Primitive>>>& primitives = nullptr,
44 const std::shared_ptr<BoundingBox>& boundingBox = nullptr);
45 std::shared_ptr<Mesh> _mesh(const std::vector<std::shared_ptr<Primitive>>& primitives,
46 const std::shared_ptr<BoundingBox>& boundingBox = nullptr);
47
48 // _node
49 std::shared_ptr<Node> _node(
50 const std::shared_ptr<Mesh>& mesh = nullptr,
51 const std::shared_ptr<std::vector<std::shared_ptr<Node>>>& children = nullptr,
52 const std::shared_ptr<Matrix4f>& transform = nullptr,
53 const std::shared_ptr<BoundingBox>& boundingBox = nullptr,
54 const std::string& name = "Node",
55 const std::shared_ptr<Material>& material = nullptr,
56 const std::shared_ptr<Geometry>& geometry = nullptr,
57 const std::shared_ptr<Query>& query = nullptr);
58 std::shared_ptr<Node> _node(
59 const std::shared_ptr<std::vector<std::shared_ptr<Node>>>& children,
60 const std::shared_ptr<Matrix4f>& transform = nullptr,
61 const std::shared_ptr<BoundingBox>& boundingBox = nullptr,
62 const std::string& name = "Node",
63 const std::shared_ptr<Material>& material = nullptr,
64 const std::shared_ptr<Geometry>& geometry = nullptr,
65 const std::shared_ptr<Query>& query = nullptr);
66 std::shared_ptr<Node> _node(const std::vector<std::shared_ptr<Primitive>>& primitives,
67 const std::shared_ptr<Matrix4f>& transform = nullptr);
68 std::shared_ptr<Node> _node(const std::vector<std::shared_ptr<Node>>& nodes,
69 const std::shared_ptr<Matrix4f>& transform = nullptr);
70 std::shared_ptr<Node> _node(const std::vector<std::shared_ptr<Primitive>>& primitives,
71 const std::vector<std::shared_ptr<Node>>& nodes,
72 const std::shared_ptr<Matrix4f>& transform = nullptr);
73 std::shared_ptr<std::vector<std::shared_ptr<Node>>> _nodes(const std::vector<std::shared_ptr<Node>>& nodes = {});
74
75 // _pass
76 std::shared_ptr<Pass> _pass(const std::shared_ptr<Node>& node = nullptr,
77 const std::shared_ptr<Background>& background = nullptr,
78 const std::shared_ptr<Camera>& camera = nullptr,
79 const std::shared_ptr<Target>& target = nullptr,
80 const std::string& name = "Pass",
81 bool enabled = true);
82
83 // _scene
84 std::shared_ptr<Scene> _scene(const std::shared_ptr<std::vector<std::shared_ptr<Pass>>>& passes = nullptr,
85 const std::shared_ptr<BoundingBox>& boundingBox = nullptr,
86 const std::string& name = "Scene");
87 std::shared_ptr<Scene> _scene(const std::vector<std::shared_ptr<Pass>>& passes,
88 const std::shared_ptr<BoundingBox>& boundingBox = nullptr,
89 const std::string& name = "Scene");
90}
Definition decal.h:23
std::shared_ptr< Vector3f > _vec3()
std::shared_ptr< std::vector< std::shared_ptr< Primitive > > > _primitives(const std::vector< std::shared_ptr< Primitive > > &primitives={})
std::shared_ptr< Scene > _scene(const std::shared_ptr< std::vector< std::shared_ptr< Pass > > > &passes=nullptr, const std::shared_ptr< BoundingBox > &boundingBox=nullptr, const std::string &name="Scene")
std::shared_ptr< Mesh > _mesh(const std::shared_ptr< std::vector< std::shared_ptr< Primitive > > > &primitives=nullptr, const std::shared_ptr< BoundingBox > &boundingBox=nullptr)
std::shared_ptr< Matrix4f > _mat4()
std::shared_ptr< Camera > _camera(const std::shared_ptr< Matrix4f > &viewMatrix=_mat4(), const std::shared_ptr< Matrix4f > &projectionMatrix=_mat4(), const std::shared_ptr< Vector3f > &orbitPoint=_vec3())
std::shared_ptr< std::vector< std::shared_ptr< Node > > > _nodes(const std::vector< std::shared_ptr< Node > > &nodes={})
std::shared_ptr< Node > _node(const std::shared_ptr< Mesh > &mesh=nullptr, const std::shared_ptr< std::vector< std::shared_ptr< Node > > > &children=nullptr, const std::shared_ptr< Matrix4f > &transform=nullptr, const std::shared_ptr< BoundingBox > &boundingBox=nullptr, const std::string &name="Node", const std::shared_ptr< Material > &material=nullptr, const std::shared_ptr< Geometry > &geometry=nullptr, const std::shared_ptr< Query > &query=nullptr)
std::shared_ptr< Pass > _pass(const std::shared_ptr< Node > &node=nullptr, const std::shared_ptr< Background > &background=nullptr, const std::shared_ptr< Camera > &camera=nullptr, const std::shared_ptr< Target > &target=nullptr, const std::string &name="Pass", bool enabled=true)