Cumulia Illustrator Rendering Engine v1.0.0
A Rendering engine for industrial CAD/CAE model and optimized for greatest performance
 
Loading...
Searching...
No Matches
filter.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 <memory>
21#include <string>
22#include <vector>
23
24namespace cil
25{
26 class Attributes;
27 class PartAttributes;
28 class PolygonAttributes;
29 class PointAttributes;
30 class BlockAttributes;
31 class TracerAttributes;
32 class Parameters;
33 class FringeSurfaceParameters;
34 class PolygonSurfaceParameters;
35 class SliceParameters;
36 class CrinkleSliceParameters;
37 class ClipParameters;
38 class CrinkleClipParameters;
39 class ContourParameters;
40 class ThresholdParameters;
41 class IsoVolumeParameters;
42 class StreamTracerParameters;
43 class StreamSurfaceParameters;
44 class TubeParameters;
45 class RibbonParameters;
46 class PointParameters;
47 class SolidParameters;
48 class CrinkleSolidParameters;
49 class PointCloudParameters;
50
51 class Filter
52 {
53 protected:
54 std::string m_type;
55 std::shared_ptr<Attributes> m_attributes;
56 std::shared_ptr<Parameters> m_parameters;
57
58 public:
60
61 const std::string& type() const;
62 std::shared_ptr<Attributes> attributes() const;
63 std::shared_ptr<Parameters> parameters() const;
64 };
65
66 class FringeSurface : public Filter
67 {
68 public:
70
71 std::shared_ptr<PartAttributes> attributes() const;
72 std::shared_ptr<FringeSurfaceParameters> parameters() const;
73 };
74
75 class PolygonSurface : public Filter
76 {
77 public:
79
80 std::shared_ptr<PartAttributes> attributes() const;
81 std::shared_ptr<PolygonSurfaceParameters> parameters() const;
82 };
83
84 class Slice : public Filter
85 {
86 public:
88
89 std::shared_ptr<PolygonAttributes> attributes() const;
90 std::shared_ptr<SliceParameters> parameters() const;
91 };
92
93 class CrinkleSlice : public Filter
94 {
95 public:
97
98 std::shared_ptr<PolygonAttributes> attributes() const;
99 std::shared_ptr<CrinkleSliceParameters> parameters() const;
100 };
101
102 class Clip : public Filter
103 {
104 public:
106
107 std::shared_ptr<PolygonAttributes> attributes() const;
108 std::shared_ptr<ClipParameters> parameters() const;
109 };
110
111 class CrinkleClip : public Filter
112 {
113 public:
115
116 std::shared_ptr<PolygonAttributes> attributes() const;
117 std::shared_ptr<CrinkleClipParameters> parameters() const;
118 };
119
120 class Contour : public Filter
121 {
122 public:
124
125 std::shared_ptr<PolygonAttributes> attributes() const;
126 std::shared_ptr<ContourParameters> parameters() const;
127 };
128
129 class Threshold : public Filter
130 {
131 public:
133
134 std::shared_ptr<PolygonAttributes> attributes() const;
135 std::shared_ptr<ThresholdParameters> parameters() const;
136 };
137
138 class IsoVolume : public Filter
139 {
140 public:
142
143 std::shared_ptr<PolygonAttributes> attributes() const;
144 std::shared_ptr<IsoVolumeParameters> parameters() const;
145 };
146
147 class StreamTracer : public Filter
148 {
149 public:
151
152 std::shared_ptr<TracerAttributes> attributes() const;
153 std::shared_ptr<StreamTracerParameters> parameters() const;
154 };
155
156 class StreamSurface : public Filter
157 {
158 public:
160
161 std::shared_ptr<PolygonAttributes> attributes() const;
162 std::shared_ptr<StreamSurfaceParameters> parameters() const;
163 };
164
165 class Tube : public Filter
166 {
167 public:
169
170 std::shared_ptr<PolygonAttributes> attributes() const;
171 std::shared_ptr<TubeParameters> parameters() const;
172 };
173
174 class Ribbon : public Filter
175 {
176 public:
178
179 std::shared_ptr<PolygonAttributes> attributes() const;
180 std::shared_ptr<RibbonParameters> parameters() const;
181 };
182
183 class Probe : public Filter
184 {
185 public:
187
188 std::shared_ptr<PointAttributes> attributes() const;
189 std::shared_ptr<PointParameters> parameters() const;
190 };
191
192 class Block : public Filter
193 {
194 public:
196
197 std::shared_ptr<BlockAttributes> attributes() const;
198 std::shared_ptr<PointParameters> parameters() const;
199 };
200
201 class Solid : public Filter
202 {
203 public:
205
206 std::shared_ptr<PolygonAttributes> attributes() const;
207 std::shared_ptr<SolidParameters> parameters() const;
208 };
209
210 class CrinkleSolid : public Filter
211 {
212 public:
214
215 std::shared_ptr<PolygonAttributes> attributes() const;
216 std::shared_ptr<CrinkleSolidParameters> parameters() const;
217 };
218
219 class PointCloud : public Filter
220 {
221 public:
223
224 std::shared_ptr<PointAttributes> attributes() const;
225 std::shared_ptr<PointCloudParameters> parameters() const;
226 };
227}
Definition filter.h:193
std::shared_ptr< PointParameters > parameters() const
std::shared_ptr< BlockAttributes > attributes() const
Definition filter.h:103
std::shared_ptr< PolygonAttributes > attributes() const
std::shared_ptr< ClipParameters > parameters() const
Definition filter.h:121
std::shared_ptr< ContourParameters > parameters() const
std::shared_ptr< PolygonAttributes > attributes() const
Definition filter.h:112
std::shared_ptr< PolygonAttributes > attributes() const
std::shared_ptr< CrinkleClipParameters > parameters() const
Definition filter.h:94
std::shared_ptr< CrinkleSliceParameters > parameters() const
std::shared_ptr< PolygonAttributes > attributes() const
Definition filter.h:211
std::shared_ptr< PolygonAttributes > attributes() const
std::shared_ptr< CrinkleSolidParameters > parameters() const
Definition filter.h:52
std::shared_ptr< Attributes > m_attributes
Definition filter.h:55
std::shared_ptr< Parameters > m_parameters
Definition filter.h:56
std::shared_ptr< Parameters > parameters() const
std::string m_type
Definition filter.h:54
std::shared_ptr< Attributes > attributes() const
const std::string & type() const
Definition filter.h:67
std::shared_ptr< FringeSurfaceParameters > parameters() const
std::shared_ptr< PartAttributes > attributes() const
Definition filter.h:139
std::shared_ptr< IsoVolumeParameters > parameters() const
std::shared_ptr< PolygonAttributes > attributes() const
Definition filter.h:220
std::shared_ptr< PointAttributes > attributes() const
std::shared_ptr< PointCloudParameters > parameters() const
Definition filter.h:76
std::shared_ptr< PolygonSurfaceParameters > parameters() const
std::shared_ptr< PartAttributes > attributes() const
Definition filter.h:184
std::shared_ptr< PointParameters > parameters() const
std::shared_ptr< PointAttributes > attributes() const
Definition filter.h:175
std::shared_ptr< RibbonParameters > parameters() const
std::shared_ptr< PolygonAttributes > attributes() const
Definition filter.h:85
std::shared_ptr< PolygonAttributes > attributes() const
std::shared_ptr< SliceParameters > parameters() const
Definition filter.h:202
std::shared_ptr< SolidParameters > parameters() const
std::shared_ptr< PolygonAttributes > attributes() const
Definition filter.h:157
std::shared_ptr< PolygonAttributes > attributes() const
std::shared_ptr< StreamSurfaceParameters > parameters() const
Definition filter.h:148
std::shared_ptr< StreamTracerParameters > parameters() const
std::shared_ptr< TracerAttributes > attributes() const
Definition filter.h:130
std::shared_ptr< ThresholdParameters > parameters() const
std::shared_ptr< PolygonAttributes > attributes() const
Definition filter.h:166
std::shared_ptr< PolygonAttributes > attributes() const
std::shared_ptr< TubeParameters > parameters() const
Definition decal.h:23