Class line

Inheritance Relationships

Base Type

Class Documentation

class acme::line : public acme::entity

Line class container.

Infinite line in 3D space and defined by any point lying on the line and a direction vector.

Public Types

typedef std::shared_ptr<entity> ptr

Shared pointer to entity object.

typedef std::vector<ptr> vecptr

Vector of pointers to entity objects.

Public Functions

line(line const&) = default

Line copy constructor.

line(line&&) = default

Line move constructor.

line &operator=(const line&) = default

Line assignment operator.

line &operator=(line&&) = default

Line move assignment operator.

~line(void) override = default

Line class destructor.

line(void)

Line class constructor.

line(real ox, real oy, real oz, real dx, real dy, real dz)

Line class constructor.

Parameters
  • ox – Input x value of line origin point

  • oy – Input y value of line origin point

  • oz – Input z value of line origin point

  • dx – Input x value of line direction vector

  • dy – Input y value of line direction vector

  • dz – Input z value of line direction vector

line(point const &origin, vec3 const &direction)

Line class constructor.

Parameters
  • origin – Input line origin point

  • direction – Input line direction vector

bool isApprox(line const &line_in, real tolerance = EPSILON) const

Check if objects are (almost) equal.

Parameters
  • line_in – Input line object

  • tolerance – Tolerance

point const &origin(void) const

Return line origin point const reference.

point &origin(void)

Return line origin point reference.

vec3 const &direction(void) const

Return line direction vector const reference.

vec3 &direction(void)

Return line direction vector reference.

void normalize(void)

Normalize line direction vector.

vec3 toVector(void) const

Convert line to vector.

vec3 toUnitVector(void) const

Convert line to normalized vector.

void reverse(void)

Reverse line direction.

virtual void translate(vec3 const &vector_in) override

Translate line by vector.

Parameters

vector_in – Input translation vector

virtual void transform(affine const &affine_in) override

Transform line with affine transformation matrix.

Parameters

affine_in – 4x4 affine transformation matrix

bool isInside(point const &point_in, real tolerance = EPSILON) const

Check whether the point is inside the line.

Parameters
  • point_in – Query point

  • tolerance – Tolerance

virtual bool isDegenerated(real tolerance = EPSILON) const override

Check if line is degenerated (direction vector has zero norm)

Parameters

tolerance – Tolerance

inline virtual integer level(void) const override

Return object hierarchical level.

inline virtual std::string type(void) const override

Return object type as string.

inline virtual bool isNone(void) const override

Check whether the object is no entity.

inline virtual bool isPoint(void) const override

Check whether the object is a point.

inline virtual bool isLine(void) const override

Check whether the object is a line.

inline virtual bool isRay(void) const override

Check whether the object is a ray.

inline virtual bool isPlane(void) const override

Check whether the object is a plane.

inline virtual bool isSegment(void) const override

Check whether the object is a segment.

inline virtual bool isTriangle(void) const override

Check whether the object is a triangle.

inline virtual bool isDisk(void) const override

Check whether the object is a disk.

inline virtual bool isBall(void) const override

Check whether the object is a ball.

inline virtual bool isClampable(void) const override

Check whether in the line is clampable.

inline virtual bool isNonClampable(void) const override

Check whether in the line is non-clampable.

virtual bool clamp(vec3 &min, vec3 &max) const override

Get minumum and maximum values along axes.

Parameters
  • min – Input minimum point

  • max – Input maximum point

virtual bool clamp(real &min_x, real &min_y, real &min_z, real &max_x, real &max_y, real &max_z) const override

Get minumum and maximum values along axes.

Parameters
  • min_x – Input x value of minimum point

  • min_y – Input y value of minimum point

  • min_z – Input z value of minimum point

  • max_x – Input x value of maximum point

  • max_y – Input y value of maximum point

  • max_z – Input z value of maximum point

void rotate(real angle, vec3 const &axis)

Rotate entity by a rotation angle around an arbitrary axis.

Parameters
  • angle – Input angle [rad]

  • axis – Input axis

inline bool isEntity(void) const

Check whether the object is an entity.