Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
igl::geodesic::SurfacePoint Class Reference
+ Inheritance diagram for igl::geodesic::SurfacePoint:
+ Collaboration diagram for igl::geodesic::SurfacePoint:

Public Member Functions

 SurfacePoint ()
 
 SurfacePoint (vertex_pointer v)
 
 SurfacePoint (face_pointer f)
 
 SurfacePoint (edge_pointer e, double a=0.5)
 
 SurfacePoint (base_pointer g, double x, double y, double z, PointType t=UNDEFINED_POINT)
 
void initialize (SurfacePoint const &p)
 
 ~SurfacePoint ()
 
PointType type ()
 
base_pointerbase_element ()
 
double * xyz ()
 
double & x ()
 
double & y ()
 
double & z ()
 
void set (double new_x, double new_y, double new_z)
 
void set (double *data)
 
double distance (double *v)
 
double distance (Point3D *v)
 
void add (Point3D *v)
 
void multiply (double v)
 

Protected Attributes

base_pointer m_p
 

Private Attributes

double m_coordinates [3]
 

Detailed Description

Constructor & Destructor Documentation

◆ SurfacePoint() [1/5]

igl::geodesic::SurfacePoint::SurfacePoint ( )
inline
552 :
553 m_p(NULL)
554 {};
base_pointer m_p
Definition exact_geodesic.cpp:605

◆ SurfacePoint() [2/5]

igl::geodesic::SurfacePoint::SurfacePoint ( vertex_pointer  v)
inline
556 : //set the surface point in the vertex
558 m_p(v)
559 {};
Point3D()
Definition exact_geodesic.cpp:365

◆ SurfacePoint() [3/5]

igl::geodesic::SurfacePoint::SurfacePoint ( face_pointer  f)
inline
561 : //set the surface point in the center of the face
562 m_p(f)
563 {
564 set(0,0,0);
565 add(f->adjacent_vertices()[0]);
566 add(f->adjacent_vertices()[1]);
567 add(f->adjacent_vertices()[2]);
568 multiply(1./3.);
569 };
void multiply(double v)
Definition exact_geodesic.cpp:413
void set(double new_x, double new_y, double new_z)
Definition exact_geodesic.cpp:378
void add(Point3D *v)
Definition exact_geodesic.cpp:406

References igl::geodesic::Point3D::add(), igl::geodesic::MeshElementBase::adjacent_vertices(), igl::geodesic::Point3D::multiply(), and igl::geodesic::Point3D::set().

+ Here is the call graph for this function:

◆ SurfacePoint() [4/5]

igl::geodesic::SurfacePoint::SurfacePoint ( edge_pointer  e,
double  a = 0.5 
)
inline
572 :
573 m_p(e)
574 {
575 double b = 1 - a;
576
579
580 x() = b*v0->x() + a*v1->x();
581 y() = b*v0->y() + a*v1->y();
582 z() = b*v0->z() + a*v1->z();
583 };
vertex_pointer_vector & adjacent_vertices()
Definition exact_geodesic.cpp:346
double & x()
Definition exact_geodesic.cpp:374
double & z()
Definition exact_geodesic.cpp:376
double & y()
Definition exact_geodesic.cpp:375
Vertex * vertex_pointer
Definition exact_geodesic.cpp:280

References igl::geodesic::MeshElementBase::adjacent_vertices(), igl::geodesic::Point3D::x(), igl::geodesic::Point3D::y(), and igl::geodesic::Point3D::z().

+ Here is the call graph for this function:

◆ SurfacePoint() [5/5]

igl::geodesic::SurfacePoint::SurfacePoint ( base_pointer  g,
double  x,
double  y,
double  z,
PointType  t = UNDEFINED_POINT 
)
inline
589 :
590 m_p(g)
591 {
592 set(x,y,z);
593 };

References igl::geodesic::Point3D::set(), igl::geodesic::Point3D::x(), igl::geodesic::Point3D::y(), and igl::geodesic::Point3D::z().

+ Here is the call graph for this function:

◆ ~SurfacePoint()

igl::geodesic::SurfacePoint::~SurfacePoint ( )
inline
600{};

Member Function Documentation

◆ add()

void igl::geodesic::Point3D::add ( Point3D v)
inlineinherited
407 {
408 x() += v->x();
409 y() += v->y();
410 z() += v->z();
411 };

References igl::geodesic::Point3D::x(), igl::geodesic::Point3D::y(), and igl::geodesic::Point3D::z().

Referenced by SurfacePoint().

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

◆ base_element()

◆ distance() [1/2]

double igl::geodesic::Point3D::distance ( double *  v)
inlineinherited
393 {
394 double dx = m_coordinates[0] - v[0];
395 double dy = m_coordinates[1] - v[1];
396 double dz = m_coordinates[2] - v[2];
397
398 return sqrt(dx*dx + dy*dy + dz*dz);
399 };
EIGEN_DEVICE_FUNC const SqrtReturnType sqrt() const
Definition ArrayCwiseUnaryOps.h:152
double m_coordinates[3]
Definition exact_geodesic.cpp:421

References igl::geodesic::Point3D::m_coordinates, and sqrt().

Referenced by igl::geodesic::GeodesicAlgorithmExact::best_first_interval(), igl::geodesic::Point3D::distance(), igl::geodesic::Edge::local_coordinates(), igl::geodesic::GeodesicAlgorithmBase::set_stop_conditions(), and igl::geodesic::GeodesicAlgorithmExact::visible_from_source().

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

◆ distance() [2/2]

double igl::geodesic::Point3D::distance ( Point3D v)
inlineinherited
402 {
403 return distance(v->xyz());
404 };
double distance(double *v)
Definition exact_geodesic.cpp:392

References igl::geodesic::Point3D::distance(), and igl::geodesic::Point3D::xyz().

+ Here is the call graph for this function:

◆ initialize()

void igl::geodesic::SurfacePoint::initialize ( SurfacePoint const p)
inline
596 {
597 *this = p;
598 }

Referenced by igl::geodesic::SurfacePointWithIndex::initialize().

+ Here is the caller graph for this function:

◆ multiply()

void igl::geodesic::Point3D::multiply ( double  v)
inlineinherited
414 {
415 x() *= v;
416 y() *= v;
417 z() *= v;
418 };

References igl::geodesic::Point3D::x(), igl::geodesic::Point3D::y(), and igl::geodesic::Point3D::z().

Referenced by SurfacePoint().

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

◆ set() [1/2]

void igl::geodesic::Point3D::set ( double *  data)
inlineinherited
386 {
387 x() = *data;
388 y() = *(data+1);
389 z() = *(data+2);
390 }
constexpr auto data(C &c) -> decltype(c.data())
Definition span.hpp:195

References igl::geodesic::Point3D::x(), igl::geodesic::Point3D::y(), and igl::geodesic::Point3D::z().

+ Here is the call graph for this function:

◆ set() [2/2]

void igl::geodesic::Point3D::set ( double  new_x,
double  new_y,
double  new_z 
)
inlineinherited
379 {
380 x() = new_x;
381 y() = new_y;
382 z() = new_z;
383 }

References igl::geodesic::Point3D::x(), igl::geodesic::Point3D::y(), and igl::geodesic::Point3D::z().

Referenced by SurfacePoint(), SurfacePoint(), and igl::geodesic::fill_surface_point_structure().

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

◆ type()

PointType igl::geodesic::SurfacePoint::type ( )
inline
602{return m_p ? m_p->type() : UNDEFINED_POINT;};
PointType type()
Definition exact_geodesic.cpp:351
@ UNDEFINED_POINT
Definition exact_geodesic.cpp:331

References m_p, igl::geodesic::MeshElementBase::type(), and igl::geodesic::UNDEFINED_POINT.

Referenced by igl::geodesic::GeodesicAlgorithmExact::best_first_interval(), igl::geodesic::Mesh::closest_vertices(), igl::geodesic::fill_surface_point_double(), igl::geodesic::GeodesicAlgorithmExact::possible_traceback_edges(), and igl::geodesic::GeodesicAlgorithmExact::visible_from_source().

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

◆ x()

double & igl::geodesic::Point3D::x ( )
inlineinherited

◆ xyz()

double * igl::geodesic::Point3D::xyz ( )
inlineinherited
373{return m_coordinates;};

References igl::geodesic::Point3D::m_coordinates.

Referenced by igl::geodesic::Point3D::distance().

+ Here is the caller graph for this function:

◆ y()

double & igl::geodesic::Point3D::y ( )
inlineinherited

◆ z()

double & igl::geodesic::Point3D::z ( )
inlineinherited

Member Data Documentation

◆ m_coordinates

◆ m_p

base_pointer igl::geodesic::SurfacePoint::m_p
protected

Referenced by base_element(), and type().


The documentation for this class was generated from the following file: