Class plane

Inheritance Relationships

Base Type

Class Documentation

class acme::plane : public acme::entity

Plane class container.

3D plane defined by the normal vector to plane and an arbitraty point laying on the plane.

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

plane(plane const&) = default

Plane copy constructor.

plane(plane&&) = default

Plane move constructor.

plane &operator=(const plane&) = default

Plane assignment operator.

plane &operator=(plane&&) = default

Plane move assignment operator.

~plane(void) override = default

Plane class destructor.

plane(void)

Plane class constructor.

plane(real origin_x, real origin_y, real origin_z, real normal_x, real normal_y, real normal_z)

Plane class constructor for plane.

Parameters
  • origin_x – Input x value of plane origin point

  • origin_y – Input y value of plane origin point

  • origin_z – Input z value of plane origin point

  • normal_x – Input x value of plane normal vector

  • normal_y – Input y value of plane normal vector

  • normal_z – Input z value of plane normal vector

plane(point const &origin, vec3 const &normal)

Plane class constructor.

Parameters
  • origin – Input plane origin point

  • normal – Input plane normal vector

bool isApprox(plane const &plane_in, real tolerance = EPSILON) const

Check if objects are (almost) equal.

Parameters
  • plane_in – Input plane object

  • tolerance – Tolerance

point const &origin(void) const

Return plane origin point const reference.

point &origin(void)

Return plane origin point reference.

vec3 const &normal(void) const

Return plane normal vector const reference.

vec3 &normal(void)

Return plane normal vector reference.

vec3 unitNormal(void) const

Return plane normal unit vector.

void normalize(void)

Normalize plane normal vector.

real d(void) const

Return plane equation d value (ax + by + cz + d = 0)

real distance(point const &point_in) const

Distance between point and plane.

Parameters

point_in – Input

real squaredDistance(point const &point_in) const

Squared distance between point and plane.

Parameters

point_in – Input

real signedDistance(point const &point_in) const

Signed distance between point and plane.

Parameters

point_in – Input

void reverse(void)

Reverse plane normal vector.

virtual void translate(vec3 const &vector_in) override

Translate plane by vector.

Parameters

vector_in – Input translation vector

virtual void transform(affine const &affine_in) override

Transform plane from with affine transformation matrix.

Parameters

affine_in – 4x4 affine transformation matrix

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

Check whether a point lays on the plane.

Parameters
  • point_in – Query point

  • tolerance – Tolerance

virtual bool isDegenerated(real tolerance = EPSILON) const override

Check if plane is degenerated (normal 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 plane is clampable.

inline virtual bool isNonClampable(void) const override

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