AnyCAD Rapid API 2024
Help you to create a better world!
|
Public 成员函数 | |
void | setNormal (Vector3d value) |
Vector3d | getNormal () |
void | setD (double value) |
double | getD () |
Plane () | |
Plane (Plane rhs) | |
Plane (Vector3d rkNormal, double fConstant) | |
Plane (double a, double b, double c, double _d) | |
Plane (Vector3d rkNormal, Vector3d rkPoint) | |
Plane (Vector3d rkPoint0, Vector3d rkPoint1, Vector3d rkPoint2) | |
EnumPlaneSide | getSide (Vector3d rkPoint) |
EnumPlaneSide | getSide (AABox rkBox) |
EnumPlaneSide | getSide (Vector3d centre, Vector3d halfSize) |
EnumPlaneSide | getSide (Vector3d centre, double radius) |
double | getDistance (Vector3d rkPoint) |
void | redefine (Vector3d rkPoint0, Vector3d rkPoint1, Vector3d rkPoint2) |
void | redefine (Vector3d rkNormal, Vector3d rkPoint) |
Vector3d | projectVector (Vector3d v) |
double | normalise () |
void | applyMatrix (Matrix4d matrix) |
Vector3d | coplanarPoint () |
void | applyMatrix (Matrix4d matrix, Matrix3d normalMatrix) |
Defines a plane in 3D space.
Remarks:
A plane is defined in 3D space by the equation
Ax + By + Cz + D = 0
This equates to a vector (the normal of the plane, whose x, y
and z components equate to the coefficients A, B and C
respectively), and a constant (D) which is the distance along
the normal you have to go to move the plane back to the origin.
Plane.Plane | ( | ) |
Default constructor - sets everything to 0.
Plane.Plane | ( | Vector3d | rkNormal, |
double | fConstant ) |
Construct a plane through a normal, and a distance to move the plane along the normal.
Plane.Plane | ( | double | a, |
double | b, | ||
double | c, | ||
double | _d ) |
Construct a plane using the 4 constants directly *
double Plane.getDistance | ( | Vector3d | rkPoint | ) |
This is a pseudodistance. The sign of the return value is
positive if the point is on the positive side of the plane,
negative if the point is on the negative side, and zero if the
point is on the plane.
The absolute value of the return value is the true distance only
when the plane normal is a unit length vector.
EnumPlaneSide Plane.getSide | ( | AABox | rkBox | ) |
Returns the side where the alignedBox is. The flag BOTH_SIDE indicates an intersecting box.
One corner ON the plane is sufficient to consider the box and the plane intersecting.
EnumPlaneSide Plane.getSide | ( | Vector3d | centre, |
Vector3d | halfSize ) |
Returns which side of the plane that the given box lies on.
The box is defined as centre/half-size pairs for effectively.
centre | The centre of the box. |
halfSize | The half-size of the box. |
EnumPlaneSide Plane.getSide | ( | Vector3d | rkPoint | ) |
The "positive side" of the plane is the half space to which the
plane normal points. The "negative side" is the other half
space. The flag "no side" indicates the plane itself.
double Plane.normalise | ( | ) |
Normalises the plane.
Remarks:
This method normalises the plane's normal and the length scale of d
is as well.
Note:
This function will not crash for zero-sized vectors, but there
will be no changes made to their components.
Project a vector onto the plane.
Remarks: This gives you the element of the input vector that is perpendicular
to the normal of the plane. You can get the element which is parallel
to the normal of the plane by subtracting the result of this method
from the original vector, since parallel + perpendicular = original.
v | The input vector |
Redefine this plane based on a normal and a point.