VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vectorObstruction.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
8 #include <matrix/vlVector.h>
9 
10 #include "geometry/extent.h"
11 #include <matrix/3dBoundingVolume.h>
12 #include <matrix/vlDcm.h>
13 
14 
15 class DtPoint;
16 class DtString;
17 class DtNetworkElement;
18 class DtNetworkNode;
19 class DtNetworkSegment;
20 class Coordinate_System;
21 
24 {
25 
26 public:
28  DtVectorObstruction(const DtNetworkNode& networkNode,
29  const Coordinate_System& coordSys, bool extrudeInZ);
30 
31  DtVectorObstruction(const DtNetworkSegment& networkSegment,
32  const Coordinate_System& coordSys, bool extrudeInZ);
33 
35  virtual ~DtVectorObstruction();
36 
48 
50  DtVectorObstruction& operator=(const DtVectorObstruction& original);
51 
53  bool operator==(const DtVectorObstruction& obstruction) const;
54 
56  bool operator!=(const DtVectorObstruction& obstruction) const;
57 
58 
61  bool valid() const;
62 
63  const DtNetworkElement* networkElement() const;
64 
65  void setNetworkElement(const DtNetworkNode& networkNode,
66  const Coordinate_System& coordSys, bool extrudeInZ = false);
67  void setNetworkElement(const DtNetworkSegment& networkSegment,
68  const Coordinate_System& coordSys, bool extrudeInZ = false);
69 
70  DtVector location() const;
71 
72  DtExtent& extent();
73  const DtExtent& extent() const;
74 
77  virtual void expandExtent(DtExtent& extent) const;
78 
79  DtVector velocity() const;
80 
81  Dt3dBoundingVolume& boundingVolume();
82  const Dt3dBoundingVolume& boundingVolume() const;
83 
84  DtDcm& localOrientationMatrix();
85  const DtDcm& localOrientationMatrix() const;
86 
87  bool testInvariant() const;
88 
89 protected:
90  void initializeExtent(const DtPoint& location, double length, double width,
91  double height, DtExtent& extent) const;
92 
93  void initializeExtent(const DtPoint& location1, const DtPoint& location2,
94  double length, double width, double height, DtExtent& extent) const;
95 
98  Dt3dBoundingVolume myBoundingVolume;
101 
103 };
const DtNetworkElement * myVectorNetworkElement
Definition: vectorObstruction.h:96
Dt3dBoundingVolume myBoundingVolume
Definition: vectorObstruction.h:98
DT_DLL_terrainCS bool operator==(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
Definition: networkSegment.h:26
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
Definition: networkNode.h:38
Definition: coordSystem.h:54
DtVector myLocation
Definition: vectorObstruction.h:99
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtDcm myLocalOrientationMatrix
Definition: vectorObstruction.h:97
Contains the declaration of the DtExtent class.
DT_DLL_VRVCORE double length(const makVrv::DtCoordinateSystem &, const std::vector< DtVector > &vertices)
Returns the total distance of a segmented line defined by the provided vector of vertices. Coordinates are in local database coordinates. The coordinate system is used to convert between the local database coordinates and geocentric. All distance is in 2D – the Z value is ignored.
DtExtent myExtent
Definition: vectorObstruction.h:102
DT_DLL_terrainCS bool operator!=(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
Definition: vectorObstruction.h:23
Definition: networkElement.h:38
DtVector myVelocity
Definition: vectorObstruction.h:100
Definition: point.h:34

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)