VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtDynamicTerrainLine.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvUtil/vrvUtil.h>
13 
15 #include <matrix/vlVector.h>
16 #include <vector>
17 
18 namespace makVrv
19 {
25  {
26  public:
28  class Intersector : public Visitor
29  {
30  public:
31 
33  explicit Intersector(const DtDynamicTerrainLine& line);
34 
36  bool value() const;
38  virtual void visitSphere(const DtVector& center, double radius);
40  void visitLine(const std::vector<DtVector>& vertices);
42  void visitUnion(const DtDynamicTerrainGeometry& left, const DtDynamicTerrainGeometry& right);
44  void visitIntersection(const DtDynamicTerrainGeometry& left, const DtDynamicTerrainGeometry& right);
45 
46  protected:
49  };
50 
51  public:
52 
54  DtDynamicTerrainLine(const std::vector<DtVector>& vertices);
55 
57  virtual ~DtDynamicTerrainLine();
58 
59  // No default CTOR
60  DtDynamicTerrainLine() = delete;
61 
62  //Not copyable
63  DtDynamicTerrainLine(const DtDynamicTerrainLine& copy) = delete;
64 
65  //Not assignable
66  DtDynamicTerrainLine& operator=(const DtDynamicTerrainLine& copy) = delete;
67 
68  public:
69 
71  const DtVector& operator[](std::size_t index) const;
72 
74  virtual DtDynamicTerrainGeometry* clone() const;
75 
77  virtual const std::vector<DtVector>& vertices() const;
78 
80  virtual bool intersects(const DtDynamicTerrainGeometry& geometry) const;
81 
83  virtual double distanceTo(const DtVector& point) const;
84 
86  virtual bool isFinite() const;
87 
89  virtual void accept(Visitor& visitor) const;
90 
91  protected:
92  std::vector<DtVector> myVertices;
93  };
94 }
#define DT_DLL_VRVUTIL
Definition: vrvUtil.h:34
Represents (possibly infinite) area of space.
Definition: DtDynamicTerrainGeometry.h:20
const DtDynamicTerrainLine & myLine
Definition: DtDynamicTerrainLine.h:47
Contains DLL export macros.
Contains makVrv::DtDynamicTerrainGeometry class.
std::vector< DtVector > myVertices
Definition: DtDynamicTerrainLine.h:92
DtDynamicTerrainLine is used to represent a collection of vertices for a linear dynamic terrain objec...
Definition: DtDynamicTerrainLine.h:24
This class is used by the DtDynamicTerrainWorld to determine intersections with this geometry type...
Definition: DtDynamicTerrainLine.h:28
bool myCurrentValue
Definition: DtDynamicTerrainLine.h:48
Visitor for search through geometries.
Definition: DtDynamicTerrainGeometry.h:24
DT_DLL_vrfutil bool intersects(const DtVector &localPoint1, const DtVector &localPoint2, const DtLocalVertexList &localVertexList, const Coordinate_System &coordinateSystem)
Returns true if the line segment localPoint1-localPoint2 intersects any line segment in localVert...

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)