| void operator= (const Point& p) | Assignment operator |
Makes *this a copy of p.
|
| Transform operator*= (const Transform& t) | Operator |
Multiplies transform by t.
By multiplying a Point successively by
one or more Transforms, the effect of the transformations is
"saved up" in transform. Only when an operation that needs
updated values for the world_coordinates is called on a
Point, or the Point is passed as an argument to such an
operation, is the transformation stored in transform applied to
world_coordinates by apply_transform(),
which subsequently, resets transform to
the identity Transform.
See Point Reference; Applying Transformations.
|
| Point operator+ (Point p) | const operator |
Returns a Point with world_coordinates that are the sums of
the corresponding world_coordinates of *this and p,
after they've been updated.
*this remains unchanged; as in many other functions with
Point arguments, p is passed by value, because
apply_transform() must be called on it, in order to update its
world_coordinates. If p were a const Point&, it
would have to copied within the function anyway, because
apply_transform() is a non-const operation.
Point p0(-2, -6, -28);
Point p1(3, 14, 92);
Point p2(p0 + p1);
p2.show("p2:");
-| p2: (1, 8, 64)
|
| void operator+= (Point p) | Operator |
Adds the updated world_coordinates of p to those of
*this.
Equivalent in effect to shift(p)
In fact, this
function merely calls p.apply_transform() and
Point::shift(real, real, real) with p's x, y, and z
coordinates (from world_coordinates) as its arguments.
See Point Reference; Affine Transformations.
|
| Point operator- (Point p) | const operator |
Returns a Point with world_coordinates representing the
difference between the updated values of
this->world_coordinates and
p.world_coordinates.
|
| void operator-= (Point p) | Operator |
Subtracts the updated values of p.world_coordinates from
those of this->world_coordinates.
|
| real operator*= (const real r) | Operator |
Multiplies the updated x, y, and z coordinates (world_coordinates) of
the Point by r and returns r. This makes it possible to
chain invocations of this function.
If Point P(1, 2, 3);
P *= 7;
P.show("P:");
-| P: (7, 14, 21);
Point Q(1.5, 2.7, 13.82);
Q *= P *= -1.28;
P.show("P:");
-| P: (-8.96, -17.92, -26.88)
Q.show("Q:");
-| Q: (-1.92, -3.456, -17.6896)
|
| Point operator* (const real r) | const operator |
Returns a Point with x, y, and z coordinates
(world_coordinates) equal to the updated x, y, and z coordinates
of *this multiplied by r.
|
| Point operator* (const real r, const Point& p) | Non-member operator |
Equivalent to Point::operator*(const real r) (see above),
but with r placed first.
Point p0(10, 11, 12);
real r = 2.5;
Point p1 = r * p0;
p1.show();
-|Point:
-|(25, 27.5, 30)
|
| Point operator- (void) | const operator |
Unary minus (prefix). Returns a Point with x, y, and z
coordinates (world_coordinates) equal to the
the x, y, and z-coordinates (world_coordinates) of
*this multiplied by -1.
|
| void operator/= (const real r) | Operator |
Divides the updated x, y, and z coordinates (world_coordinates) of
the Point by r.
|
| Point operator/ (const real r) | const operator |
Returns a Point with x, y, and z coordinates
(world_coordinates) equal to the updated x, y, and z coordinates
of *this
divided by r.
|
| bool operator== (Point p) | Operator |
| bool operator== (const Point& p) | const operator |
Equality comparison for Points. These functions return
true if the updated values of the world_coordinates of the two
Points differ by less than the value returned by
Point::epsilon(), otherwise false.
See Point Reference; Returning Information.
|
| bool operator!= (const Point& p) | const operator |
Inequality comparison for Points. Returns false if
*this == p, otherwise true.
|