Cumulia Illustrator Rendering Engine v1.0.0
A Rendering engine for industrial CAD/CAE model and optimized for greatest performance
 
Loading...
Searching...
No Matches
attributes.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 <string>
21#include <tuple>
22#include <memory>
23
24#include <cilcore.h>
25
26namespace cil
27{
28 class Part;
29 class PartData;
30 class FilterData;
31 class EntityData;
32 class ScenarioSettings;
33
35 {
36 protected:
37 bool isScalarExisted(const std::shared_ptr<ScenarioSettings>& settings) const;
38 bool isVectorExisted(const std::shared_ptr<ScenarioSettings>& settings) const;
39 bool isOffsetExisted(const std::shared_ptr<ScenarioSettings>& settings) const;
40
41 public:
42 enum class Appearence {
43 None,
44 Color,
45 Result,
46 Texture,
47 };
48
49 bool visible;
51 std::string scalar;
52 std::string vector;
53 std::string offset;
54 std::shared_ptr<Color3f> color;
55
57
58 virtual std::shared_ptr<Node> entityData2Node(std::tuple<const std::shared_ptr<EntityData>&,
59 const std::shared_ptr<ScenarioSettings>&> data);
60 virtual std::shared_ptr<Node> partData2Node(std::tuple<const std::shared_ptr<PartData>&,
61 const std::shared_ptr<ScenarioSettings>&> data);
62 virtual std::shared_ptr<Node> filterData2Node(std::tuple<const std::shared_ptr<FilterData>&,
63 const std::shared_ptr<ScenarioSettings>&> data);
64
65 virtual std::shared_ptr<Node> operator<< (std::tuple<const std::shared_ptr<FilterData>&,
66 const std::shared_ptr<ScenarioSettings>&> data);
67 };
68
70 {
71 private:
72 std::shared_ptr<Primitive> findShaded(const std::shared_ptr<EntityData>& entityData,
73 const std::shared_ptr<ScenarioSettings>& settings);
74 std::shared_ptr<Primitive> findOutline(const std::shared_ptr<EntityData>& entityData,
75 const std::shared_ptr<ScenarioSettings>& settings);
76 std::shared_ptr<Primitive> findTransparent(const std::shared_ptr<EntityData>& entityData,
77 const std::shared_ptr<ScenarioSettings>& settings);
78 std::shared_ptr<Primitive> findWireframe(const std::shared_ptr<EntityData>& entityData,
79 const std::shared_ptr<ScenarioSettings>& settings);
80 std::shared_ptr<Primitive> findGrille(const std::shared_ptr<EntityData>& entityData,
81 const std::shared_ptr<ScenarioSettings>& settings);
82 std::shared_ptr<Primitive> findSphere(const std::shared_ptr<EntityData>& entityData,
83 const std::shared_ptr<ScenarioSettings>& settings);
84 std::shared_ptr<Primitive> findStrip(const std::shared_ptr<EntityData>& entityData,
85 const std::shared_ptr<ScenarioSettings>& settings);
86 std::shared_ptr<Primitive> findVector(const std::shared_ptr<EntityData>& entityData,
87 const std::shared_ptr<ScenarioSettings>& settings);
88
89 public:
112
114
115 virtual std::shared_ptr<Node> entityData2Node(std::tuple<const std::shared_ptr<EntityData>&,
116 const std::shared_ptr<ScenarioSettings>&> data);
117 };
118
120 {
121 public:
123
124 std::map<Part*, std::shared_ptr<PolygonAttributes>> children;
125
126 virtual std::shared_ptr<Node> filterData2Node(std::tuple<const std::shared_ptr<FilterData>&,
127 const std::shared_ptr<ScenarioSettings>&> data);
128
129 void sync();
130 };
131
133 {
134 private:
135 std::shared_ptr<Primitive> findLine(const std::shared_ptr<EntityData>& entityData,
136 const std::shared_ptr<ScenarioSettings>& settings);
137 std::shared_ptr<Primitive> findSphere(const std::shared_ptr<EntityData>& entityData,
138 const std::shared_ptr<ScenarioSettings>& settings);
139 std::shared_ptr<Primitive> findRibbon(const std::shared_ptr<EntityData>& entityData,
140 const std::shared_ptr<ScenarioSettings>& settings);
141 std::shared_ptr<Primitive> findCylinder(const std::shared_ptr<EntityData>& entityData,
142 const std::shared_ptr<ScenarioSettings>& settings);
143 std::shared_ptr<Primitive> findVector(const std::shared_ptr<EntityData>& entityData,
144 const std::shared_ptr<ScenarioSettings>& settings);
145 std::shared_ptr<Primitive> findForwardCylinder(const std::shared_ptr<EntityData>& entityData,
146 const std::shared_ptr<ScenarioSettings>& settings);
147 std::shared_ptr<Primitive> findForwardRibbon(const std::shared_ptr<EntityData>& entityData,
148 const std::shared_ptr<ScenarioSettings>& settings);
149 std::shared_ptr<Primitive> findForwardSphere(const std::shared_ptr<EntityData>& entityData,
150 const std::shared_ptr<ScenarioSettings>& settings);
151 std::shared_ptr<Primitive> findMeteorCylinder(const std::shared_ptr<EntityData>& entityData,
152 const std::shared_ptr<ScenarioSettings>& settings);
153 std::shared_ptr<Primitive> findMeteorLine(const std::shared_ptr<EntityData>& entityData,
154 const std::shared_ptr<ScenarioSettings>& settings);
155
156 public:
157 enum class Display {
158 None,
159
160 Line,
161 Sphere,
162 Ribbon,
163 Cylinder,
164
169
172 };
173
175
177
178 virtual std::shared_ptr<Node> entityData2Node(std::tuple<const std::shared_ptr<EntityData>&,
179 const std::shared_ptr<ScenarioSettings>&> data);
180 };
181
183 {
184 private:
185 std::shared_ptr<Primitive> findSphere(const std::shared_ptr<EntityData>& entityData,
186 const std::shared_ptr<ScenarioSettings>& settings);
187 std::shared_ptr<Primitive> findSquare(const std::shared_ptr<EntityData>& entityData,
188 const std::shared_ptr<ScenarioSettings>& settings);
189 std::shared_ptr<Primitive> findCloud(const std::shared_ptr<EntityData>& entityData,
190 const std::shared_ptr<ScenarioSettings>& settings);
191 public:
192 enum class Display {
193 None,
194 Point,
195 Circle,
196 Ring,
197 Star,
198 Square,
199 Sphere,
200 Cloud,
201 };
202
204
206
207 virtual std::shared_ptr<Node> entityData2Node(std::tuple<const std::shared_ptr<EntityData>&,
208 const std::shared_ptr<ScenarioSettings>&> data);
209 };
210
212 {
213 private:
214 std::shared_ptr<Primitive> findSphere(const std::shared_ptr<EntityData>& entityData,
215 const std::shared_ptr<ScenarioSettings>& settings);
216 std::shared_ptr<Primitive> findCube(const std::shared_ptr<EntityData>& entityData,
217 const std::shared_ptr<ScenarioSettings>& settings);
218 std::shared_ptr<Primitive> findCubeOutline(const std::shared_ptr<EntityData>& entityData,
219 const std::shared_ptr<ScenarioSettings>& settings);
220
221 public:
222 enum class Display {
223 None,
224 Sphere,
225 Cube,
227 };
228
230
232
233 virtual std::shared_ptr<Node> entityData2Node(std::tuple<const std::shared_ptr<EntityData>&,
234 const std::shared_ptr<ScenarioSettings>&> data);
235 };
236}
Definition attributes.h:35
virtual std::shared_ptr< Node > partData2Node(std::tuple< const std::shared_ptr< PartData > &, const std::shared_ptr< ScenarioSettings > & > data)
virtual std::shared_ptr< Node > operator<<(std::tuple< const std::shared_ptr< FilterData > &, const std::shared_ptr< ScenarioSettings > & > data)
bool isVectorExisted(const std::shared_ptr< ScenarioSettings > &settings) const
std::string offset
Definition attributes.h:53
std::string vector
Definition attributes.h:52
bool visible
Definition attributes.h:49
bool isOffsetExisted(const std::shared_ptr< ScenarioSettings > &settings) const
virtual std::shared_ptr< Node > entityData2Node(std::tuple< const std::shared_ptr< EntityData > &, const std::shared_ptr< ScenarioSettings > & > data)
Appearence appearence
Definition attributes.h:50
Appearence
Definition attributes.h:42
bool isScalarExisted(const std::shared_ptr< ScenarioSettings > &settings) const
std::shared_ptr< Color3f > color
Definition attributes.h:54
virtual std::shared_ptr< Node > filterData2Node(std::tuple< const std::shared_ptr< FilterData > &, const std::shared_ptr< ScenarioSettings > & > data)
std::string scalar
Definition attributes.h:51
Definition attributes.h:212
Display display
Definition attributes.h:229
Display
Definition attributes.h:222
virtual std::shared_ptr< Node > entityData2Node(std::tuple< const std::shared_ptr< EntityData > &, const std::shared_ptr< ScenarioSettings > & > data)
Definition attributes.h:120
std::map< Part *, std::shared_ptr< PolygonAttributes > > children
Definition attributes.h:124
virtual std::shared_ptr< Node > filterData2Node(std::tuple< const std::shared_ptr< FilterData > &, const std::shared_ptr< ScenarioSettings > & > data)
Definition attributes.h:183
Display
Definition attributes.h:192
Display display
Definition attributes.h:203
virtual std::shared_ptr< Node > entityData2Node(std::tuple< const std::shared_ptr< EntityData > &, const std::shared_ptr< ScenarioSettings > & > data)
Definition attributes.h:70
Display display
Definition attributes.h:111
Display
Definition attributes.h:90
virtual std::shared_ptr< Node > entityData2Node(std::tuple< const std::shared_ptr< EntityData > &, const std::shared_ptr< ScenarioSettings > & > data)
Definition attributes.h:133
Display display
Definition attributes.h:174
virtual std::shared_ptr< Node > entityData2Node(std::tuple< const std::shared_ptr< EntityData > &, const std::shared_ptr< ScenarioSettings > & > data)
Display
Definition attributes.h:157
Definition decal.h:23