API Documentation
Loading...
Searching...
No Matches
OrientationOperations.h
Go to the documentation of this file.
1#pragma once
2#include "DLLInfo.h"
3#include <NDEVR/Model.h>
4namespace NDEVR
5{
6 class DesignObjectLookup;
7 /**--------------------------------------------------------------------------------------------------
8 \brief Allows for easy manipulation of a Models orientation.
9 *-----------------------------------------------------------------------------------------------**/
11 {
12 public:
14 {
15 e_none
16 , e_specified_angle
17 , e_magnetic_angle
18 , e_two_point_location
19 , e_same_as_model
20 , e_inverse_of_model
21 };
23 explicit OrientationOperations(uint01 dimension, const Model& model);
24
25
26 void clearOrientation(const void* lock = nullptr);
27 void setSpecifiedAngle(const Angle<fltp08>& azimuth, const void* lock = nullptr);
28 void setOffsetAngle(const Angle<fltp08>& azimuth, const void* lock = nullptr);
29 void setMagneticAngle(const Angle<fltp08>& magnetic_angle, const void* lock = nullptr);
30 void setFrontLocation(const Vertex<3, fltp08>& front_location, const void* lock = nullptr);
31 void setBackLocation(const Vertex<3, fltp08>& back_location, const void* lock = nullptr);
32 void setReferencePoints(const Vertex<3, fltp08>& location_a, const Vertex<3, fltp08>& location_b, const void* lock = nullptr);
33 void setReferenceModels(const UUID& front_reference, const UUID& back_reference, const void* lock = nullptr);
34 void setMirrorFromAzimuth(const UUID& reference, const void* lock = nullptr);
35 void setBackReferenceModel(const UUID& reference, bool is_relative, const void* lock = nullptr);
36 void setFrontReferenceModel(const UUID& reference, bool is_relative, const void* lock = nullptr);
41 bool isRelative() const;
46 void setAziType(const AzimuthType& type);
48 void updateAzimuth(const void* lock = nullptr);
50 String prefix() const;
51 private:
52 void _setAzimuth(const Angle<fltp08>& azimuth, const void* lock = nullptr);
53 const uint01 m_dimension;
54 };
55}
#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
A core class where all Design Objects including models, materials, and geometries are stored.
Definition DesignObjectLookup.h:65
A core class that represents a node on model heirarchy. This node may contain a Geometry or.
Definition Model.h:58
Allows for easy manipulation of a Models orientation.
Definition OrientationOperations.h:11
Angle< fltp08 > magneticAngle() const
void setOffsetAngle(const Angle< fltp08 > &azimuth, const void *lock=nullptr)
AzimuthType
Definition OrientationOperations.h:14
void setBackReferenceModel(const UUID &reference, bool is_relative, const void *lock=nullptr)
void setReferenceModels(const UUID &front_reference, const UUID &back_reference, const void *lock=nullptr)
void setFrontReferenceModel(const UUID &reference, bool is_relative, const void *lock=nullptr)
void clearOrientation(const void *lock=nullptr)
void setReferencePoints(const Vertex< 3, fltp08 > &location_a, const Vertex< 3, fltp08 > &location_b, const void *lock=nullptr)
AzimuthType aziType() const
void setMirrorFromAzimuth(const UUID &reference, const void *lock=nullptr)
void setFrontLocation(const Vertex< 3, fltp08 > &front_location, const void *lock=nullptr)
void setAziType(const AzimuthType &type)
void setSpecifiedAngle(const Angle< fltp08 > &azimuth, const void *lock=nullptr)
Angle< fltp08 > offsetAngle() const
void setMagneticAngle(const Angle< fltp08 > &magnetic_angle, const void *lock=nullptr)
void updateAzimuth(const void *lock=nullptr)
Angle< fltp08 > specifiedAngle() const
void updateAzimuth(DesignObjectLookup *lookup)
OrientationOperations(uint01 dimension, const Model &model)
Vertex< 3, fltp08 > aziLocationB() const
void setBackLocation(const Vertex< 3, fltp08 > &back_location, const void *lock=nullptr)
Vertex< 3, fltp08 > aziLocationA() const
The core String class for the software.
Definition String.h:47
A universally unique identifier (UUID) is a 128-bit number used to identify information in computer s...
Definition UUID.h:62
A vertex or point. A specific type of Vector used primarily for spacial location information.
Definition Vertex.hpp:48
Definition ACIColor.h:37
uint8_t uint01
-Defines an alias representing a 1 byte, unsigned integer -Can represent exact integer values 0 throu...
Definition BaseValues.hpp:78