OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::AABBMesh::hit_result Class Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/AABBMesh.hpp>

Collaboration diagram for Slic3r::AABBMesh::hit_result:

Public Member Functions

 hit_result (double val=infty())
double distance () const
const Vec3d & direction () const
const Vec3d & source () const
Vec3d position () const
int face () const
bool is_valid () const
bool is_hit () const
const Vec3d & normal () const
bool is_inside () const

Static Public Member Functions

static constexpr double infty ()

Private Member Functions

 hit_result (const AABBMesh &em)

Private Attributes

double m_t = infty()
int m_face_id = -1
const AABBMesh * m_mesh = nullptr
Vec3d m_dir = Vec3d::Zero()
Vec3d m_source = Vec3d::Zero()
Vec3d m_normal = Vec3d::Zero()

Friends

class AABBMesh

Detailed Description

Constructor & Destructor Documentation

◆ hit_result() [1/2]

Slic3r::AABBMesh::hit_result::hit_result ( const AABBMesh & em)
inlineexplicitprivate
81: m_mesh(&em) {}
const AABBMesh * m_mesh
Definition AABBMesh.hpp:73

References AABBMesh, and m_mesh.

Here is the call graph for this function:

◆ hit_result() [2/2]

Slic3r::AABBMesh::hit_result::hit_result ( double val = infty())
inlineexplicit
86: m_t(val) {}
double m_t
Definition AABBMesh.hpp:71

References m_t.

Member Function Documentation

◆ direction()

const Vec3d & Slic3r::AABBMesh::hit_result::direction ( ) const
inline
89{ return m_dir; }
Vec3d m_dir
Definition AABBMesh.hpp:74

References m_dir.

◆ distance()

double Slic3r::AABBMesh::hit_result::distance ( ) const
inline
88{ return m_t; }

References m_t.

◆ face()

int Slic3r::AABBMesh::hit_result::face ( ) const
inline
92{ return m_face_id; }
int m_face_id
Definition AABBMesh.hpp:72

References m_face_id.

Referenced by Slic3r::GUI::MeshRaycaster::closest_hit(), and Slic3r::GUI::RaycastManager::first_hit().

Here is the caller graph for this function:

◆ infty()

constexpr double Slic3r::AABBMesh::hit_result::infty ( )
inlinestaticconstexpr
84{ return std::numeric_limits<double>::infinity(); }

◆ is_hit()

bool Slic3r::AABBMesh::hit_result::is_hit ( ) const
inline
94{ return m_face_id >= 0 && !std::isinf(m_t); }

References m_face_id, and m_t.

Referenced by is_inside().

Here is the caller graph for this function:

◆ is_inside()

bool Slic3r::AABBMesh::hit_result::is_inside ( ) const
inline
101 {
102 return is_hit() && normal().dot(m_dir) > 0;
103 }
bool is_hit() const
Definition AABBMesh.hpp:94
const Vec3d & normal() const
Definition AABBMesh.hpp:96

References is_hit(), m_dir, and normal().

Here is the call graph for this function:

◆ is_valid()

bool Slic3r::AABBMesh::hit_result::is_valid ( ) const
inline
93{ return m_mesh != nullptr; }

References m_mesh.

Referenced by normal().

Here is the caller graph for this function:

◆ normal()

const Vec3d & Slic3r::AABBMesh::hit_result::normal ( ) const
inline
96 {
97 assert(is_valid());
98 return m_normal;
99 }
bool is_valid() const
Definition AABBMesh.hpp:93
Vec3d m_normal
Definition AABBMesh.hpp:76

References is_valid(), and m_normal.

Referenced by Slic3r::GUI::MeshRaycaster::closest_hit(), and is_inside().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ position()

Vec3d Slic3r::AABBMesh::hit_result::position ( ) const
inline
91{ return m_source + m_dir * m_t; }
Vec3d m_source
Definition AABBMesh.hpp:75

References m_dir, m_source, and m_t.

Referenced by Slic3r::GUI::MeshRaycaster::closest_hit(), and Slic3r::GUI::RaycastManager::first_hit().

Here is the caller graph for this function:

◆ source()

const Vec3d & Slic3r::AABBMesh::hit_result::source ( ) const
inline
90{ return m_source; }

References m_source.

◆ AABBMesh

friend class AABBMesh
friend

References AABBMesh.

Referenced by hit_result(), and AABBMesh.

Member Data Documentation

◆ m_dir

Vec3d Slic3r::AABBMesh::hit_result::m_dir = Vec3d::Zero()
private

◆ m_face_id

int Slic3r::AABBMesh::hit_result::m_face_id = -1
private

◆ m_mesh

const AABBMesh* Slic3r::AABBMesh::hit_result::m_mesh = nullptr
private

Referenced by hit_result(), and is_valid().

◆ m_normal

Vec3d Slic3r::AABBMesh::hit_result::m_normal = Vec3d::Zero()
private

◆ m_source

Vec3d Slic3r::AABBMesh::hit_result::m_source = Vec3d::Zero()
private

◆ m_t

double Slic3r::AABBMesh::hit_result::m_t = infty()
private

The documentation for this class was generated from the following file:
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/AABBMesh.hpp