home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / 3DTOSHI2.ZIP / mpg3d / include / G3dsystm.h < prev    next >
C/C++ Source or Header  |  1996-04-28  |  3KB  |  96 lines

  1.  
  2. // g3dsystm.h
  3. //
  4. // Copyright (c) 1996 by Toshiaki Tsuji, all rights reserved.
  5.  
  6. #ifndef __G3DSYSTEM_H__
  7. #define __G3DSYSTEM_H__
  8.  
  9. #include "stdgfx.h"
  10. #include "g3dcam.h"
  11. #include "g3ddraw.h"
  12. #include "g3dfile.h"
  13. #include "g3dworld.h"
  14.  
  15. class G3DSYSTEM 
  16.   {
  17.     protected :
  18.       G3DDRAW *G3DDraw;
  19.       G3DWORLD *World;
  20.       G3DMATERIALLIB *MaterialLib;
  21.       G3DMATRIX ViewMatrix;
  22.       LONG NumVisibleShapes;
  23.       G3DSHAPE **VisibleShapes;
  24.       LONG ShadeFlags;
  25.       LONG FaceFlags;
  26.       BOOLEAN DepthCueing;
  27.       float DepthScale;
  28.       COLORTABLE *BlendTable;
  29.       BOOLEAN DoHaze;
  30.       COLORTABLE *HazeTable;
  31.       float HazeScale;
  32.  
  33.       VOID AllocateShapeTable ( LONG Num );
  34.       LONG CountNumShapes ();
  35.       VOID PainterSort ();
  36.       INT Get3DFileType ( FILEHANDLE f );
  37.       
  38.     public :      
  39.       G3DSYSTEM ();
  40.       virtual ~G3DSYSTEM ();
  41.       
  42.       VOID SetDestination ( IMAGE *Dest );
  43.       VOID SetViewDistance ( float ViewDistance );
  44.       VOID SetScreenCenter ( LONG CenterX, LONG CenterY );
  45.  
  46.       VOID SetMaterialLib ( G3DMATERIALLIB *NewLib );
  47.       VOID SetWorld ( G3DWORLD *NewWorld, BOOLEAN DeleteOld );
  48.  
  49.       VOID SetShadeFlags ( LONG Flags );
  50.       VOID SetFaceFlags ( LONG Flags );
  51.       VOID SetDepthCueing ( BOOLEAN OnOff, float Scale );
  52.       VOID SetBlendTable ( COLORTABLE *Table );
  53.       VOID SetHazing ( BOOLEAN OnOff, float Scale, COLORTABLE *Table );
  54.  
  55.       G3DMATERIALLIB* GetMaterialLib () { return MaterialLib; };
  56.       G3DMATERIAL *FindMaterialByName ( STRING Name );
  57.       G3DMATERIAL *FindMaterialByID ( LONG SearchID );
  58.       G3DMATERIAL *FindMaterialByIndex ( LONG Index );
  59.       
  60.       G3DWORLD* GetWorld () { return World; };
  61.       
  62.       G3DOBJECT* FindObjectByName ( STRING SearchName );
  63.       G3DOBJECT* FindObjectByID ( LONG SearchID );
  64.       
  65.       BOOLEAN Load3DFile ( STRING FileName, LINKEDLIST<G3DOBJECT*> *ObjectList,
  66.                            BOOLEAN ClockWise, double Scale );
  67.       BOOLEAN Save3DFile ( STRING FileName, LINKEDLIST<G3DOBJECT*> *ObjectList,
  68.                            BOOLEAN ClockWise, double Scale, INT Type );
  69.                         
  70.       BOOLEAN Init ();
  71.       VOID ShowView ( G3DCAMERA *Camera );
  72.       VOID SetViewPort ( LONG x1, LONG y1, LONG x2, LONG y2 );
  73.       VOID SetNearClipZ ( float Z );
  74.       FLPVECTOR3D ComputeNextPos ( FLPVECTOR3D StartP, FLPVECTOR3D Angle, 
  75.                                    FLPVECTOR3D Vector );
  76.       LONG CheckCollision ( FLPVECTOR3D StartPt, FLPVECTOR3D EndPt,
  77.                             COLLIDEDATA *CollideList, LONG MaxNum,
  78.                             float CollideDist, float Gap );
  79.  
  80.       // For benchmark purpose                      
  81.       VOID TestDrawTriangle ( FXPPOINT2D *Points, ANIMIMAGE *Texture,
  82.                               LONG Intensity, LONG Color, LONG DrawShadeFlags,
  83.                               LONG DrawFaceFlags, COLORTABLE *BlendTBL, COLORTABLE *ShadeTBL,
  84.                               COLORTABLE *HazeTBL ); 
  85.       VOID TestDrawTriangle2 ( FXPPOINT2D *Points, ANIMIMAGE *Texture,
  86.                                LONG Intensity, LONG Color, LONG DrawShadeFlags,
  87.                                LONG DrawFaceFlags, COLORTABLE *BlendTBL, COLORTABLE *ShadeTBL,
  88.                                COLORTABLE *HazeTBL ); 
  89.   }; // End of G3DSYSTEM
  90.  
  91. #endif
  92.  
  93.  
  94.  
  95.  
  96.