home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / WD_SRC.ZIP / SOURCE / BSP.HPP < prev    next >
C/C++ Source or Header  |  1995-01-10  |  2KB  |  47 lines

  1.  
  2. class CLine;
  3. class CPoint;
  4.  
  5. // Used when testing which side a Line is from another.
  6. enum SideDir { LeftSide, RightSide, Intersect };
  7.  
  8. class CPoint
  9. {
  10. public:
  11.         // Every Point has 2 implied Y coordinates.  These are the same for every Point
  12.         // so there's no need to store them.  They don't change either when you translate
  13.         // and rotate the points so there's no need to have them for transX and Y.
  14.  
  15.         // The point's real coordinates.  These are from looking at it from overhead.
  16.         WORD    localX, localY;
  17. }; 
  18.  
  19.  
  20. // Does all the navigating of the tree, drawing the necessary Lines.
  21. BOOL bsp_TraverseAndDrawTree( CLine *pRootLine );
  22.  
  23. // Just tells what side of the Line the player is on.
  24. SideDir bsp_PlayerSide( Player *pPlayer, CLine *pLine );
  25.  
  26. // Rotates pointX and pointY around xOrigin and yOrigin.
  27. void RotatePoint( DWORD xOrigin, DWORD yOrigin, Angle rotateAngle, DWORD pointX, DWORD pointY, Fixed *pDestX, Fixed *pDestY );
  28.  
  29. // Same as RotatePoint but expects the parameters passed to it in fixed-point.
  30. void RotatePointFixed( Fixed xOrigin, Fixed yOrigin, Angle rotateAngle, Fixed pointX, Fixed pointY, Fixed *pDestX, Fixed *pDestY );
  31.  
  32. // Rotates pointX and pointY around xOrigin and yOrigin.  Only stores the Y coordinate.
  33. void RotatePointYOnly( DWORD xOrigin, DWORD yOrigin, Angle rotateAngle, DWORD pointX, DWORD pointY, Fixed *pDestY );
  34.  
  35. // Returns the angle from point 1 to point 2.
  36. Angle GetAngle( DWORD x1, DWORD y1, DWORD x2, DWORD y2 );
  37.  
  38. // Tests to see if pLine doesn't intersect the view angles.
  39. SideDir bsp_PruneTree( CLine *pLine );
  40.  
  41. // Used for debugging .. goes through the whole tree and finds the parent of
  42. // pChildLine.
  43. CLine *bsp_GetParentFromLine( CLine *pRootLine, CLine *pChildLine );
  44.  
  45.  
  46.  
  47.