Cumulia Illustrator Rendering Engine v2.1.0
A Rendering engine for industrial CAD/CAE model and optimized for greatest performance
 
Loading...
Searching...
No Matches
scenario.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 <cilcore.h>
21
22#include <vector>
23#include <memory>
24#include <functional>
25
26#include "types.h"
27#include "../viz/types.h"
28#include "../data/types.h"
29
30namespace cil
31{
32 class ScenarioSettings;
33
34 typedef std::function<void(Attributes&, int, int)> AttributesOverwriter;
35 typedef std::shared_ptr<AttributesOverwriter> AttributesOverwriterPtr;
37
39 {
40 private:
41 DataSolutionPtr m_dataSolution;
42 VizSolutionPtr m_vizSolution;
43 std::shared_ptr<ScenarioSettings> m_settings;
44 FilterPtrArray m_filters;
45
46 void extract(int index);
47 std::shared_ptr<Node> generate(int index, const AttributesOverwriterPtr& callback);
48 std::shared_ptr<Node> createModelNode(const VizModelPtr& vizModel, const std::shared_ptr<ScenarioSettings>& settings, const AttributesOverwriterPtr& callback);
49 std::shared_ptr<Node> createFilterNode(const VizPartPtrMap& vizParts, const FilterAttributes& filterAttributes, const std::shared_ptr<ScenarioSettings>& settings, const AttributesOverwriterPtr& callback, int filterIndex);
50 std::shared_ptr<Node> createPartNode(const VizPartPtr& vizPart, const Attributes& attributes, const std::shared_ptr<ScenarioSettings>& settings);
51
52 public:
53 Scenario(const DataSolutionPtr& dataSolution);
54
55 virtual void add(const std::shared_ptr<Filter>& filter);
56 virtual void remove(const std::shared_ptr<Filter>& filter);
57 virtual void update(const std::shared_ptr<Filter>& filter);
58 virtual void clear();
59 virtual const FilterPtrArray& list() const;
60
63 virtual SlicePtr addSlice();
64 virtual ClipPtr addClip();
70 virtual TubePtr addTube();
72 virtual ProbePtr addProbe();
73 virtual LegoPtr addLego();
75
76 const DataSolutionPtr& solution() const;
77 const std::shared_ptr<ScenarioSettings>& settings() const;
78
79 std::shared_ptr<Node> build(int index = -1);
80 std::shared_ptr<Node> build(const AttributesOverwriterPtr& callback);
81 std::shared_ptr<Node> build(int index, const AttributesOverwriterPtr& callback);
82
83 std::shared_ptr<MinMax> findIntegrationTimeRange(const std::shared_ptr<Filter>& filter, int index = 0);
84 std::shared_ptr<MinMax> findIntegrationTimeRange(int index = 0);
85 };
86}
Definition attributes.h:33
Definition attributes.h:125
Definition scenario.h:39
const DataSolutionPtr & solution() const
virtual ClipPtr addClip()
virtual SlicePtr addSlice()
virtual ContourPtr addContour()
virtual CutterPtr addCutter()
virtual ThresholdPtr addThreshold()
virtual const FilterPtrArray & list() const
std::shared_ptr< Node > build(int index, const AttributesOverwriterPtr &callback)
virtual FringeSurfacePtr addFringeSurface()
std::shared_ptr< MinMax > findIntegrationTimeRange(int index=0)
virtual void remove(const std::shared_ptr< Filter > &filter)
virtual TubePtr addTube()
virtual RibbonPtr addRibbon()
Scenario(const DataSolutionPtr &dataSolution)
virtual void clear()
virtual StreamSurfacePtr addStreamSurface()
virtual StreamTracerPtr addStreamTracer()
std::shared_ptr< Node > build(const AttributesOverwriterPtr &callback)
const std::shared_ptr< ScenarioSettings > & settings() const
virtual ProbePtr addProbe()
virtual void update(const std::shared_ptr< Filter > &filter)
virtual PointCloudPtr addPointCloud()
virtual void add(const std::shared_ptr< Filter > &filter)
std::shared_ptr< MinMax > findIntegrationTimeRange(const std::shared_ptr< Filter > &filter, int index=0)
virtual LegoPtr addLego()
std::shared_ptr< Node > build(int index=-1)
virtual PolygonSurfacePtr addPolygonSurface()
Definition decal.h:23
std::shared_ptr< FringeSurface > FringeSurfacePtr
Definition types.h:62
std::map< int, VizPartPtr > VizPartPtrMap
Definition types.h:45
std::shared_ptr< Ribbon > RibbonPtr
Definition types.h:72
AttributesOverwriterPtr makeAttributesOverwriter(AttributesOverwriter callback)
std::shared_ptr< Probe > ProbePtr
Definition types.h:73
std::shared_ptr< StreamSurface > StreamSurfacePtr
Definition types.h:70
std::shared_ptr< VizPart > VizPartPtr
Definition types.h:44
std::vector< FilterPtr > FilterPtrArray
Definition types.h:60
std::shared_ptr< Threshold > ThresholdPtr
Definition types.h:67
std::shared_ptr< DataSolution > DataSolutionPtr
Definition types.h:38
std::shared_ptr< Contour > ContourPtr
Definition types.h:66
std::shared_ptr< Lego > LegoPtr
Definition types.h:74
std::shared_ptr< AttributesOverwriter > AttributesOverwriterPtr
Definition scenario.h:35
std::shared_ptr< Tube > TubePtr
Definition types.h:71
std::shared_ptr< StreamTracer > StreamTracerPtr
Definition types.h:69
std::shared_ptr< PointCloud > PointCloudPtr
Definition types.h:75
std::function< void(Attributes &, int, int)> AttributesOverwriter
Definition scenario.h:34
std::shared_ptr< Cutter > CutterPtr
Definition types.h:68
std::shared_ptr< PolygonSurface > PolygonSurfacePtr
Definition types.h:63
std::shared_ptr< VizModel > VizModelPtr
Definition types.h:46
std::shared_ptr< Clip > ClipPtr
Definition types.h:65
std::shared_ptr< Slice > SlicePtr
Definition types.h:64
std::shared_ptr< VizSolution > VizSolutionPtr
Definition types.h:48