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 nonconst 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)  Nonmember 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 zcoordinates (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 .
