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 Class: ArcShape
7
8 \brief Model class for storing, rendering, and logically modifying a 3D conic arc
9 *-----------------------------------------------------------------------------------------------**/
11 {
12 public:
13 ArcShape(Model& model);
14 //Create an arc from start to end, that also passes through middle_point
15 void setupConicArc(const Angle<fltp08>& start, const Angle<fltp08>& end, fltp08 radius);
16
17 //
19
20 //Create a fit conic arc that best fits the points
22 //Create a fit non-conic arc that best fits the points
24
25 void setRadius(fltp08 radius);
26 void setStartPoint(const Vertex<3, fltp08>& start);
28 void setStartAngle(const Angle<fltp08>& start);
29 void setEndAngle(const Angle<fltp08>& end);
30 void setClockwise(bool clockwise);
31
32 static constexpr const char* TypeName() { return "arc_shape"; }
33 static constexpr const char* DecorationTypeName() { return "arc_shape_decoration"; }
34
35 fltp08 radius() const;
41 //The point between the start and end point of the arc.
43 bool isClockwise() const;
44
45 //Displays radius and label in 3D
46 void displayRadius(bool show);
47
48 //Displays chord and label in 3D
49 void displayChord(bool show);
51 protected:
53
57
58 };
59}
#define NDEVR_DESIGN_API
Definition DLLInfo.h:77
The primary angle storage class for this API. Stores an angle in an optimized format.
Definition StringStream.h:408
Model class for storing, rendering, and logically modifying a 3D conic arc.
Definition ArcShape.h:11
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:33
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:32
The equivelent of std::vector but with a bit more control. The basic array unit of the library.
Definition Buffer.hpp:59
A core class that represents a node on model heirarchy. This node may contain a Geometry or.
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:146