L_VecSetScale

#include "lvkrn.h"

L_LVKRN_API L_INT L_VecSetScale(pVector, pScale, pObject, pOrigin, dwFlags)

pVECTORHANDLE pVector;

/* pointer to a vector handle */

const pVECTORPOINT pScale;

/* pointer to a vector point */

pVECTOROBJECT pObject;

/* pointer to a vector object */

const pVECTORPOINT pOrigin;

/* pointer to a vector point */

L_UINT32 dwFlags;

/* flag that indicates which objects to scale */

Scales all or part of the specified vectored image.

Parameter

Description

pVector

Pointer to a vector handle.

pScale

Pointer to a VECTORPOINT structure that contains the scale values for each axis. The translation values are in logical units.

pObject

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.

pOrigin

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.

dwFlags

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.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

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 dont your changes will not be saved.

Required DLLs and Libraries

LVKRN

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.

See Also

Functions:

L_VecGetScale, L_VecSetRotation, L_VecGetRotation, L_VecSetTranslation, L_VecGetTranslation, L_VecSetBindVerticesMode, L_VecGetBindVerticesMode, L_VecApplyTransformation

Example

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 );
}