Class disk

Inheritance Relationships

Base Type

Class Documentation

class acme::disk : public acme::entity

Disk class container.

Disk in 3D space and defined by a radius and a plane (disk 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

disk(disk const&) = default

Disk copy constructor.

disk(disk&&) = default

Disk move constructor.

disk &operator=(const disk&) = default

Disk assignment operator.

disk &operator=(disk&&) = default

Disk move assignment operator.

~disk(void) override = default

Disk class deconstructor.

disk(void)

Disk class constructor.

disk(real radius, plane const &plane)

Disk class constructor.

Parameters
  • radius – Input disk radius

  • plane – Input disk laying plane

disk(real radius, point const &center, vec3 const &normal)

Disk class constructor.

Parameters
  • radius – Input disk radius

  • center – Input disk center

  • normal – Input disk normal to the laying plane

disk(real radius, real center_x, real center_y, real center_z, real normal_x, real normal_y, real normal_z)

Disk class constructor.

Parameters
  • radius – Input disk radius

  • center_x – Input disk center x value

  • center_y – Input disk center y value

  • center_z – Input disk center z value

  • normal_x – Input disk normal x value to the laying plane

  • normal_y – Input disk normal y value to the laying plane

  • normal_z – Input disk normal z value to the laying plane

bool isApprox(disk const &disk_in, real tolerance = EPSILON) const

Check if disks are (almost) equal.

Parameters
  • disk_in – Input disk object

  • tolerance – Tolerance

real const &radius(void) const

Get disk radius const reference.

real &radius(void)

Get disk radius reference.

point const &center(void) const

Get disk center point const reference.

point &center(void)

Get disk center point reference.

vec3 const &normal(void) const

Get disk laying plane normal vector const reference.

vec3 &normal(void)

Get disk laying plane normal vector reference.

plane const &layingPlane(void) const

Get cicle laying plane const reference.

plane &layingPlane(void)

Get cicle laying plane reference.

void normalize(void)

Normalize disk normal vector.

void reverse(void)

Reverse disk normal vector.

real perimeter(void) const

Calculate disk circumference length.

real area(void) const

Calculate disk area.

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 disk 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 disk.

Parameters
  • point_in – Query point

  • tolerance – Tolerance

virtual bool isDegenerated(real tolerance = EPSILON) const override

Check if disk 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 disk is clampable.

inline virtual bool isNonClampable(void) const override

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