NDEVR
API Documentation
LineOfSight.h
1#pragma once
2#include <NDEVR/Scan.h>
3#if NDEVR_LINE_OF_SIGHT
4#include <NDEVR/DesignObjectLookup.h>
5namespace NDEVR
6{
26
35 class NDEVR_DESIGN_API LineOfSight : public Scan
36 {
37 public:
42 : Scan()
43 {}
44
53 LineOfSight(const Model& parent);
54
59 static const char* TypeName()
60 {
61 return "line_of_sight";
62 }
63
70
78 Model losLayer() const;
79
88
92 void clearMesh();
93
101 bool intersects(SelectionInfo& info, const LineOfSightArgs& args);
102
112 };
113}
114#endif
Stores an angle in an optimized internal format with support for efficient trigonometric operations.
Definition Angle.h:83
A specification of upper and lower bounds in N-dimensions.
Definition Bounds.hpp:54
The equivelent of std::vector but with a bit more control.
Definition Buffer.hpp:58
A core class where all Design Objects including models, materials, and geometries are stored.
A light-weight base class for Log that allows processes to update, without the need for additional in...
void intersectMeshes(LineOfSightArgs &args)
Performs ray-scene intersection for every ray in the scan mesh.
void clearMesh()
Removes all vertices and primitives from the current scan mesh geometry.
bool intersects(SelectionInfo &info, const LineOfSightArgs &args)
Tests whether a single selection ray intersects scene geometry.
static const char * TypeName()
Returns the unique type identifier string for LineOfSight Models.
Definition LineOfSight.h:59
LineOfSight()
Default constructor.
Definition LineOfSight.h:41
LineOfSight(const Model &parent)
Constructs a LineOfSight as a child of the given parent Model.
void createLineOfSight(LineOfSightArgs &args)
Executes a full line-of-sight analysis.
Model losLayer() const
Returns (or creates) the scene layer used to render line-of-sight results.
LineOfSightArgs currentArgs() const
Retrieves the current analysis parameters from the Model's stored metadata and effect transforms.
A core class that represents a node on model hierarchy.
Definition Model.h:292
Responsible for turning a user interaction into a selection within a DesignObjectLookup.
Definition Selector.h:52
A fixed-size array with N dimensions used as the basis for geometric and mathematical types.
Definition Vector.hpp:62
A point in N-dimensional space, used primarily for spatial location information.
Definition Vertex.hpp:44
The primary namespace for the NDEVR SDK.
@ DEGREES
Angle measured in degrees (0 to 360 for a full circle).
Definition Angle.h:58
Configuration parameters used to set up a LineOfSight analysis Model.
Definition LineOfSight.h:15
Buffer< Model > meshes_to_intersect
Mesh/surface Models to include in intersection testing.
Definition LineOfSight.h:22
Buffer< Model > lines_to_intersect
Line/edge Models to include in intersection testing.
Definition LineOfSight.h:21
InfoPipe * log
Optional logging pipe for progress and diagnostic output.
Definition LineOfSight.h:24
Buffer< Model > points_to_intersect
Point-cloud Models to include in intersection testing.
Definition LineOfSight.h:20
Vertex< 3, fltp08 > origin
The 3-D position of the observer (vantage point).
Definition LineOfSight.h:16
Bounds< 1, fltp08 > distance_bounds
Min/max distance range for visibility testing.
Definition LineOfSight.h:17
DesignObjectLookup * lookup
The design object lookup used for scene queries. Must not be null when running.
Definition LineOfSight.h:23
Bounds< 2, Angle< fltp08 > > bounds
Angular bounds (azimuth and elevation) defining the field of view.
Definition LineOfSight.h:18
Vector< 2, Angle< fltp08 > > separation
Angular step size (resolution) between rays in azimuth and elevation.
Definition LineOfSight.h:19