[ Previous | Next | Contents | Glossary | Home | Search ]
The graPHIGS Programming Interface : Subroutine Reference

## GPVMF - Set Vertex Morphing Factors

 GPVMF (flength,fdata)

Purpose

Use GPVMF to insert a Set Vertex Morphing Factors structure element into the open structure following the element pointer, or to replace the element pointed at by the element pointer with a Set Vertex Morphing Factors structure element, depending upon the edit mode.

During traversal, the graPHIGS API combines the value of fdata with a primitive's vertex morphing values to modify its rendered vertex coordinates.

In vertex morphing, the graPHIGS API combines the vertex coordinate values (x, y, z) with the vertex morphing scale factors in the fdata parameter (s1 , s2 , ..., snscale ) and the vertex morphing vectors
(( dx1 , dy1 , dz1 ), ( dx2 , dy2 , dz2 ), ..., ( dxnvector , dynvector , dznvector ))
to create the new vertex coordinate values (x', y', z') as follows:
x' = s1 x + s2 dx1 + s3 dx2 +...+ snscale dxnvector
y' = s1 y + s2 dy1 + s3 dy2 +...+ snscale dynvector
z' = s1 z + s2 dz1 + s3 dz2 +...+ snscale dznvector

These equations show that the number of morphing scale factors should be one more than the number of morphing vectors in the affected primitive (nscale=nvector+1). However, if the number of morphing vectors and scale factors disagree at traversal time, then 0 value vectors and scale factors are assumed wherever necessary. For example, if you supply too many scale factors for a given primitive (nscale>nvector+1), then the graPHIGS API ignores the extra scale factors, as if there were additional 0 valued morphing vectors in the primitive definition. If you supply too few scale factors (nscale<nvector+1), then the graPHIGS API ignores the extra morphing vectors, just as if there were additional morphing scale factors with value zero in this function call.

The traversal default for vertex morphing is flength=1 and fdata={1.0}

Use GPQWDT to inquire the morphing facilities of a specified workstation.

Parameters

flength -- specified by user, fullword integer (>=1)

Number of morphing factors.

fdata -- specified by user, array of short floating-numbers

List of morphing factors. The number of entries in this list is given by the flength parameter.

Error Codes

5
FUNCTION REQUIRES STATE STOP OR NROP (NOT STCL)
61
LENGTH IS INVALID

Related Subroutines

GPBDMF
Set Back Data Morphing Factors
GPDMF
Set Data Morphing Factors
GPQWDT
Inquire Workstation Description

RCP code

201343519 (X'0C00421F')

[ Previous | Next | Contents | Glossary | Home | Search ]