mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
1.4 KiB
74 lines
1.4 KiB
/******************************Module*Header*******************************\
|
|
* Module Name: xform.h
|
|
*
|
|
* (Brief description)
|
|
*
|
|
* Created: 05-Apr-1992 11:06:23
|
|
* Author: Bodin Dresevic [BodinD]
|
|
*
|
|
* Copyright (c) 1990 Microsoft Corporation
|
|
*
|
|
\**************************************************************************/
|
|
|
|
|
|
#if defined(_MIPS_) || defined(_ALPHA_) || defined(_PPC_)
|
|
|
|
typedef FLOAT EFLOAT;
|
|
#ifndef TT_DEBUG_EXTENSIONS
|
|
#define lCvt(ef, l) ((LONG) (ef * l))
|
|
#endif
|
|
|
|
#else // i386
|
|
|
|
typedef struct _EFLOAT
|
|
{
|
|
LONG lMant;
|
|
LONG lExp;
|
|
} EFLOAT;
|
|
|
|
#ifndef TT_DEBUG_EXTENSIONS
|
|
LONG lCvt(EFLOAT ef,LONG l);
|
|
#endif
|
|
|
|
#endif // i386
|
|
|
|
typedef EFLOAT *PEFLOAT;
|
|
|
|
typedef struct _VECTORFL
|
|
{
|
|
EFLOAT x;
|
|
EFLOAT y;
|
|
} VECTORFL, *PVECTORFL;
|
|
|
|
|
|
BOOL bFDXform
|
|
(
|
|
XFORM *pxf,
|
|
POINTFIX *pptfxDst,
|
|
POINTL *pptlSrc,
|
|
ULONG c
|
|
);
|
|
|
|
BOOL bXformUnitVector
|
|
(
|
|
POINTL *pptl, // IN, incoming unit vector
|
|
XFORM *pxf, // IN, xform to use
|
|
PVECTORFL pvtflXformed, // OUT, xform of the incoming unit vector
|
|
POINTE *ppteUnit, // OUT, *pptqXormed/|*pptqXormed|, POINTE
|
|
POINTQF *pptqUnit, // OUT, optional
|
|
EFLOAT *pefNorm // OUT, |*pptqXormed|
|
|
);
|
|
|
|
VOID vLTimesVtfl // *pptq = l * pvtfl, *pptq is in 28.36 format
|
|
(
|
|
LONG l,
|
|
VECTORFL *pvtfl,
|
|
POINTQF *pptq
|
|
);
|
|
|
|
|
|
FIX fxLTimesEf //!!! SHOULD BE MOVED TO TTFD and VTFD
|
|
(
|
|
EFLOAT *pef,
|
|
LONG l
|
|
);
|