Class AIAC::GOCircle¶
Inherits the following classes: AIAC::GOPrimitive
Public Functions¶
| Type | Name |
|---|---|
| glm::vec3 | ClosestPointToPoint (glm::vec3 point) Get the closest point to the circle from a given point. |
| GOPoint | GetCenter () const |
| glm::vec4 | GetEdgeColor () const |
| glm::vec3 | GetNormal () const |
| float | GetRadius () const |
| virtual void | InitGLObject () |
| void | SetCenter (GOPoint center) |
| void | SetEdgeColor (glm::vec4 edgeColor) |
| void | SetNormal (glm::vec3 normal) |
| void | SetRadius (float radius) |
| virtual void | SetValueFrom (const std::shared_ptr< GOPrimitive > & ptrGO) |
| virtual void | Transform (const glm::mat4x4 & transformMat) |
| virtual | ~GOCircle () = default |
Public Functions inherited from AIAC::GOPrimitive¶
| Type | Name |
|---|---|
| void | ClearGLObject () |
| void | Draw () |
| GOPrimitive (bool isVisible=true, glm::vec4 color=glm::vec4(0, 0, 0, 1.0)) | |
| uint32_t | GenerateId () |
| glm::vec4 | GetColor () const |
| uint32_t | GetId () |
| std::string | GetName () const |
| bool | GetState () |
| GOTypeFlags | GetType () |
| bool | GetVisibility () |
| float | GetWeight () const |
| virtual void | InitGLObject () |
| bool | IsVisible () const |
| void | SetColor (glm::vec4 color) |
| void | SetName (std::string name) |
| void | SetState (bool state) |
| virtual void | SetValueFrom (const std::shared_ptr< GOPrimitive > & ptrGO) |
| void | SetVisibility (bool isVisible) |
| int | SetWeight (float weight) |
| virtual void | Transform (const glm::mat4x4 & transformMat) |
| virtual void | Translate (const glm::vec3 & translation) |
| virtual | ~GOPrimitive () = default |
Public Static Functions¶
| Type | Name |
|---|---|
| std::shared_ptr< GOCircle > | Add (GOPoint center, float radius) Add GOCircle to the scene. |
| std::shared_ptr< GOCircle > | Add (GOPoint center, glm::vec3 normal, float radius) |
| float | ClosestDistanceFromLineToCircle (std::shared_ptr< GOLine > ptrLine, const glm::vec3 & circleCenter, float circleRadius) This function calculates the closest distance from a line, defined by a point and a direction, to a circle in 3D space. If the line intersects the circle, the function returns 0, indicating the minimum distance is inside the circle. |
| std::pair< float, std::pair< glm::vec3, glm::vec3 > > | ClosestDistanceFromSegmentToCircle (std::shared_ptr< GOLine > ptrLine, const glm::vec3 & circleCenter, float circleRadius) This function calculates the closest distance from a segment. defined by two points, to a circle in 3D space. |
| glm::vec3 | ClosestPointToCircle (const glm::vec3 & point, const glm::vec3 & circleCenter, const glm::vec3 & circleNormal, float circleRadius) < Static geometry functions |
| std::shared_ptr< GOCircle > | Get (const uint32_t & id) |
| std::vector< std::shared_ptr< GOCircle > > | GetAll () |
Public Static Functions inherited from AIAC::GOPrimitive¶
| Type | Name |
|---|---|
| void | Remove (const uint32_t & id) |
| void | Remove (const std::shared_ptr< GOPrimitive > & ptrGO) |
Protected Attributes inherited from AIAC::GOPrimitive¶
| Type | Name |
|---|---|
| glm::vec4 | m_Color |
| std::vector< std::shared_ptr< GLObject > > | m_GLObjects |
| uint32_t | m_Id |
| bool | m_IsVisible |
| std::string | m_Name |
| bool | m_State |
| GOTypeFlags | m_Type |
| float | m_Weight = GOWeight::Default |
Public Functions Documentation¶
function ClosestPointToPoint¶
Get the closest point to the circle from a given point.
Parameters:
pointthe point
Returns:
glm::vec3
function GetCenter¶
function GetEdgeColor¶
function GetNormal¶
function GetRadius¶
function InitGLObject¶
Implements AIAC::GOPrimitive::InitGLObject
function SetCenter¶
function SetEdgeColor¶
function SetNormal¶
function SetRadius¶
function SetValueFrom¶
Implements AIAC::GOPrimitive::SetValueFrom
function Transform¶
Implements AIAC::GOPrimitive::Transform
function ~GOCircle¶
Public Static Functions Documentation¶
function Add [½]¶
Add GOCircle to the scene.
Parameters:
centerCenter of the circle.radiusRadius of the circle.
Returns:
uint32_t Id of the circle.
function Add [2/2]¶
static std::shared_ptr< GOCircle > AIAC::GOCircle::Add (
GOPoint center,
glm::vec3 normal,
float radius
)
function ClosestDistanceFromLineToCircle¶
This function calculates the closest distance from a line, defined by a point and a direction, to a circle in 3D space. If the line intersects the circle, the function returns 0, indicating the minimum distance is inside the circle.
static inline float AIAC::GOCircle::ClosestDistanceFromLineToCircle (
std::shared_ptr< GOLine > ptrLine,
const glm::vec3 & circleCenter,
float circleRadius
)
Parameters:
ptrLinethe pointer to the line.circleCenterThe center of the circle.circleRadiusThe radius of the circle.
Returns:
The closest distance from the line to the circle
function ClosestDistanceFromSegmentToCircle¶
This function calculates the closest distance from a segment. defined by two points, to a circle in 3D space.
static inline std::pair< float, std::pair< glm::vec3, glm::vec3 > > AIAC::GOCircle::ClosestDistanceFromSegmentToCircle (
std::shared_ptr< GOLine > ptrLine,
const glm::vec3 & circleCenter,
float circleRadius
)
Parameters:
ptrLinethe pointer to the line.circleCenterThe center of the circle.circleRadiusThe radius of the circle.
Returns:
The closest distance from the line to the circle and the closest point on the line and the circle
function ClosestPointToCircle¶
< Static geometry functions
static inline glm::vec3 AIAC::GOCircle::ClosestPointToCircle (
const glm::vec3 & point,
const glm::vec3 & circleCenter,
const glm::vec3 & circleNormal,
float circleRadius
)
Calculates the closest point on a circle to a given point in 3D.
Parameters:
pointThe point from which to find the closest point on the circle.circleCenterThe center of the circle.circleNormalThe normal vector of the circle's plane.circleRadiusThe radius of the circle.
Returns:
The closest point on the circle to the given point.
function Get¶
function GetAll¶
The documentation for this class was generated from the following file src/AIAC/GOSys/GOPrimitive.h