ParticleTraceGroup.h
1 //##################################################################################################
2 //
3 // Ceetron Desktop Components
4 // Component: UnstructGrid
5 //
6 // --------------------------------------------------------------------------------------------
7 // Copyright (C) 2013, Ceetron AS
8 // This is UNPUBLISHED PROPRIETARY SOURCE CODE of Ceetron AS. The contents of this file may
9 // not be disclosed to third parties, copied or duplicated in any form, in whole or in part,
10 // without the prior written permission of Ceetron AS.
11 //##################################################################################################
12 
13 #pragma once
14 
15 #include "CeeUnstructGrid/Base.h"
16 #include "CeeCore/RefCountedObject.h"
17 #include "CeeCore/Vec3d.h"
18 #include "CeeCore/Color3f.h"
19 #include "CeeUnstructGrid/ParticleTraceData.h"
20 
21 #include <vector>
22 
23 namespace cee {
24 namespace ug {
25 
26 //==================================================================================================
27 //
28 //
29 //
30 //==================================================================================================
31 class CEE_UG_EXPORT ParticleTraceGroup : public RefCountedObject
32 {
33 public:
35  {
41  ARROWS
42  };
43 
44  enum ScaleMode
45  {
47  RELATIVE_SCALING
48  };
49 
50 public:
52  virtual ~ParticleTraceGroup();
53 
54  std::vector<Vec3d> seedPoints() const;
55  void setSeedPoints(const std::vector<Vec3d>& seedPoints);
56 
57  bool visible() const;
58  void setVisible(bool visible);
59 
60  int vectorResultId() const;
61  void setVectorResultId(int resultId);
62 
63  int mapScalarResultId() const;
64  void setMapScalarResultId(int resultId);
65 
66  bool computeForward() const;
67  void setComputeForward(bool compute);
68 
69  bool computeBackward() const;
70  void setComputeBackward(bool compute);
71 
72  int maximumNumberOfPointsToCompute() const;
73  void setMaximumNumberOfPointsToCompute(int maxNumPoints);
74 
75  double extrapolateRatioLength() const;
76  void setExtrapolateRatioLength(double extrapolateRatioLength);
77 
78  VisualizationStyle visualizationStyle() const;
79  void setVisualizationStyle(VisualizationStyle style);
80 
81  Color3f color() const;
82  void setColor(const Color3f& color);
83 
84  ScaleMode scaleMode() const;
85  double scaleFactor() const;
86  void set3DPrimitiveRadius(ScaleMode mode, double scaleFactor);
87 
88  double pointSamplingNumberOfPulses() const;
89  void setPointSamplingNumberOfPulses(double numPulses);
90 
91  double cometLength() const;
92  void setCometLength(double length);
93 
94  double arrowLength() const;
95  void setArrowLength(double length);
96 
97  double ribbonRelativeWidth() const;
98  void setRibbonRelativeWidth(double relativeSize);
99  double ribbonRelativeThickness() const;
100  void setRibbonRelativeThickness(double relativeSize);
101 
102  double minimumTraceTime(size_t frameIndex) const;
103  double maximumTraceTime(size_t frameIndex) const;
104 
105  bool ignoreClipping() const;
106  void setIgnoreClipping(bool ignore);
107 
108  bool isPrecomputed() const;
109 
110  void setTraceData(size_t frameIndex, const std::vector<ParticleTraceData>& groupDataArr);
111  void traceData(size_t frameIndex, std::vector<ParticleTraceData>* groupDataArr) const;
112 
113 private:
114  CEE_PRIVATE_F(UnstructGridModel);
115  CEE_PRIVATE_IMPL(ParticleTraceGroup);
116  CEE_DISALLOW_COPY_AND_ASSIGN(ParticleTraceGroup);
117 };
118 
119 } // namespace ug
120 } // namespace cee
Draw the particle trace points as spheres. Spheres also have a pulse count for starting particles at ...
Definition: ParticleTraceGroup.h:37
Absolute scaling of vectors.
Definition: ParticleTraceGroup.h:46
Namespace cee contains all functionality and structures under the Core component. ...
Definition: AppComponent.cpp:26
ScaleMode
Scaling mode for particle traces.
Definition: ParticleTraceGroup.h:44
Base class for all reference counted objects with built-in support for intrusive reference counting...
Definition: RefCountedObject.h:34
Class for storing an RGB color triplet.
Definition: Color3f.h:25
Draw the particle trace lines as ribbons.
Definition: ParticleTraceGroup.h:38
Configuration of a group of particle trace objects.
Definition: ParticleTraceGroup.h:31
Draw the particle trace lines as 3D cylinders.
Definition: ParticleTraceGroup.h:36
Draw particle traces as lines.
Definition: ParticleTraceGroup.h:40
UnstructGridModel is a subclass of Model which adds specific model structure and functionality for re...
Definition: UnstructGridModel.h:72
VisualizationStyle
Visualization style for a particle trace.
Definition: ParticleTraceGroup.h:34
Draw the particle trace points as comets. Comets also have a pulse count for starting particles at re...
Definition: ParticleTraceGroup.h:39