xmsgridtrace  1.0
XmGridTrace.h
Go to the documentation of this file.
1 #pragma once
2 //------------------------------------------------------------------------------
8 //------------------------------------------------------------------------------
9 
10 //----- Included files ---------------------------------------------------------
11 
12 // 3. Standard library headers
13 
14 // 4. External library headers
15 
16 // 5. Shared code headers
19 #include <xmscore/misc/DynBitset.h>
20 #include <xmscore/stl/vector.h>
22 
23 //----- Forward declarations ---------------------------------------------------
24 
25 //----- Namespace declaration --------------------------------------------------
26 
28 namespace xms
29 {
30 //----- Forward declarations ---------------------------------------------------
31 class XmUGrid;
32 class dyn_bitset;
33 
34 //----- Constants / Enumerations -----------------------------------------------
35 
36 //----- Structs / Classes ------------------------------------------------------
37 
40 {
41 public:
44  static BSHP<XmGridTrace> New(BSHP<XmUGrid> a_ugrid);
45 
47  virtual ~XmGridTrace();
48 
51  virtual double GetVectorMultiplier() const = 0;
54  virtual void SetVectorMultiplier(const double a_vectorMultiplier) = 0;
55 
58  virtual double GetMaxTracingTime() const = 0;
61  virtual void SetMaxTracingTime(const double a_maxTracingTime) = 0;
62 
65  virtual double GetMaxTracingDistance() const = 0;
68  virtual void SetMaxTracingDistance(const double a_maxTracingDistance) = 0;
69 
72  virtual double GetMinDeltaTime() const = 0;
75  virtual void SetMinDeltaTime(const double a_minDeltaTime) = 0;
76 
79  virtual double GetMaxChangeDistance() const = 0;
82  virtual void SetMaxChangeDistance(const double a_maxChangeDistance) = 0;
83 
86  virtual double GetMaxChangeVelocity() const = 0;
89  virtual void SetMaxChangeVelocity(const double a_maxChangeVelocity) = 0;
90 
93  virtual double GetMaxChangeDirectionInRadians() const = 0;
96  virtual void SetMaxChangeDirectionInRadians(const double a_maxChangeDirection) = 0;
97 
106  virtual void AddGridScalarsAtTime(const VecPt3d& a_scalars,
107  DataLocationEnum a_scalarLoc,
108  xms::DynBitset& a_activity,
109  DataLocationEnum a_activityLoc,
110  double a_time) = 0;
111 
117  virtual void TracePoint(const Pt3d& a_pt,
118  const double& a_ptTime,
119  VecPt3d& a_outTrace,
120  VecDbl& a_outTimes) = 0;
121 
124  virtual std::string GetExitMessage() = 0;
125 
126 private:
128 
129 protected:
130  XmGridTrace();
131 };
132 
133 //----- Function prototypes ----------------------------------------------------
134 
135 } // namespace xms
virtual void SetVectorMultiplier(const double a_vectorMultiplier)=0
Sets the vector multiplier.
virtual double GetMaxChangeDistance() const =0
Returns the max change distance.
virtual void SetMaxChangeDistance(const double a_maxChangeDistance)=0
Sets the max change distance.
XmGridTrace()
Empty constructer for abstract class.
std::vector< double > VecDbl
virtual double GetMaxTracingTime() const =0
Returns the Max Tracing Time.
virtual void SetMinDeltaTime(const double a_minDeltaTime)=0
Sets the min delta time.
virtual double GetMaxChangeDirectionInRadians() const =0
Returns the max change in direction in radians.
virtual double GetVectorMultiplier() const =0
Returns the vector multiplier.
DataLocationEnum
virtual double GetMaxChangeVelocity() const =0
Returns the max change in velcoity.
virtual double GetMinDeltaTime() const =0
Returns the min delta time.
virtual void AddGridScalarsAtTime(const VecPt3d &a_scalars, DataLocationEnum a_scalarLoc, xms::DynBitset &a_activity, DataLocationEnum a_activityLoc, double a_time)=0
Assigns velocity vectors to each point or cell for a time step, keeping the previous step...
#define XM_DISALLOW_COPY_AND_ASSIGN(TypeName)
virtual ~XmGridTrace()
Deconstruct XmGridTrace.
virtual void SetMaxTracingDistance(const double a_maxTracingDistance)=0
Sets the max tracing distance.
XMS Namespace.
static BSHP< XmGridTrace > New(BSHP< XmUGrid > a_ugrid)
Construct XmGridTrace for a UGrid.
virtual double GetMaxTracingDistance() const =0
Returns the Max Tracing Distance.
Traces points in an XmUGrid following a vector dataset.
Definition: XmGridTrace.h:39
virtual void SetMaxChangeDirectionInRadians(const double a_maxChangeDirection)=0
Sets the max change in direction in radians.
virtual std::string GetExitMessage()=0
returns a message describing what caused trace to exit
virtual void SetMaxTracingTime(const double a_maxTracingTime)=0
Sets the max tracing time.
virtual void TracePoint(const Pt3d &a_pt, const double &a_ptTime, VecPt3d &a_outTrace, VecDbl &a_outTimes)=0
Runs the Grid Trace for a point.
virtual void SetMaxChangeVelocity(const double a_maxChangeVelocity)=0
Sets the max change in velocity.
std::vector< Pt3d > VecPt3d