API Documentation
Loading...
Searching...
No Matches
LineOfSight.h
Go to the documentation of this file.
1#pragma once
2#include <NDEVR/Scan.h>
3#if NDEVR_LINE_OF_SITE
4#include <NDEVR/DesignObjectLookup.h>
5namespace NDEVR
6{
7 struct LineOfSightArgs
8 {
9 Vertex<3, fltp08> origin = Vertex<3, fltp08>(0.0);
10 Bounds<1, fltp08> distance_bounds = Bounds<1, fltp08>(0.0, 500.0);
11 Bounds<2, Angle<sint04>> bounds = Bounds<2, Angle<sint04>>(Vector<2, Angle<sint04>>(Angle(0)), Vector<2, Angle<sint04>>(Angle<sint04>(DEGREES, 360.0), Angle<sint04>(DEGREES, 180.0)));
12 Vector<2, Angle<sint04>> separation = Vector<2, Angle<sint04>>(Angle<sint04>(DEGREES, 0.5));
13 Buffer<Model> points_to_intersect;
14 Buffer<Model> lines_to_intersect;
15 Buffer<Model> meshes_to_intersect;
16 DesignObjectLookup* lookup = nullptr;
17 ProgressInfo* log = nullptr;
18 };
19
20 class NDEVR_DESIGN_API LineOfSight : public Scan
21 {
22 public:
23 LineOfSight()
24 : Scan()
25 {}
26 LineOfSight(const Model& parent);
27 static const char* TypeName()
28 {
29 return "line_of_sight";
30 }
31 LineOfSightArgs currentArgs() const;
32 Model losLayer() const;
33 void createLineOfSite(LineOfSightArgs& args);
34 void clearMesh();
35 bool intersects(SelectionInfo& info, const LineOfSightArgs& args);
36 void intersectMeshes(LineOfSightArgs& args);
37 };
38}
39#endif
#define NDEVR_DESIGN_API
Definition DLLInfo.h:77
Definition ACIColor.h:37