Scales all or part of the specified vectored image.
#include "ltvkrn.h"
L_LVKRN_API L_INT L_VecSetScale(pVector, pScale, pObject, pOrigin, dwFlags)
Pointer to a vector handle.
Pointer to a VECTORPOINT structure that contains the scale values for each axis. The translation values are in logical units.
Pointer to a VECTOROBJECT structure that references the object to scale. If this parameter is not NULL, only the specified object will be scaled. If this parameter is NULL, the objects to scale are determined by dwFlags.
Pointer to a VECTORPOINT structure that contains the scale center. If pObject is not NULL, scaling occurs around this point. If pOrigin is NULL, the scale center is the accumulative center of the objects to be rotated.
Flag that indicates which objects to scale. This flag is valid only if pObject is NULL. If pObject is not NULL, this parameter is ignored. Possible values are:
Value | Meaning |
---|---|
0 | Scale all objects. |
VECTOR_FLAGS_SELECTED_ONLY | Scale only the currently selected objects within the vector handle. |
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
Scales all or part of the specified vector image based on the scale values in pScale.
pScale contains a scale value for each axis. A scale value of 1.0 represents a scale factor of 100%; a scale value of 0.5 represents a scale factor of 50%; a scale value of 2.0 represents a scale factor of 200%, etc.
The scale values may be retrieved using L_VecGetScale.
Note: When you scale a certain object, it may or may not effect other unselected objects sharing vertices with the selected object. This depends on the current bind-vertices mode set by L_VecSetBindVerticesMode.
You should call L_VecApplyTransformation to make the new scaling part of the vector image, if you do not your changes will not be saved.
This example will set the scale factor of all objects in a vector handle to 200%.
L_INT VecSetScaleExample(pVECTORHANDLE pVector)
{
VECTORPOINT scale;
scale.x = 2.0F;
scale.y = 2.0F;
scale.z = 2.0F;
/* Set new scale values. Note that we will scale around the center of the drawing */
return L_VecSetScale( pVector, &scale, NULL, NULL, 0L );
}