Files
lba1-classic/LIB386/LIB_3D/LIB_3D.H
Gwen Gourevich c5f4f6ba25 Initial commit
2021-10-27 10:34:18 +02:00

124 lines
2.9 KiB
C

#ifdef WATCOM9
#pragma library ("f:\projet\lib386\lib_3d\lb9_3d.lib");
#else
#pragma library ("f:\projet\lib386\lib_3d\lib_3d.lib");
#endif
#define NORMAL_UNIT 64
#define INFO_TRI 1
#define INFO_ANIM 2
#define TYPE_ROTATE 0
#define TYPE_TRANSLATE 1
#define TYPE_ZOOM 2
#define MAT_TRISTE 0
#define MAT_PIERRE 1
#define MAT_COPPER 2
#define MAT_BOPPER 3
#define MAT_MARBRE 4
#define MAT_TRANS 5
#define MAT_TRAME 6
#define MAT_FLAT 7
#define MAT_GRANIT 8
#define MAT_GOURAUD 9
#define MAT_DITHER 10
/* structures */
typedef struct { WORD X ;
WORD Y ;
WORD Z ; } T_GROUPE_INFO ;
typedef struct { WORD StartValue ;
WORD EndValue ;
UWORD TimeValue ;
ULONG MemoTicks ; } T_REAL_VALUE ;
typedef struct { WORD Xp ;
WORD Yp ;
WORD Zrot ; } T_LIST_POINT ;
extern WORD AnimMasterRot ;
extern WORD AnimStepAlpha, AnimStepBeta, AnimStepGamma ;
extern WORD AnimStepX, AnimStepY, AnimStepZ ;
extern WORD ScreenXmin, ScreenXmax, ScreenYmin, ScreenYmax ;
extern WORD XCentre, YCentre ;
extern WORD IsoScale ;
extern WORD Xp, Yp ;
extern WORD Z_Min, Z_Max ;
extern WORD NbPoints ;
extern T_LIST_POINT List_Point ;
extern LONG KFactor, LFactorY, LFactorX ;
extern LONG X0, Y0, Z0 ;
extern LONG EX0, EY0 ; /* Rot2D sur LONG */
extern LONG CameraX, CameraY, CameraZ ;
extern LONG CameraXr, CameraYr, CameraZr ;
extern LONG Alpha, Beta, Gamma ;
extern LONG lAlpha, lBeta, lGamma ;
extern LONG AlphaLight, BetaLight, GammaLight ;
extern LONG NormalXLight, NormalYLight, NormalZLight ;
extern LONG MatriceWorld, MatriceTempo;
extern LONG MatriceRot, MatriceDummy;
extern LONG Distance ;
extern LONG CmptMemoTimerRef ;
void InitRealValue( WORD start,
WORD end,
WORD time,
T_REAL_VALUE *ptrstruct ) ;
void InitRealAngle( WORD start,
WORD end,
WORD time,
T_REAL_VALUE *ptrstruct ) ;
WORD GetRealValue( T_REAL_VALUE *ptrstruct ) ;
WORD GetRealAngle( T_REAL_VALUE *ptrstruct ) ;
WORD StockInterAnim( UBYTE *BufferAnim, UBYTE *PtrObj ) ;
LONG RegleTrois32( LONG val1, LONG val2, LONG nbstep, LONG step ) ;
LONG Distance2D( LONG x0, LONG z0, LONG x1, LONG z1 ) ;
LONG Distance3D( LONG x0, LONG y0, LONG z0,
LONG x1, LONG y1, LONG z1 ) ;
void Rot2D( LONG x, LONG y, LONG angle ) ;
void WorldRotatePoint( LONG x, LONG y, LONG angle ) ;
void LongWorldRotatePoint( LONG x, LONG y, LONG angle ) ;
void LongInverseRotatePoint( LONG x, LONG y, LONG angle ) ;
void SetLightVector( WORD alpha, WORD beta, WORD gamma ) ;
void CopyMatrice( LONG *MatSrc, LONG *MatDest );
LONG AffObjetIso(LONG xwr, LONG ywr, LONG zwr,
LONG palpha, LONG pbeta, LONG pgamma,
void *ptrobj);
void PatchObjet(void *ptrobj);
LONG ProjettePoint(LONG CoorX, LONG CoorY, LONG CoorZ);
LONG LongProjettePoint(LONG CoorX, LONG CoorY, LONG CoorZ);
void SetProjection(LONG xc, LONG yc, LONG kfact, LONG lfactx, LONG lfacty);
void SetIsoProjection(LONG xc, LONG yc, LONG scale);
ULONG Sqr(ULONG x);