Class ball

Inheritance Relationships

Base Type

Class Documentation

class acme::ball : public acme::entity

Ball class container.

Ball in 3D space and defined by a radius and a plane (ball center + normal 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

ball(ball const&) = default

Ball copy constructor.

ball(ball&&) = default

Ball move constructor.

ball &operator=(const ball&) = default

Ball assignment operator.

ball &operator=(ball&&) = default

Ball move assignment operator.

~ball(void) override = default

Ball class deconstructor.

ball(void)

Ball class constructor.

ball(real radius, real center_x, real center_y, real center_z)

Ball class constructor.

Parameters
  • radius – Input ball radius

  • center_x – Input ball center x value

  • center_y – Input ball center y value

  • center_z – Input ball center z value

ball(real radius, point const &center)

Ball class constructor.

Parameters
  • radius – Input ball radius

  • center – Input ball center

bool isApprox(ball const &ball_in, real tolerance = EPSILON) const

Check if disks are (almost) equal.

Parameters
  • ball_in – Input ball object

  • tolerance – Tolerance

real const &radius(void) const

Get ball radius const reference.

real &radius(void)

Get ball radius reference.

point const &center(void) const

Get ball center point const reference.

point &center(void)

Get ball center point reference.

real area(void) const

Calculate ball area.

real volume(void) const

Calculate ball volume.

virtual void translate(vec3 const &vector_in) override

Translate by vector.

Parameters

vector_in – Input translation vector

virtual void transform(affine const &affine_in) override

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

Parameters
  • point_in – Query point

  • tolerance – Tolerance

virtual bool isDegenerated(real tolerance = EPSILON) const override

Check if ball is degenerated.

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

inline virtual bool isNonClampable(void) const override

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