Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

quad.h

Go to the documentation of this file.
00001 /*
00002 ** ---------------------------------------------------------------
00003 ** quad.h  -  Quadrilateral primitive class definition.
00004 **
00005 ** ---------------------------------------------------------------
00006 */
00007 
00008 #ifndef _QUAD_H
00009 #define _QUAD_H
00010 
00037 /*
00038 ** ---------------------------------------------------------------
00039 ** Used global definitions:
00040 **
00041 */
00042 #include <stdio.h>  /* FILE */
00043 #include "prm.h"
00044 
00045 
00046 class Quad : public Prm
00047 {
00048  protected:
00049 /*
00050 ** ---------------------------------------------------------------
00051 ** Protected data type definitions:
00052 */
00053 
00056   struct Pnt3d {
00058     double    x;
00060     double    y;
00062     double    z;
00063    };
00064 
00067   struct Vec3d {
00069     double    x;
00071     double    y;
00073     double    z;
00074    };
00075 
00076 /*
00077 ** ---------------------------------------------------------------
00078 ** Protected object private attributes:
00079 **
00080 */
00083   Coord p[4];
00084 
00085  public:
00086 /*
00087 ** ---------------------------------------------------------------
00088 ** Public constructor and destructor functions:
00089 **
00090 */
00091 /* --------------------------------------------------------------- */
00117   Quad( );
00118   
00119 /* --------------------------------------------------------------- */
00131   Quad( int back );
00132   
00133 /* --------------------------------------------------------------- */
00142   virtual ~Quad( );
00143 
00144  protected:
00145 /*
00146 ** ---------------------------------------------------------------
00147 ** Protected class functions:
00148 **
00149 */
00150 /* --------------------------------------------------------------- */
00163   static void PickCode( double x, double y, double xmin, double xmax,
00164                         double ymin, double ymax, int cod[4] );
00165 
00166 /* --------------------------------------------------------------- */
00185   static int PickLine( double x, double y, double pick_tol,
00186                        double x0, double y0, double x1, double y1 );
00187 
00188 /* --------------------------------------------------------------- */
00199   static void FaceNormal( Pnt3d* p0, Pnt3d* p1, Pnt3d* p2, Pnt3d* p3,
00200                           Vec3d* normal );
00201 
00202 /*
00203 ** ---------------------------------------------------------------
00204 ** Protected instance (object) functions:
00205 **
00206 */
00207 /* --------------------------------------------------------------- */
00218   void BuildSolidPrm( Pnt3d* solid_prm );
00219 
00220  public:
00221 /*
00222 ** ---------------------------------------------------------------
00223 ** Public instance (object) functions
00224 ** (implemented in the derived class):
00225 **
00226 */
00227 /* --------------------------------------------------------------- */
00235   void Read( FILE* fd );
00236 
00237 /* --------------------------------------------------------------- */
00244   void Write( FILE* fd );
00245 
00246 /* --------------------------------------------------------------- */
00254   int GetNPts( void );
00255 
00256 /* --------------------------------------------------------------- */
00280   void SetCoords( int id, double x, double y );
00281 
00282 /* --------------------------------------------------------------- */
00305   void GetCoords( int id, double* x, double* y );
00306 
00307 /* --------------------------------------------------------------- */
00336   void Set1stPt( double x, double y );
00337 
00338 /* --------------------------------------------------------------- */
00367   void Set2ndPt( double x, double y );
00368 
00369 /* --------------------------------------------------------------- */
00389   int PickArea( double x, double y );
00390 
00391 /* --------------------------------------------------------------- */
00423   int PickVertex( double x, double y, double tol, int* id );
00424 
00425 /* --------------------------------------------------------------- */
00456   int PickSide( double x, double y, double tol, int* id );
00457 
00458 /* --------------------------------------------------------------- */
00466   void Translate( double dx, double dy );
00467 
00468 /* --------------------------------------------------------------- */
00490   void TranslateVertex( int id, double dx, double dy );
00491 
00492 /* --------------------------------------------------------------- */
00517   void TranslateSide( int id, double dx, double dy );
00518 
00519 /* --------------------------------------------------------------- */
00530   void GetBox( double* xmin, double* xmax, 
00531                double* ymin, double* ymax );
00532 
00533 /* --------------------------------------------------------------- */
00547   void DisplayBoundary( void );
00548 
00549 /* --------------------------------------------------------------- */
00561   void DisplayInterior( void );
00562 
00563 /* --------------------------------------------------------------- */
00575   void DisplaySolid( void );
00576 
00577 /* --------------------------------------------------------------- */
00589   void HighltSolid( void );
00590 
00591 /* --------------------------------------------------------------- */
00602   void DisplayZbuffer( void );
00603 
00604 };
00605 
00608 #endif

Generated on Mon Jun 21 12:45:12 2010 for Trab4 by  doxygen 1.4.2-20050421