API Documentation
Loading...
Searching...
No Matches
ArcShape.h
Go to the documentation of this file.
1#pragma once
2#include <NDEVR/Model.h>
3namespace NDEVR
4{
5 /**--------------------------------------------------------------------------------------------------
6 \brief Model class for storing, rendering, and logically modifying a 3D conic arc
7 **/
9 {
10 public:
11 ArcShape(Model& model);
12 //Create an arc from start to end, that also passes through middle_point
13 void setupConicArc(const Angle<fltp08>& start, const Angle<fltp08>& end, fltp08 radius);
14
15 //
17
18 //Create a fit conic arc that best fits the points
20 //Create a fit non-conic arc that best fits the points
22
23 void setRadius(fltp08 radius);
24 void setStartPoint(const Vertex<3, fltp08>& start);
26 void setStartAngle(const Angle<fltp08>& start);
27 void setEndAngle(const Angle<fltp08>& end);
28 void setClockwise(bool clockwise);
29
30 static constexpr const char* TypeName() { return "arc_shape"; }
31 static constexpr const char* DecorationTypeName() { return "arc_shape_decoration"; }
32
33 fltp08 radius() const;
39 //The point between the start and end point of the arc.
41 bool isClockwise() const;
42
43 //Displays radius and label in 3D
44 void displayRadius(bool show);
45
46 //Displays chord and label in 3D
47 void displayChord(bool show);
49 protected:
51
55
56 };
57}
#define NDEVR_DESIGN_API
Definition DLLInfo.h:55
The primary angle storage class for this API. Stores an angle in an optimized format.
Definition StringStream.h:540
Model class for storing, rendering, and logically modifying a 3D conic arc.
Definition ArcShape.h:9
void setStartPoint(const Vertex< 3, fltp08 > &start)
Vertex< 3, fltp08 > startPoint() const
void setEndAngle(const Angle< fltp08 > &end)
void createDecoration()
Model decorationModel()
Angle< fltp08 > endAngle() const
void updateGeometry()
fltp08 radius() const
void createBestFitConicArc(const Buffer< Vertex< 3, fltp08 > > &points)
void displayChord(bool show)
void setStartAngle(const Angle< fltp08 > &start)
Vertex< 3, fltp08 > apex() const
static constexpr const char * DecorationTypeName()
Definition ArcShape.h:31
ArcShape(Model &model)
Model chordModel()
void setClockwise(bool clockwise)
void createBestFitArc(const Buffer< Vertex< 3, fltp08 > > &points)
Vertex< 3, fltp08 > endPoint() const
bool isClockwise() const
Model radiusModel()
void setupConicArc(const Angle< fltp08 > &start, const Angle< fltp08 > &end, fltp08 radius)
Angle< fltp08 > startAngle() const
void setRadius(fltp08 radius)
void displayRadius(bool show)
void setupConicArc(Vertex< 3, fltp08 > start, Vertex< 3, fltp08 > end, Vertex< 3, fltp08 > bridge)
void setEndPoint(const Vertex< 3, fltp08 > &end)
fltp08 chordLength() const
static constexpr const char * TypeName()
Definition ArcShape.h:30
The equivelent of std::vector but with a bit more control. The basic array unit of the library.
Definition Buffer.hpp:56
A core class that represents a node on model heirarchy. This node may contain a Geometry or one or mo...
Definition Model.h:58
A vertex or point. A specific type of Vector used primarily for spacial location information.
Definition Vertex.hpp:48
Definition ACIColor.h:37
double fltp08
Defines an alias representing an 8 byte floating-point number.
Definition BaseValues.hpp:149