xc
Public Member Functions | Protected Member Functions | Friends | List of all members
Line3d Class Reference

Line in a three-dimensional space. More...

#include <Line3d.h>

Inheritance diagram for Line3d:
Inheritance graph
[legend]
Collaboration diagram for Line3d:
Collaboration graph
[legend]

Public Member Functions

 Line3d (void)
 Default constructor.
 
 Line3d (const CGLine_3 &r)
 Constructor. More...
 
 Line3d (const Pos3d &, const Pos3d &)
 Constructor. More...
 
 Line3d (const Pos3d &, const Dir3d &)
 Constructor. More...
 
 Line3d (const Pos3d &, const Vector3d &)
 Constructor. More...
 
 Line3d (const Plane &, const Plane &)
 Constructor.
 
 Line3d (const Line3dParametricForm &param)
 Constructs the line from its parametric equation.
 
 Line3d (const GeomObj3d::list_Pos3d &lp)
 Constructs the line from the given point list (least squares method). More...
 
 Line3d (const boost::python::list &lp)
 Constructs the line from the given point list (least squares method). More...
 
virtual GeomObjgetCopy (void) const
 
void swap (void)
 @ brief Swaps the line orientation.
 
void TwoPoints (const Pos3d &p1, const Pos3d &p2)
 
virtual GEOM_FT GetMax (unsigned short int) const
 Return the maximum value of the i-th coordinate.
 
virtual GEOM_FT GetMin (unsigned short int i) const
 Return the minimum value of the i-th coordinate.
 
const CGLine_3 & ToCGAL (void) const
 
Pos3d Point (const int &i=0) const
 
double getLambda (unsigned short int i, const double &d, const Vector3d &i_) const
 
virtual GEOM_FT getLambda (const Pos3d &) const
 Return the length along the line until the given point is reached: p= Point(0)+lambda*VDir()
 
Pos3d Projection (const Pos3d &) const
 Return the orthogonal projection onto the line. More...
 
Vector3d Projection (const Vector3d &) const
 Return the projection onto the line. More...
 
Line3d XY3DProjection (void) const
 Return the projection onto the XY plane.
 
Line3d XZ3DProjection (void) const
 Return the projection onto the XZ plane.
 
Line3d YZ3DProjection (void) const
 Return the projection onto the YZ plane.
 
Line2d XY2DProjection (void) const
 Return the projection onto the XY plane.
 
Line2d XZ2DProjection (void) const
 Return the projection onto the XZ plane.
 
Line2d YZ2DProjection (void) const
 Return the projection onto the YZ plane.
 
GEOM_FT getSlope (void) const
 Return the angle or the line with respect to XY plane.
 
Line3dParametricForm GetParametricas (void) const
 Returns the parametric equations of the line as: v[0]: point in the line. More...
 
Pos3d PtoParametricas (const GEOM_FT &) const
 Return a point at a distance lambda from its origin.
 
void Parametricas (const Line3dParametricForm &)
 Defines the line from its parametric equation.
 
virtual bool In (const Pos3d &p, const double &tol=0.0) const
 Return true if the point is on the line.
 
virtual GEOM_FT dist2 (const Pos3d &p) const
 Return the squared distance from the point to the line.
 
virtual GEOM_FT dist (const Pos3d &p) const
 Return the squared distance from the point to the line.
 
Plane Perpendicular (const Pos3d &p) const
 Return the plane normal to r that passes through p.
 
void Put (const Pos3d &p1, const Pos3d &p2)
 Set the points that define the line.
 
bool isParallel (const Line3d &r) const
 Return true if the lines are parallel.
 
bool intersects (const Line3d &r2) const
 Return true if the lines intersect.
 
GeomObj3d::list_Pos3d getIntersection (unsigned short int, const double &) const
 Return the intersection of the line with the plane defined by the equation coord_i= d. More...
 
GeomObj3d::list_Pos3d getIntersection (const Line3d &r2, const double &tol=sqrt_mchne_eps_dbl) const
 Return the point intersection with the line, if it doesn't exists it returns an empty list. More...
 
virtual GEOM_FT getLength (void) const
 Return the length of the object.
 
virtual Pos3d getCenterOfMass (void) const
 
Dir3d GetDir (void) const
 
Vector3d VDir (void) const
 Return the direction vector.
 
virtual Vector3d getIVector (void) const
 Returns a vector in the direction of the local X axis. More...
 
virtual Vector3d getJVector (void) const
 Returns a vector in the direction of the local Y axis. More...
 
virtual Vector3d getKVector (void) const
 Returns a vector in the direction of the local Z axis.
 
double getAngle (const Vector3d &v) const
 
GEOM_FT linearLeastSquaresFitting (const GeomObj3d::list_Pos3d &lp)
 Compute the line that best suits the point cloud.
 
GEOM_FT linearLeastSquaresFittingPy (const boost::python::list &lp)
 Compute the line that best suits the point cloud.
 
virtual GEOM_FT Ix (void) const
 Moment of inertia with respect to the local axis x passing through the center of mass. More...
 
virtual GEOM_FT Iy (void) const
 Moment of inertia with respect to the local axis y passing through the center of mass. More...
 
virtual GEOM_FT Iz (void) const
 Moment of inertia with respect to the local axis z passing through the center of mass. More...
 
boost::python::dict getPyDict (void) const
 Return a Python dictionary with the object members values.
 
void setPyDict (const boost::python::dict &)
 Set the values of the object members from a Python dictionary.
 
void Print (std::ostream &os) const
 Print stuff.
 
- Public Member Functions inherited from Linear3d
virtual unsigned short int Dimension (void) const
 Return the dimension of the object 0, 1, 2 or 3.
 
virtual GEOM_FT getArea (void) const
 Return the object area.
 
virtual GEOM_FT getVolume (void) const
 Return the volume of the object.
 
std::vector< std::pair< Pos3d, GEOM_FT > > sortPointsAlong (const GeomObj3d::list_Pos3d &) const
 Return the given points sorted by its parameter along the line (assuming they are on the line) in the form of a list of (position, lambda) pairs. More...
 
boost::python::list sortPointsAlongPy (const boost::python::list &) const
 Return the given points sorted by its parameter along the line (assuming they are on the line) in the form of a list of (position, lambda) pairs. More...
 
- Public Member Functions inherited from GeomObj3d
GEOM_FT GetXMax (void) const
 
GEOM_FT GetYMax (void) const
 
GEOM_FT GetZMax (void) const
 
GEOM_FT GetXMin (void) const
 
GEOM_FT GetYMin (void) const
 
GEOM_FT GetZMin (void) const
 
virtual void XProjection (void)
 
virtual void YProjection (void)
 
virtual void ZProjection (void)
 
Pos3d getPMax (void) const
 
Pos3d getPMin (void) const
 
BND3d Bnd (void) const
 Return the boundary of the object.
 
virtual bool Out (const Pos3d &p, const double &tol=0.0) const
 Return true if the point lies outside the object.
 
virtual GEOM_FT getCenterOfMassFactor (void) const
 Return the factor used for the computation of the center of mass (1.0 by default). More...
 
virtual GEOM_FT Pxy (void) const
 
virtual GEOM_FT Pxz (void) const
 
virtual GEOM_FT Pyz (void) const
 
GEOM_FT I (const unsigned short int &i, const unsigned short int &j) const
 
virtual GEOM_FT IArea (void) const
 
GEOM_FT I (const Pos3d &O, const Vector3d &e) const
 Return el moment of inertia with respect to the axis that passes through O with the direction of e. More...
 
GEOM_FT I (const Line3d &r) const
 Return el moment of inertia with respect to the argument line.
 
GEOM_FT I (const unsigned short int i, const unsigned short int j, const Pos3d &o) const
 Return el moment of inertia (i,j) respect to the axis parallel to i through o. More...
 
GEOM_FT IO (const Pos3d &o) const
 Return the polar moment of inertia with respect to the point o.
 
FT_matrix I (void) const
 Return the inertia tensor with respect to the center of mass of the object. More...
 
FT_matrix I (const Pos3d &o) const
 Return the inertia tensor with respect to the point o.
 
- Public Member Functions inherited from GeomObj
 GeomObj (void)
 Constructor.
 
virtual bool hasCenterOfMass (void) const
 Return true if the object has a center of mass.
 
GEOM_FT getCenterOfMassArea (void) const
 Return the dimension used to compute the center of mass, as follows: More...
 
virtual void Plot (Plotter &) const
 
- Public Member Functions inherited from ProtoGeom
 ProtoGeom (void)
 False when solution is not possible: intersection of parallel planes. More...
 
void setExists (bool e)
 
bool exists (void) const
 
boost::python::dict getPyDict (void) const
 Return a Python dictionary with the object members values.
 
void setPyDict (const boost::python::dict &)
 Set the values of the object members from a Python dictionary.
 
- Public Member Functions inherited from CommandEntity
 CommandEntity (CommandEntity *owr=nullptr)
 Default constructor.
 
CommandEntityOwner (void)
 Return a pointer to the object owner.
 
const CommandEntityOwner (void) const
 Return un puntero al objeto propietario de ESTE.
 
const StandardOutputWrappergetStandardOutputWrapper (void) const
 Return the regular output stream wrapper.
 
StandardOutputWrappergetStandardOutputWrapper (void)
 Return the regular output stream wrapper.
 
const std::string & getLogFileName (void) const
 Returns log file name.
 
void setLogFileName (const std::string &)
 Sets log file name.
 
const std::string & getErrFileName (void) const
 Returns err file name.
 
void setErrFileName (const std::string &)
 Sets error file name.
 
const std::string & getOutputFileName (void) const
 Returns regular output file name.
 
void setOutputFileName (const std::string &)
 Sets regular output file name.
 
boost::python::object evalPy (boost::python::object dict, const std::string &)
 Return the Python object that results from evaluating the argument.
 
boost::python::object execPy (boost::python::object dict, const std::string &)
 Return the Python objects that results from executing the code in the string argument.
 
boost::python::object execFilePy (boost::python::object dict, const std::string &)
 Return the Python object that results from executing the code in the file.
 
- Public Member Functions inherited from EntityWithProperties
 EntityWithProperties (EntityWithProperties *owr=nullptr)
 Default constructor.
 
void clearPyProps (void)
 Clear python properties map.
 
bool hasPyProp (const std::string &)
 Returns true if property exists.
 
boost::python::object getPyProp (const std::string &str)
 Return the Python object with the name being passed as parameter.
 
void setPyProp (std::string str, boost::python::object val)
 Sets/appends a value tho the Python object's dictionary.
 
void copyPropsFrom (const EntityWithProperties &)
 Copy the properties from the argument.
 
boost::python::list getPropNames (void) const
 Return the names of the object properties weightings.
 
const PythonDict & getPropertiesDict (void) const
 Return a std::map container with the properties of the object.
 
boost::python::dict getPyDict (void) const
 Return a Python dictionary containing the object members values.
 
void setPyDict (const boost::python::dict &)
 Set the values of the object members from a Python dictionary.
 
- Public Member Functions inherited from EntityWithOwner
 EntityWithOwner (EntityWithOwner *owr=nullptr)
 Default constructor.
 
 EntityWithOwner (const EntityWithOwner &)
 Copy constructor.
 
EntityWithOwneroperator= (const EntityWithOwner &)
 Assignment operator.
 
virtual bool operator== (const EntityWithOwner &) const
 Comparison operator.
 
virtual ~EntityWithOwner (void)
 Virtual destructor.
 
virtual std::string getClassName (void) const
 Returns demangled class name.
 
void set_owner (EntityWithOwner *owr)
 Assigns the owner of the object.
 
EntityWithOwnerOwner (void)
 
const EntityWithOwnerOwner (void) const
 

Protected Member Functions

void regularize (void)
 If the line origin has very large coordinates (>1e6) replace it with the intersection of the line with one of the coordinate planes. More...
 
- Protected Member Functions inherited from CommandEntity
template<class T >
void string_to (T &, const std::string &) const
 
- Protected Member Functions inherited from EntityWithProperties
bool isEqual (const EntityWithProperties &) const
 Return true if both objects are equal.
 
- Protected Member Functions inherited from EntityWithOwner
virtual bool isEqual (const EntityWithOwner &) const
 Return true if both objects are equal.
 

Friends

double angle (const Line3d &r, const Vector3d &v)
 
double angle (const Line3d &r1, const Line3d &r2)
 

Additional Inherited Members

- Public Types inherited from GeomObj3d
typedef PolyPos< Pos3dlist_Pos3d
 
- Public Types inherited from GeomObj
typedef PolyPos< Pos3dlist_Pos3d
 
typedef PolyPos< Pos2dlist_Pos2d
 
- Public Types inherited from EntityWithProperties
typedef std::map< std::string, boost::python::object > PythonDict
 
- Static Public Member Functions inherited from CommandEntity
static void resetStandardOutput (void)
 Reset the standard output streams to its defaults buffers.
 
- Static Public Member Functions inherited from EntityWithOwner
static int getVerbosityLevel (void)
 Get the value of the verbosity level.
 
static void setVerbosityLevel (const int &)
 Set the value of the verbosity level.
 
- Static Protected Member Functions inherited from CommandEntity
static CommandEntityentcmd_cast (boost::any &data)
 
- Static Protected Attributes inherited from EntityWithOwner
static int verbosity = 1
 Object that owns THIS ONE. More...
 

Detailed Description

Line in a three-dimensional space.

Constructor & Destructor Documentation

◆ Line3d() [1/6]

Line3d::Line3d ( const CGLine_3 &  r)
explicit

Constructor.

Parameters
rCGAL line_3.

◆ Line3d() [2/6]

Line3d::Line3d ( const Pos3d p1,
const Pos3d p2 
)

Constructor.

Parameters
p13D point.
p23D point.

◆ Line3d() [3/6]

Line3d::Line3d ( const Pos3d p,
const Dir3d dir 
)

Constructor.

Parameters
p13D point.
dir3D direction.

◆ Line3d() [4/6]

Line3d::Line3d ( const Pos3d p,
const Vector3d vdir 
)

Constructor.

Parameters
p13D point.
vdir3D vector.

◆ Line3d() [5/6]

Line3d::Line3d ( const GeomObj3d::list_Pos3d lp)
explicit

Constructs the line from the given point list (least squares method).

Parameters
lplist of 3D points.

◆ Line3d() [6/6]

Line3d::Line3d ( const boost::python::list &  l)
explicit

Constructs the line from the given point list (least squares method).

Parameters
lplist of 3D points.

Member Function Documentation

◆ getIntersection() [1/2]

GeomObj3d::list_Pos3d Line3d::getIntersection ( unsigned short int  i,
const double &  d 
) const

Return the intersection of the line with the plane defined by the equation coord_i= d.

◆ getIntersection() [2/2]

GeomObj3d::list_Pos3d Line3d::getIntersection ( const Line3d r2,
const double &  tol = sqrt_mchne_eps_dbl 
) const

Return the point intersection with the line, if it doesn't exists it returns an empty list.

◆ getIVector()

Vector3d Line3d::getIVector ( void  ) const
virtual

Returns a vector in the direction of the local X axis.

◆ getJVector()

Vector3d Line3d::getJVector ( void  ) const
virtual

Returns a vector in the direction of the local Y axis.

◆ GetParametricas()

Line3dParametricForm Line3d::GetParametricas ( void  ) const

Returns the parametric equations of the line as: v[0]: point in the line.

v[1]: dir vector for the line.

◆ Ix()

virtual GEOM_FT Line3d::Ix ( void  ) const
inlinevirtual

Moment of inertia with respect to the local axis x passing through the center of mass.

Implements GeomObj3d.

◆ Iy()

virtual GEOM_FT Line3d::Iy ( void  ) const
inlinevirtual

Moment of inertia with respect to the local axis y passing through the center of mass.

Implements GeomObj3d.

◆ Iz()

virtual GEOM_FT Line3d::Iz ( void  ) const
inlinevirtual

Moment of inertia with respect to the local axis z passing through the center of mass.

Implements GeomObj3d.

◆ Projection() [1/2]

Pos3d Line3d::Projection ( const Pos3d p) const
virtual

Return the orthogonal projection onto the line.

Parameters
ppoint to project.

Reimplemented from GeomObj3d.

◆ Projection() [2/2]

Vector3d Line3d::Projection ( const Vector3d v) const
virtual

Return the projection onto the line.

Parameters
vvector to project.

Reimplemented from GeomObj3d.

◆ regularize()

void Line3d::regularize ( void  )
protected

If the line origin has very large coordinates (>1e6) replace it with the intersection of the line with one of the coordinate planes.

Otherwise the behaviour of the line gets dominated by the large values of those coordinates which results in an erratic one.


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