C4 Engine API Documentation

## class Circle3D

Defined in:  `TSCircle3D.h`
The `Circle3D` class encapsulates a 3D circle in conformal geometric algebra.
Definition

`class Circle3D`

Member Functions
 `Circle3D::Set` Sets all ten components of a circle.
Constructor

`Circle3D();`

`Circle3D(float gx, float gy, float gz, float gw, float vx, float vy, float vz, float mx, float my, float mz);`

`Circle3D(const Plane3D& plane, const Vector3D& direction, const Bivector3D& moment);`

Parameters
 `gx,gy,gz,gw` The coordinates of the carrier plane. `vx,vy,vz` The coordinates of the direction of the flat line component. `mx,my,mz` The coordinates of the moment of the flat line component. `plane` The carrier plane. `direction` The direction of the flat line component. `moment` The moment of the flat line component.
Description
The `Circle3D` class is used to store a three-dimensional circle with a five-dimensional trivector representation in conformal geometric algebra.

The default constructor leaves the components of the circle undefined. If the initialization values are supplied, then they are assigned to the ten coordinates of the circle.
Nonmember Operations
 `bool operator ==(const Circle3D& c, const Circle3D& o) const;` Returns a boolean value indicating whether the two circles `c` and `o` are equal. `bool operator !=(const Circle3D& c, const Circle3D& o) const;` Returns a boolean value indicating whether the two circles `c` and `o` are not equal. `Circle3D operator -(const Circle3D& c);` Returns the negation of the circle `c`. `Circle3D operator *(const Circle3D& c, float n);` Returns the product of the circle `c` and the scalar `n`. `Circle3D operator *(float n, Circle3D& c);` Returns the product of the circle `c` and the scalar `n`. `Circle3D operator /(const Circle3D& c, float n);` Returns the product of the circle `c` and the inverse of the scalar `n`. `Circle3D Reverse(const Circle3D& c);` Returns the reverse of the circle `c`. `Dipole3D Dual(const Circle3D& c);` Returns the reverse of the circle `c`. `Plane3D Carrier(const Circle3D& c);` Returns the carrier of the circle `c`. `Line3D Anticarrier(const Circle3D& c);` Returns the anticarrier of the circle `c`. `Dipole3D Attitude(const Circle3D& c);` Returns the attitude of the circle `c`. `Round3D Center(const Circle3D& c);` Returns the center of the circle `c`. `Point3D FlatCenter(const Circle3D& c);` Returns the flat center of the circle `c`. `Sphere3D Container(const Circle3D& c);` Returns the container of the circle `c`. `Circle3D Partner(const Circle3D& c);` Returns the partner of the circle `c`. `float SquaredRadiusNorm(const Circle3D& c);` Returns the squared radius of the circle `c`. `float SquaredCenterNorm(const Circle3D& c);` Returns the squared distance from the origin to the center of the circle `c`. `float SquaredWeightNorm(const Circle3D& c);` Returns the squared weight of the circle `c`.
`Round3D`
`Dipole3D`
`Sphere3D`