124 lines
2.9 KiB
C
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);
|