IFrame3 Interface

The interface gives access to frames.
This interface was added in version 2.3 to give convenient access via single
interface to all functionality provided by other
frames-related interfaces, namely
I3DObject, IFrame,
IFrame2 and IFrameEx.

vx, vy, vz-[in] Coordinates of the
translation vector. Relative to the frame

Remarks

Call this method to translate origin of the local frame
along its x axis by vx, along y axis by vx and along z axis by vz.
Translation coordinates are relative to the current orientation of the frame,
not global coordinates

axis0 - [in] 3D vector which will be set as axisInd0-th
axis of the frame. DIVect
type is described in Basic Types.

axisInd1- [in] 0-based index of axis, which
will be changed to axis1.

axis1 - [in] 3D vector which will be set as axisInd1-th
axis of the frame. DIVect
type is described in Basic Types. Supplying
zero vector for this parameter means the axis is not specified. The method will
select an arbitrary orthogonal axis.

Returns

S_OK in case of
success.

DISP_E_PARAMNOTOPTIONAL in case axis0 or axis1 are
zero vectors or have the same direction

Remarks

Call this method to set directions of axes of the frame. DIVect
type is described in Basic Types. Normally axis0
and axis1 are orthogonal vectors. They must not have the same
direction otherwise the method will fail with DISP_E_PARAMNOTOPTIONAL return
code. If axis0 and axis1 are not orthogonal orthogonalization is
applied to axis1. Supplying zero vector for axis1 parameter
means the axis is not specified. The method will select an arbitrary
orthogonal axis. In addition to that, both vectors are normalized to
make their lengths equal to 1.0. The third remaining axis is calculated using
the supplied ones and condition that it must be orthogonal to both of them and
have its length equal to 1.0.

axis0 - [in]
0-based index of the axis, which will be directed along axis

axis1 - [in]
0-based index of the axis, which will be calculated second

Remarks:

Use this method to make sure that axis0 is
directed along axis. Direction of other axes will be modified by
making the current axis1 axis perpendicular to axis
axis0 and the last axis will be perpendicular to the others.

This method will copy position and orientation of frame
into the frame, which implements this interface. For example, when this IFrame3
and frame are queried from two different object.
the first object will be located at the same point and oriented in the same way
as the second object.

Assimes that coordinates of frame are relative to this and converts them to global coordinates.
This method uses this.ToGlobal() to convert origin of frame and
this.ToGlobalVector() to convert all three axes of frame