Cumulia Illustrator Rendering Engine v2.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 2025-08-05
15// Version V2.1.0
16//##################################################################################################
17
18#pragma once
19
20#include "../variant/types.h"
21#include "../primitive/types.h"
22#include "../scene/types.h"
23#include "variantmaker.h"
24
25#include <vector>
26
27namespace cil
28{
29 // _camera
30 CameraPtr _camera(const Matrix4fPtr& viewMatrix = _mat4(),
31 const Matrix4fPtr& projectionMatrix = _mat4(),
32 const Vector3fPtr& orbitPoint = _vec3());
33
34 // _premitives
35 std::shared_ptr<std::vector<PrimitivePtr>> _primitives(const std::vector<PrimitivePtr>& primitives = {});
36
37 // _mesh
38 MeshPtr _mesh(const std::shared_ptr<std::vector<PrimitivePtr>>& primitives = nullptr,
39 const BoundingBoxPtr& boundingBox = nullptr);
40 MeshPtr _mesh(const std::vector<PrimitivePtr>& primitives,
41 const BoundingBoxPtr& boundingBox = nullptr);
42
43 // _node
45 const MeshPtr& mesh = nullptr,
46 const std::shared_ptr<std::vector<NodePtr>>& children = nullptr,
47 const Matrix4fPtr& transform = nullptr,
48 const BoundingBoxPtr& boundingBox = nullptr,
49 const std::string& name = "Node",
50 const MaterialPtr& material = nullptr,
51 const GeometryPtr& geometry = nullptr,
52 const QueryPtr& query = nullptr);
54 const std::shared_ptr<std::vector<NodePtr>>& children,
55 const Matrix4fPtr& transform = nullptr,
56 const BoundingBoxPtr& boundingBox = nullptr,
57 const std::string& name = "Node",
58 const MaterialPtr& material = nullptr,
59 const GeometryPtr& geometry = nullptr,
60 const QueryPtr& query = nullptr);
61 NodePtr _node(const std::vector<PrimitivePtr>& primitives,
62 const Matrix4fPtr& transform = nullptr);
63 NodePtr _node(const std::vector<NodePtr>& nodes,
64 const Matrix4fPtr& transform = nullptr);
65 NodePtr _node(const std::vector<PrimitivePtr>& primitives,
66 const std::vector<NodePtr>& nodes,
67 const Matrix4fPtr& transform = nullptr);
68 std::shared_ptr<std::vector<NodePtr>> _nodes(const std::vector<NodePtr>& nodes = {});
69
70 // _pass
71 PassPtr _pass(const NodePtr& node = nullptr,
72 const BackgroundPtr& background = nullptr,
73 const CameraPtr& camera = nullptr,
74 const TargetPtr& target = nullptr,
75 const std::string& name = "Pass",
76 bool enabled = true);
77
78 // _scene
79 ScenePtr _scene(const std::shared_ptr<std::vector<PassPtr>>& passes = nullptr,
80 const BoundingBoxPtr& boundingBox = nullptr,
81 const std::string& name = "Scene");
82 ScenePtr _scene(const std::vector<PassPtr>& passes,
83 const BoundingBoxPtr& boundingBox = nullptr,
84 const std::string& name = "Scene");
85}
Definition decal.h:23
std::shared_ptr< Mesh > MeshPtr
Definition types.h:32
std::shared_ptr< BoundingBox > BoundingBoxPtr
Definition types.h:36
CameraPtr _camera(const Matrix4fPtr &viewMatrix=_mat4(), const Matrix4fPtr &projectionMatrix=_mat4(), const Vector3fPtr &orbitPoint=_vec3())
ScenePtr _scene(const std::shared_ptr< std::vector< PassPtr > > &passes=nullptr, const BoundingBoxPtr &boundingBox=nullptr, const std::string &name="Scene")
Matrix4fPtr _mat4()
NodePtr _node(const MeshPtr &mesh=nullptr, const std::shared_ptr< std::vector< NodePtr > > &children=nullptr, const Matrix4fPtr &transform=nullptr, const BoundingBoxPtr &boundingBox=nullptr, const std::string &name="Node", const MaterialPtr &material=nullptr, const GeometryPtr &geometry=nullptr, const QueryPtr &query=nullptr)
PassPtr _pass(const NodePtr &node=nullptr, const BackgroundPtr &background=nullptr, const CameraPtr &camera=nullptr, const TargetPtr &target=nullptr, const std::string &name="Pass", bool enabled=true)
std::shared_ptr< Geometry > GeometryPtr
Definition types.h:32
MeshPtr _mesh(const std::shared_ptr< std::vector< PrimitivePtr > > &primitives=nullptr, const BoundingBoxPtr &boundingBox=nullptr)
std::shared_ptr< Scene > ScenePtr
Definition types.h:44
std::shared_ptr< Node > NodePtr
Definition types.h:36
Vector3fPtr _vec3()
std::shared_ptr< Vector3f > Vector3fPtr
Definition types.h:134
std::shared_ptr< Matrix4f > Matrix4fPtr
Definition types.h:68
std::shared_ptr< Query > QueryPtr
Definition types.h:56
std::shared_ptr< Pass > PassPtr
Definition types.h:40
std::shared_ptr< Camera > CameraPtr
Definition types.h:28
std::shared_ptr< Material > MaterialPtr
Definition types.h:44
std::shared_ptr< std::vector< PrimitivePtr > > _primitives(const std::vector< PrimitivePtr > &primitives={})
std::shared_ptr< Background > BackgroundPtr
Definition types.h:28
std::shared_ptr< std::vector< NodePtr > > _nodes(const std::vector< NodePtr > &nodes={})
std::shared_ptr< Target > TargetPtr
Definition types.h:90