Class segment

Inheritance Relationships

Base Type

Class Documentation

class acme::segment : public acme::entity

Segment class container.

Segment in 3D space. The segment is defined by two arbitrary points.

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

segment(segment const&) = default

Segment copy constructor.

segment(segment&&) = default

Segment move constructor.

segment &operator=(const segment&) = default

Segment assignment operator.

segment &operator=(segment&&) = default

Segment move assignment operator.

~segment(void) override = default

Segment class destructor.

segment(void)

Segment class constructor.

segment(real vertex0_x, real vertex0_y, real vertex0_z, real vertex1_x, real vertex1_y, real vertex1_z)

Segment class constructor.

Parameters
  • vertex0_x – Input x value of first segment vertex

  • vertex0_y – Input y value of first segment vertex

  • vertex0_z – Input z value of first segment vertex

  • vertex1_x – Input x value of second segment vertex

  • vertex1_y – Input y value of second segment vertex

  • vertex1_z – Input z value of second segment vertex

segment(point const &vertex0, point const &vertex1)

Segment class constructor.

Parameters
  • vertex0 – Input first segment vertex

  • vertex1 – Input second segment vertex

segment(point const vertex[2])

Segment class constructor.

Parameters

vertex – Input segment vertices

bool isApprox(segment const &segment_in, real tolerance = EPSILON) const

Check if segments are (almost) equal.

Parameters
  • segment_in – Input segment object

  • tolerance – Tolerance

point centroid(void) const

Get segment centroid.

point const &vertex(integer i) const

Get segment i-th vertex const reference.

Parameters

i – Intput segment i-th vertex index

point &vertex(integer i)

Get segment i-th vertex reference.

Parameters

i – Intput segment i-th vertex index

point const &operator[](integer i) const

Get segment i-th vertex const reference.

Parameters

i – Intput segment i-th vertex index

point &operator[](integer i)

Get segment i-th vertex reference.

Parameters

i – Intput segment i-th vertex index

vec3 toVector(void) const

Convert segment to vector.

vec3 toUnitVector(void) const

Convert segment to normalized vector.

void swap(void)

Swap segment points.

real length(void) const

Calculate segment length.

virtual void translate(vec3 const &vector_in) override

Translate segment by vector.

Parameters

vector_in – Input translation vector

virtual void transform(affine const &affine_in) override

Transform segment 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 segment.

Parameters
  • point_in – Query point

  • tolerance – Tolerance

virtual bool isDegenerated(real tolerance = EPSILON) const override

Check if segment is degenerated to point.

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 segment is clampable.

inline virtual bool isNonClampable(void) const override

Check whether in the segment 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.