IDAStatics Interface

The IDAStatics interface is the COM interface that defines the DAStatics class. From the IDAStatics interface, you can access all the methods listed in the DAStatics class in the Scripting Reference. This section lists only those methods that you can't access from script, but must access through the COM interface, typically using C++. Some of these methods, with an appended "Ex," specify arrays as a size and a fixed array, rather than as a VARIANT. Specifying arrays makes the methods easier to call in C++, but not using a VARIANT means you can't call them from script. Other methods, such as UserData, access an IUnknown interface, which you can't do from script.

This interface inherits from IDispatch. Like pure COM interfaces, such as IUnknown, IDispatch exposes objects, methods, and properties to applications. Unlike IUnknown, IDispatch members are identified with human-readable names, not as vtable indexes. IDispatch interfaces don't perform as well as pure COM interfaces.

IDAStatics Methods

Compose2ArrayEx Creates a two-dimensional transformation behavior that is composed of the DATransform2 objects included in the array.
Compose3ArrayEx Creates a three-dimensional transformation that is composed of the DATransform3 objects in an array.
ConcatArrayEx Creates a DAPath2 object that represents the concatenation of the DAPath2 objects in the array.
CubicBSplinePathEx Creates a DAPath2 object based on a cubic B-spline curve.
DAArrayEx Constructs a DAArray object.
DATupleEx Constructs a DATuple object.
get_ClientSite Retrieves the pointer to IOleClientSite interface of the view.
GradientPolygonEx Creates a polygon from an array of points and an array of colors.
ImportDirectDrawSurface Imports a DirectDrawSurface object and passes it into the Microsoft® DirectAnimation® engine.
MixArrayEx Creates a sound that is the combination of all the sounds in an array.
NumberBSplineEx Creates a DANumber object based on a B-spline function.
OverlayArrayEx Creates a DAImage object by layering the DAImage objects in an array.
Point2BSplineEx Creates a DAPoint2 object based on a B-spline function.
Point3BSplineEx Creates a DAPoint3 object based on a B-spline function.
PolydrawPathEx Creates a DAPath2 object by manipulating an array of (animated) points with the codes contained in a second array.
PolylineEx Creates a DAPath2 object that consists of the given animated points.
put_ClientSite Specifies the pointer to IOleClientSite interface of the view.
RadialGradientPolygonAnimEx Creates a DAImage object that is a regular polygon with a radial fill.
RadialGradientPolygonEx Creates a DAImage object that is a regular polygon with a radial fill. Same as RadialGradientPolygonAnimEx except that the falloff is a double and not an animated number.
Transform3x2AnimEx Creates a two-dimensional transformation that consists of a 3-by-2 matrix with values specified by the given array.
Transform4x4AnimEx Creates a three-dimensional transformation behavior that consists of a 4-by-4 matrix with values specified by the given array.
UnionGeometryArrayEx Creates a geometry behavior by combining the geometries in the array.
UserData Associates a DAUserData object with the given IUnknown interface.
Vector2BSplineEx Creates a DAVector2 object based on a B-spline function.
Vector3BSplineEx Creates a DAVector3 object based on a B-spline function.

IDAStatics::Compose2ArrayEx

IDAStatics Interface

Creates a two-dimensional transformation behavior that is composed of the DATransform2 objects included in the array.

Syntax

HRESULT Compose2ArrayEx(
    LONG xfs_size,
    IDATransform2 *xfs,
    IDATransform2 **retXf2
);

Parameters

xfs_size
[in] Size of the xfs array.
xfs
[in, size_is(xfs_size)] Pointer to an array of DATransform2 objects that will be composed into the new transform.
retXf2
[out] Address of a pointer to the new DATransform2 object that represents the composition of the transforms in the array.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

This method extends the DAStatics function Compose2Array that enables you to specify an array size so you don't have to use a VARIANT for the array.

Composing a transform is equivalent to first applying the transform that is the last element in the array, then applying the transform that is next to last in the array, and so on.

IDAStatics::Compose3ArrayEx

IDAStatics Interface

Creates a three-dimensional transformation that is composed of the DATransform3 objects in the array.

Syntax

HRESULT Compose3ArrayEx(
    LONG xfs_size,
    IDATransform3 *xfs,
    IDATransform3 **retXf3
);

Parameters

xfs_size
[in] Size of the xfs array.
xfs
[in, size_is(xfs_size)] Pointer to an array of DATransform3 objects that will be composed into the new transform.
retXf3
[out] Address of a pointer to the new DATransform3 object that represents the composition of the transforms in the array.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

This method extends the DAStatics function Compose3Array that enables you to specify an array size so you don't have to use a VARIANT for the array.

Composing a transform is equivalent to first applying the transform that is the last element in the array, then applying the transform that is next to last in the array, and so on.

IDAStatics::ConcatArrayEx

IDAStatics Interface

Creates a DAPath2 object that represents the concatenation of the DAPath2 objects in the array. In the new path, the points of the first path in the array occur first, followed sequentially by the other paths in the array. The second path, for example, is transformed so that its first point aligns with the last point of the first path.

Syntax

HRESULT ConcatArrayEx(
    LONG paths_size,
    IDAPath2 *paths,
    IDAPath2 **retPath
);

Parameters

paths_size
[in] Size of the paths array.
paths
Pointer to an array of DAPath2 objects.
retPath
Address of a pointer to the new DAPath2 object that is the concatenation of the DAPath2 objects in the array.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

This method extends the DAStatics function ConcatArray that enables you to specify an array size so you don't have to use a VARIANT for the array.

IDAStatics::CubicBSplinePathEx

IDAStatics Interface

Creates a DAPath2 object based on a cubic B-spline curve.

Syntax

HRESULT CubicBSplinePathEx(
    LONG points_size,
    IDAPoint2 *points,
    LONG knots_size,
    IDANumber *knots,
    IDAPath2 **retPath
);

Parameters

points_size
[in] Size of the points array.
points
[in, size_is(points)] Pointer to an array of DAPoint2 objects representing the control points used to calculate the B-spline.
knots_size
[in] Size of the knots array.
knots
[in, size_is(knots_size)] Pointer to an array of DANumber objects representing the knots used to calculate the B-spline.
retPath
[out] Address of a pointer to the new DAPath2 object based on a cubic B-spline function of the specified points and knots.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

The cubic B-spline curve depends on the control points and the knots. The control points define the approximate direction and shape of the function. The knots represent the junction values, in parameter space, between the connected polynomial parts. For a number of knots k, the function is valid in the range [3, knotk–2], and is otherwise undefined.

This method extends the DAStatics function CubicBSplinePath that enables you to specify an array size so you don't have to use a VARIANT for the array.

IDAStatics::DAArrayEx

IDAStatics

Constructs a DAArray object.

Syntax

HRESULT DAArrayEx(
    LONG s,
    IDABehavior *pBvrs,
    IDAArray **bvr
);

Parameters

s
[in] Size of the DAArray object to be created.
pBvrs
[in, size_is(s)] Pointer to an array of size s of behaviors that will be elements of the DAArray object being created.
bvr
[out] Address of a pointer to the new DAArray object.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

A DAArray object is an array that holds behaviors that are all the same kind. A DATuple object is an array that can hold dissimilar behaviors.

See Also

IDAStatics::DATuple

IDAStatics::DATupleEx

IDAStatics

Constructs a DATuple object.

Syntax

HRESULT DATupleEx(
    LONG s,
    IDABehavior *pBvrs,
    IDATuple **bvr
);

Parameters

s
[in] Size of the DATuple object to be created.
pBvrs
[in, size_is(s)] Pointer to an array of size s of behaviors that will be elements of the DATuple object being created.
bvr
[out] Address of a pointer to the new DATuple object.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

A DAArray object is an array that holds behaviors that are all the same kind. A DATuple object is an array that can hold dissimilar behaviors.

See Also

IDAStatics::DAArray

IDAStatics::get_ClientSite


IDAStatics

Retrieves a pointer to IOleClientSite interface of the view. When set, this interface enables imports from a relative file name by establishing an absolute URL base.

Syntax

HRESULT get_ClientSite(
    IOleClientSite **pClientSite
);

Parameters

pClientSite
[out] Address of a pointer to the IOleClientSite interface of the view.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

The IOleClientSite interface is the primary means by which an embedded object obtains information about the location and extent of its display site, its moniker, its user interface, and other resources provided by its container.

See Also

IDAstatics::put_ClientSite

IDAStatics::GradientPolygonEx

IDAStatics Interface

Creates a polygon from an array of points and an array of colors.

Syntax

HRESULT GradientPolygonEx(
    LONG points_size,
    IDAPoint2 *points,
    LONG colors_size,
    IDAColor *colors,
    IDAImage **retImg
);

Parameters

points_size
[in] Size of the the points array.
points
[in, size_is(points_size)] Pointer to an array of DAPoint2 points that determine the polygon's vertices.
colors_size
[in] Size of the colors array.
colors
[in, size_is(colors_size)] Pointer to an array of DAColor colors corresponding to the vertices.
retImg
[out] Address of a pointer to the DAImage object that is the specified polygon.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

The polygon created has a smooth interpolation between the colors at the vertices. This interpolation is in RGB space. The image is transparent and unpickable outside the polygon. The polygon must be convex and fanned, with at least 3 vertices. The tessellation into triangles occurs by fanning around the first vertex. If, for example, the first triangle is from vertices [0, 1, 2], then the second is from [0, 2, 3], and so on. The tessellation determines how the color interpolation is done. The bounding box is the box surrounding the points of the polygon.

This method extends the DAStatics function GradientPolygon that enables you to specify an array size so you don't have to use a VARIANT for the array.

ImportDirectDrawSurface

IDAStatics Interface

Imports a DirectDrawSurface object and passes it into the DirectAnimation engine as a DAImage object.

Syntax

HRESULT ImportDirectDrawSurface(
    IUnknown *dds,
    IDAEvent *updateEvent,
    IDAImage **ppImage
);

Parameters

dds
[in] Pointer to the IUnknown interface on the DirectDrawSurface to import.
updateEvent
[in] Pointer to the DAEvent object that triggers the import.
ppImage
[out] Address of a pointer to the DAImage object created from the DirectDrawSurface.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

This method can be used in script to import a DADrawingSurface. See the documentation for ImportDirectDrawSurface in the Scripting Reference.

IDAStatics::MixArrayEx

IDAStatics Interface

Creates a sound that is equivalent to adding all the sounds in the array.

Syntax

HRESULT MixArrayEx(
    LONG snds_size,
    IDASound *snds,
    IDASound **retSnd
);

Parameters

snds_size
[in] Size of the snds array.
snds
[in, size_is(snds_size)] Pointer to an array of DASound objects that contribute to the new sound.
retSnd
[out] Address of a pointer to a DASound object that is the sum of all the sounds in the snds array.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

This method extends the DAStatics function MixArray that enables you to specify an array size so you don't have to use a VARIANT for the array.

IDAStatics::NumberBSplineEx

IDAStatics

Creates a DANumber object based on a B-spline function. The function depends on the mathematical degree, the knots, the control elements, and the weights of the control elements (these are optional).

Syntax

HRESULT NumberBSplineEx(
    int degree,
    LONG numKnots,
    IDANumber *knots,
    LONG numPts,
    IDANumber *ctrlPts,
    LONG numWts,
    IDANumber *weights,
    IDANumber *evaluator,
    IDANumber **bvr
);

Parameters

degree
[in] Number representing the mathematical degree of the B-spline to evaluate. Must be 1, 2, or 3.
numKnots
[in] Size of the knots array.
knots
[in, size_is(numKnots)] Pointer to an array of DANumber objects representing the knots used to calculate the B-spline.
numPts
[in] Size of the ctrlPts array.
ctrlPts
[in, size_is(numPts)] Pointer to an array of size numPts of DANumber objects representing the control elements used to calculate the B-spline.
numWts
Size of the weights array. There must be the same number of weights as control elements, so numWts must equal numPts.
weights
[in, size_is(numWts)] Pointer to an array of DANumber objects representing the weights used to calculate the rational B-spline. For nonrational B-splines, the value of weights is null.
evaluator
[in] Pointer to a DANumber object that controls the spline evaluation.
bvr
[out] Address of a pointer to the new DANumber object based on the specified B-spline function.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

A B-spline function without weights is piecewise polynomial and with weights is piecewise rational (the quotient of two polynomials). It requires that:

numPts = numKnots – degree + 1

The control elements define the approximate direction and shape of the function. The knots represent junction values, in parameter space, between the connected polynomial parts.

Given a degree d and a number of knots numKnots, the function is valid in the range knots[d] to knots[numKnots–d+1], and is otherwise undefined. For example, for a degree 2 curve, the valid range is from the second knot to the next to the last knot, inclusive.

The returned DANumber is the traversal of the spline function according to the evaluator parameter. The evaluator parameter is a DANumber that must be in the valid range of the spline, which is from knots[d] to knots[numKnotsd+1]. Any values outside this range are automatically clamped to the end values (either knots[d] or knots[numKnotsd+1]).

See Also

NumberBSpline

IDAStatics::OverlayArrayEx

IDAStatics Interface

Creates a DAImage object by layering the DAImage objects in the array.

Syntax

HRESULT OverlayArrayEx(
    LONG imgs_size,
    IDAImage *imgs,
    IDAImage **retImg
);

Parameters

imgs_size
[in] Size of the imgs array.
imgs
[in, size_is(imgs_size)] Pointer to an array of DAImage objects.
retImg
[out] Address of a pointer to the DAImage object that is the layering of the images in the array.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

The bounding box of a set of overlaid images is simply the union of the bounding boxes of the images themselves.

This method extends the DAStatics function OverlayArray that enables you to specify an array size so you don't have to use a VARIANT for the array.

IDAStatics::Point2BSplineEx

IDAStatics

Creates a DAPoint2 object based on a B-spline function. The function depends on the mathematical degree, the knots, the control elements, and the weights of the control elements (these are optional).

Syntax

HRESULT Point2BSplineEx(
    int degree,
    LONG numKnots,
    IDANumber *knots,
    LONG numPts,
    IDAPoint2 *ctrlPts,
    LONG numWts,
    IDANumber *weights,
    IDANumber *evaluator,
    IDAPoint2 **bvr
);

Parameters

degree
[in] Number representing the mathematical degree of the B-spline to evaluate. Must be 1, 2, or 3.
numKnots
[in] Size of the knots array.
knots
[in, size_is(numKnots)] Pointer to an array of DANumber objects representing the knots used to calculate the B-spline.
numPts
[in] Size of the ctrlPts array.
ctrlPts
[in, size_is(numPts)] Pointer to an array of DAPoint2 objects representing the control elements used to calculate the B-spline.
numWts
Size of the weights array. There must be the same number of weights as control elements, so numWts must equal numPts.
weights
[in, size_is(numWts)] Pointer to an array of DANumber objects representing the weights used to calculate the rational B-spline. For nonrational B-splines, the value of weights is null.
evaluator
[in] Pointer to a DANumber object that controls the spline evaluation.
bvr
[out] Address of a pointer to the new DAPoint2 object based on the specified B-spline function.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

See the Remarks section in NumberBSplineEx for an explanation of the B-spline function.

See Also

Point2BSpline

IDAStatics::Point3BSplineEx

IDAStatics

Creates a DAPoint3 object based on a B-spline function. The function depends on the mathematical degree, the knots, the control elements, and the weights of the control elements (these are optional).

Syntax

HRESULT Point3BSplineEx(
    int degree,
    LONG numKnots,
    IDANumber *knots,
    LONG numPts,
    IDAPoint3 *ctrlPts,
    LONG numWts,
    IDANumber *weights,
    IDANumber *evaluator,
    IDAPoint3 **bvr
);

Parameters

degree
[in] Number representing the mathematical degree of the B-spline to evaluate. Must be 1, 2, or 3.
numKnots
[in] Size of the knots array.
knots
[in, size_is(numKnots)] Pointer to an array of DANumber objects representing the knots used to calculate the B-spline.
numPts
[in] Size of the ctrlPts array.
ctrlPts
[in, size_is(numPts)] Pointer to an array of DAPoint3 objects representing the control elements used to calculate the B-spline.
numWts
Size of the weights array. There must be the same number of weights as control elements, so numWts must equal numPts.
weights
[in, size_is(numWts)] Pointer to an array of DANumber objects representing the weights used to calculate the rational B-spline. For nonrational B-splines, the value of weights is null.
evaluator
[in] Pointer to a DANumber object that controls the spline evaluation.
bvr
[out] Address of a pointer to the new DAPoint3 object based on the specified B-spline function.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

See the Remarks section in NumberBSplineEx for an explanation of the B-spline function.

See Also

Point3BSpline

IDAStatics::PolydrawPathEx

IDAStatics Interface

Creates a DAPath2 object by manipulating the array of points with the codes contained in the DANumber array.

Syntax

HRESULT PolydrawPathEx(
    LONG points_size,
    IDAPoint2 *points,
	LONG codes_size,
    IDANumber *codes,
    IDAPath2 **retPath
);

Parameters

points_size
{in] Size of the points array.
points
[in, size_is(points_size)] Pointer to an array of DAPoint2 objects that determine the path.
codes_size
{in] Size of the codes array.
codes
[in, size_is(codes_size)] Pointer to an array of DANumber objects that represent the instruction codes for manipulating the points in the path. Can be one or more or the following values.
CodeNameMeaning
01 PT_CLOSEFIGURE Connects points to create a closed figure.
02 PT_LINETO Connects points in a line.
04 PT_BEZIERTO Connects points in a Bezier curve. These must occur in multiples of 3.
06 PT_MOVETO Moves to a point. This is, implicitly, always the first instruction.
retPath
[out] Address of a pointer to the DAPath2 object constructed from the points.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

This method extends the DAStatics function PolydrawPath that enables you to specify an array size so you don't have to use a VARIANT for the array.

This function is the equivalent of the Graphics Drawing Interface (GDI) PolyDraw function.

IDAStatics::PolylineEx

IDAStatics Interface

Creates a DAPath2 object that consists of the given (animated) points. The path can be used either for drawing or animation. The default line style is the defaultLineStyle.

Syntax

HRESULT PolylineEx(
    LONG points_size,
    IDAPoint2 *points,
    IDAPath2 **retPath
);

Parameters

points_size
{in] Size of the points array.
points
[in, size_is(points_size)] Pointer to an array of DAPoint2 objects that determine the path.
retPath
[out] Address of a pointer to the DAPath2 object constructed from the points.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

This method extends the DAStatics function Polyline that enables you to specify an array size so you don't have to use a VARIANT for the array.

IDAStatics::put_ClientSite


IDAStatics

Specifies the pointer to the IOleClientSite interface of the view. When set, this interface enables imports from a relative file name by establishing an absolute URL base.

Syntax

HRESULT put_ClientSite(
    IOleClientSite *pClientSite
);

Parameters

pClientSite
[in] Pointer to the IOleClientSite interface of the view.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

The IOleClientSite interface is the primary means by which an embedded object obtains information about the location and extent of its display site, its moniker, its user interface, and other resources provided by its container.

See Also

IDAStatics::get_ClientSite, IDAView::put_ClientSite

IDAStatics::RadialGradientPolygonAnimEx

IDAStatics Interface

Creates a DAImage object that is a regular polygon with a radial fill. The image contains the specified colors at the origin and the exterior points, respectively. The gradient fill is determined by the fallOff parameter and occurs in RGB space. Outside the filled-in region, the image is transparent and unpickable. The bounding box is the box surrounding the points of the polygon.

Syntax

HRESULT RadialGradientPolygonAnimEx(
    IDAColor *inner,
    IDAColor *outer,
    LONG points_size,
    IDAPoint2 *points,
    IDANumber *fallOff,
    IDAImage **retImg
);

Parameters

inner
[in] Pointer to a DAColor object representing the color at the origin of the polygon.
outer
[in] Pointer to a DAColor object representing the color at the vertices.
points_size
{in] Size of the points array.
points
[in, size_is(points_size)] Pointer to an array of DAPoint2 objects that determine the polygon's vertices.
fallOff
[in] Pointer to a DANumber object that is an exponent controlling how rapidly one color transitions into another. A value of 1 is a linear transition. For 0 < power < 1 the transition occurs rapidly, while power > 1 means that the transition occurs more slowly. For example, if the color is transitioning from red to blue, and power = 2, you will see a great deal of red in the gradient fill. On the other hand, if power = 0.5 (the inverse of 2), you will see very little red. If power = 0, you will see only blue. More precisely, if x is considered the normalized distance (from 0 to 1), then the gradient is xp, where p is in the range [0, infinity]. This must be an animated number.
retImg
[out] Address of a pointer to the DAImage object that is the polygon with the radial fill.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

This method extends the DAStatics function RadialGradientPolygonAnim that enables you to specify an array size so you don't have to use a VARIANT for the array.

IDAStatics::RadialGradientPolygonEx

IDAStatics Interface

Creates a DAImage object that is a regular polygon with a radial fill. Same as RadialGradientPolygonAnimEx except that the falloff is a double and not an animated number.

Syntax

HRESULT RadialGradientPolygonEx(
    IDAColor *inner,
    IDAColor *outer,
    LONG points_size,
    IDAPoint2 *points,
    double fallOff,
    IDAImage **retImg
);

Parameters

inner
[in] Pointer to a DAColor object representing the color at the origin of the polygon.
outer
[in] Pointer to a DAColor object representing the color at the vertices.
points_size
{in] Size of the points array.
points
[in, size_is(points_size)] Pointer to an array of DAPoint2 objects that determine the polygon's vertices.
fallOff
[in] A double value that is an exponent controlling how rapidly one color transitions into another. A value of 1 is a linear transition. For 0 < power < 1 the transition occurs rapidly, while power > 1 means that the transition occurs more slowly. For example, if a color is transitioning from red to blue, and power = 2, you will see a great deal of red in the gradient fill. On the other hand, if power = 0.5 (the inverse of 2), you will see very little red. If power = 0, you will see only blue. More precisely, if x is considered the normalized distance (from 0 to 1), then the gradient is xp, where p is in the range [0, infinity].
retImg
[out] Address of a pointer to the DAImage object that is the polygon with the radial fill.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

This method extends the DAStatics function RadialGradientPolygon that enables you to specify an array size so you don't have to use a VARIANT for the array.

IDAStatics::Transform3x2AnimEx

IDAStatics Interface

Creates a two-dimensional transformation that consists of a 3-by-2 matrix with values specified by the given array of DANumber objects.

Syntax

HRESULT Translate3x2AnimEx(
    LONG matrix_size,
    IDANumber *matrix,
    IDATransform2 **retXf2
);

Parameters

matrix_size
[in] Size of the matrix array.
matrix
[in, size_is(matrix_size)] Pointer to an array of DANumber objects that represent the 3-by-2 matrix.
  • The top row of the matrix is represented by DANumber objects a00, a01, and a02. Use a00 to scale the x-coordinate and a02 to translate x.
  • The bottom row of the matrix is represented by the DANumber objects a10, a11, and a12. Use a11 to scale the y-coordinate and a12 to translate y.
retXf2
[out] Address of a pointer to the new DATransform2 object that represents the 3-by-2 matrix.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

This method extends the DAStatics function Transform3x2Anim that enables you to specify an array size so you don't have to use a VARIANT for the array.

The x and y translation components are given by a02 and a12, respectively.

IDAStatics::Transform4x4AnimEx

IDAStatics Interface

Creates a three-dimensional transformation behavior that consists of a 4-by-4 matrix with values specified by the given array of DANumber objects.

Syntax

HRESULT Translate4x4AnimEx(
    LONG matrix_size,
    IDANumber *matrix,
    IDATransform3 **retXf3
);

Parameters

matrix_size
[in] Size of the matrix array.
matrix
[in, size_is(matrix_size)] Pointer to an array of DANumber objects that represent the 4-by-4 matrix.
  • The first row of the matrix can be represented by the DANumber objects a00, a01, a02, a03. Use a00 to scale the x-coordinate and a03 to translate x.
  • The second row of the matrix can be represented by the DANumber objects a10, a11, a12, a13. Use a11 to scale the y-coordinate and a13 to translate y.
  • The third row of the matrix can be represented by the DANumber objects a20, a21, a22, a23. Use a22 to scale the z-coordinate and a23 to translate z.
  • The fourth row of the matrix can be represented by the DANumber objects a30, a31, a32, a33.
retXf3
[out] Address of a pointer to the new DATransform3 object that represents the 4-by-4 matrix.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

This method extends the DAStatics function Transform4x4Anim that enables you to specify an array size so you don't have to use a VARIANT for the array.

The translation components for the matrix are in the last column. The last row of the matrix must be [0 0 0 1].

IDAStatics::UnionGeometryArrayEx

IDAStatics Interface

Creates a geometry behavior by combining the geometries in the array. The new geometry contains all elements of the original geometries.

Syntax

HRESULT UnionGeometryArrayEx(
    LONG geos_size,
    IDAGeometry *geos,
    IDAGeometry **retGeo
);

Parameters

geos_size
[in] Size of the geos array of DAGeometry objects.
geos
[in, size_is(geos_size)] Pointer to an array of DAGeometry objects.
retGeo
[out] Address of a pointer to the new DAGeometry object that is the union of the geometries in the array.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

The bounding box of a set of geometries combined as a union is simply the union of the bounding boxes of each of the geometries.

This method extends the DAStatics function UnionGeometryArray that enables you to specify an array size so you don't have to use a VARIANT for the array.

IDAStatics::UserData

IDAStatics Interface

Associates a DAUserData object with the given IUnknown interface.

Syntax

HRESULT UserData(
    IUnknown *data,
    IDAUserData **retUserData
);

Parameters

data
[in] Pointer to the IUnknown interface.
retUserData
[out] Address of a pointer to the DAUserData object associated with this IUnknown.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

IDAStatics::Vector2BSplineEx

IDAStatics

Creates a DAVector2 object based on a B-spline function. The function depends on the mathematical degree, the knots, the control elements, and the weights of the control elements (weights are optional).

Syntax

HRESULT Vector2BSplineEx(
    int degree,
    LONG numKnots,
    IDANumber *knots,
    LONG numPts,
    IDAVector2 *ctrlPts,
    LONG numWts,
    IDANumber *weights,
    IDANumber *evaluator,
    IDAVector2 **bvr
);

Parameters

degree
[in] Number representing the mathematical degree of the B-spline to evaluate. Must be 1, 2, or 3.
numKnots
[in] Size of the knots array.
knots
[in, size_is(numKnots)] Pointer to an array of DANumber objects representing the knots used to calculate the B-spline.
numPts
[in] Size of the ctrlPts array.
ctrlPts
[in, size_is(numPts)] Pointer to an array of DAVector2 objects representing the control elements used to calculate the B-spline.
numWts
Size of the weights array. There must be the same number of weights as control elements, so numWts must equal numPts.
weights
[in, size_is(numWts)] Pointer to an array of DANumber objects representing the weights used to calculate the rational B-spline. For nonrational B-splines, the value of weights is null.
evaluator
[in] Pointer to a DANumber object that controls the spline evaluation.
bvr
[out] Address of a pointer to the new DAVector2 object based on the specified B-spline function.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

See the Remarks section in NumberBSplineEx for an explanation of the B-spline function.

See Also

Vector2BSpline

IDAStatics::Vector3BSplineEx

IDAStatics

Creates a DAVector3 object based on a B-spline function. The function depends on the mathematical degree, the knots, the control elements, and the weights of the control elements (these are optional).

Syntax

HRESULT Vector3BSplineEx(
    int degree,
    LONG numKnots,
    IDANumber *knots,
    LONG numPts,
    IDAVector3 *ctrlPts,
    LONG numWts,
    IDANumber *weights,
    IDANumber *evaluator,
    IDAVector3 **bvr
);

Parameters

degree
[in] Number representing the mathematical degree of the B-spline to evaluate. Must be 1, 2, or 3.
numKnots
[in] Size of the knots array.
knots
[in, size_is(numKnots)] Pointer to an array of DANumber objects representing the knots used to calculate the B-spline.
numPts
[in] Size of the ctrlPts array.
ctrlPts
[in, size_is(numPts)] Pointer to an array of DAVector3 objects representing the control elements used to calculate the B-spline.
numWts
Size of the weights array. There must be the same number of weights as control elements, so numWts must equal numPts.
weights
[in, size_is(numWts)] Pointer to an array of DANumber objects representing the weights used to calculate the rational B-spline. For nonrational B-splines, the value of weights is null.
evaluator
[in] Pointer to a DANumber object that controls the spline evaluation.
bvr
[out] Address of a pointer to the new DAVector3 object based on the specified B-spline function.

Return Value

Returns an HRESULT value that indicates the success of the method or the reason why it failed. This HRESULT depends on the implementation of the interface.

Remarks

See the Remarks section in NumberBSplineEx for an explanation of the B-spline function.

See Also

Vector3BSpline


Top of Page Top of Page
© 2000 Microsoft and/or its suppliers. All rights reserved. Terms of Use.