I3Dpt Interface
- Get
- Set
- GetCoord
- SetCoord
- Add
- Subtr
- Mult
- Copy
- Norm
- Normalize
- Dist
- Product
- CrossProduct
- Angle
I3Dpt interface represents 3D point or 3D vector depending on the context.
The interface provides methods for simple operations with such objects. The
interface is designed to allow creation of points or vectors for background calculations. To create a new point or vector implementing the
interface call IObjectGenerator.Create
method with eType parameter set to eObjType3DPoint.
For example, to calculate angle between two vectors call IObjectGenerator.Create(eObjType3DPoint)
twice to create two vectors and obtain its interfaces, say i3DPt0
and i3DPt1. Use Set method below to define its
coordinates and call i3DPt0.Angle(i3DPt1).
See also Collision Sample,
Interface List
HRESULT Get( double* x, double* y, double* z )
Parameters
x, y, z - [out] the
returned coordinates of the element
Return Values
-
- S_OK in case of
success.
-
- Remarks:
The methods returns the three coordinates of the point or vector.
HRESULT Set( double x, double y, double z)
Parameters
x, y, z - [in] new coordinates of the
element
Return Values
-
- S_OK in case of
success.
-
- Remarks:
Sets the three coordinates of the point or vector.
HRESULT GetCoord( short coord, double* val)
Parameters
coord - [in]
index of the coordinate to retrieve.
val - [out] the returned value of
the coordinate
Return Values
-
- S_OK in case of
success.
-
- Remarks:
Returns coord -th component of the element
HRESULT SetCoord( short coord, double val)
Parameters
coord - [in]
index of the coordinate to set.
val - [in] new value of
the coordinate
Return Values
-
- S_OK in case of
success.
-
- Remarks:
Sets coord -th component of the element.
HRESULT Add( I3Dpt* v )
Parameters
v - [in]
I3dpt interface of the element to be added to this element
Return Values
-
- S_OK in case of
success.
-
- Remarks:
The method adds coordinates of element v to
coordinates of the element, which implements this interface.
HRESULT Subtr( I3Dpt* v )
Parameters
v - [in]
I3dpt interface of the element to be subtracted from this element
Return Values
-
- S_OK in case of
success.
-
- Remarks:
The method subtracts coordinates of element v from
coordinates of the element, which implements this interface.
HRESULT Mult( double m )
Parameters
m - [in]
factor to multiply coordinates of this element by
Return Values
-
- S_OK in case of
success.
-
- Remarks:
The method multiplies all coordinates of this element by m
HRESULT Copy( I3Dpt* p )
Parameters
p - [in]
element to copy
Return Values
-
- S_OK in case of
success.
-
- Remarks:
Makes all coordinates of this equal to those of p
HRESULT Norm( double* norm )
Parameters
norm - [out] The returned value of Cartesian norm of
the element
Return Values
-
- S_OK in case of
success.
-
- Remarks:
Calculates norm of the element, (square root of sum of squares of all
coordinates), which is length in case of the vector or distance to the origin on
case of a point
HRESULT Normalize(VARIANT_BOOL* result)
result - [out] The returned success code. False is
returned when the element is zero, more precisely when it has all coordinates in
absolute value less than 1e-10.
Return Values
-
- S_OK in case of
success.
-
- Remarks:
The method extends or shortens the vector to make its length equal to 1.0
when possible or returns false otherwise and leaves all coordinates unchanged
(less than 1e-10 in absolute value).
HRESULT Dist( I3Dpt* p, double* dist )
Parameters
p - [in]
point to calculate distance to.
dist - [out] the returned distance
Return Values
-
- S_OK in case of
success.
-
- Remarks:
Returns distance between p and this.
HRESULT Product( I3Dpt* v, double* product )
Parameters
v - [in] I3dpt interface of the second element in the
inner product
product - [out] the returned inner product of this
and v
Return Values
-
- S_OK in case of
success.
-
- Remarks:
Calculates inner product (sum of products or respective coordinates) of this
and v.
HRESULT CrossProduct( I3Dpt* v, I3Dpt* u )
Parameters
v, u - [in] vectors Cross Product of which is to be
calculated
Return Values
-
- S_OK in case of
success.
-
- Remarks:
After call to the CrossProduct method this vector
will have coordinates of Cross Product of v and u.
HRESULT Angle( I3Dpt* v, double* angle )
Parameters
v - [in] the second vector for angle calculation
angle - [out] the returned angle in radians
between this and v
Return Values
-
- S_OK in case of
success.
-
- Remarks:
The method returns angle in radians between this and v. Both vectors must not be
zero otherwise an exception will be thrown.
|