GPDMF (flength,fdata) |
Purpose
Use GPDMF to insert a Set Data 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 Data Morphing Factors structure element, depending on the current edit mode.
During traversal, the graPHIGS API combines the values of fdata with a primitive's data morphing vectors to modify its rendered data mapping data.
In data morphing, the graPHIGS API combines the data mapping data values
(x1
, x2
, ..., xndata
)
with the data morphing scale factors
in the fdata parameter
(s1
, s2
, ..., snscale
)
and the data morphing vectors
((d1
,1
, d1
,2
, ..., d1, ndata
),
(d2, 1
, d2
,2
, ..., d2
,ndata
), ...,
(dn
vector,1
, dnvector,2
, ...,
dnvector,ndata
))
to obtain the new data mapping data values
(x'1
, x'2
, ..., x'ndata
)
as follows:
x'1
= s1
x1
+
s2
d1
,1 +
s3
d2, 1
+...+
snscale
dnvector,1
x'2
= s1
x2
+
s2
d1
,2 +
s3
d2
,2 +...+
snscale
dnvector,2
...
x'ndata
= s1
xndata
+
s2
d1, ndata
+
s3
d2,ndata
+...+
snscale
d nvector,ndata
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 scale factors with value zero in this function call.
The traversal default for data morphing is flength=1 and fdata={1.0}
Use GPQWDT to inquire the morphing facilities of a specified workstation.
Parameters
Error Codes
Related Subroutines
RCP code
201343520 (X'0C004220')