Changeset 20206

Show
Ignore:
Timestamp:
05/11/07 15:19:07 (2 years ago)
Author:
patrick
Message:

Implemented better encapsulation of the data in vrj::Frusum. Bumped version
to 2.1.27.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • juggler/branches/2.2/modules/vrjuggler/ChangeLog

    r20134 r20206  
    11DATE        AUTHOR      CHANGE 
    22----------- ----------- ------------------------------------------------------- 
     3May-11-2007 patrick     Made the data member of vrj::Frustum private and added 
     4                        vrj::Frustum::getValues() as the accessor for that 
     5                        data. 
     6                        NEW VERSION: 2.1.27 
    37May-04-2007 patrick     Improved OSG scene view lighting for subclasses of 
    48                        vrj::OsgApp. Submitted by Doug McCorkle. 
  • juggler/branches/2.2/modules/vrjuggler/VERSION

    r20134 r20206  
     12.1.27-0 @05/11/2007 20:20:00 UTC@ 
    122.1.26-0 @05/04/2007 16:15:00 UTC@ 
    232.1.25-0 @05/04/2007 16:10:00 UTC@ 
  • juggler/branches/2.2/modules/vrjuggler/vrj/Display/Frustum.cpp

    r20091 r20206  
    3333 
    3434Frustum::Frustum() 
     35   : mFrust(6, 0.0f) 
    3536{ 
    36    frust[0] = frust[1] = frust[2] = 0.0f; 
    37    frust[3] = frust[4] = frust[5] = 0.0f; 
     37   /* Do nothing. */ ; 
    3838} 
    3939 
     
    4242                                    const float rightVal) 
    4343{ 
    44    frust[VJ_BOTTOM] = bottomVal; 
    45    frust[VJ_LEFT]   = leftVal; 
    46    frust[VJ_TOP]    = topVal; 
    47    frust[VJ_RIGHT]  = rightVal; 
     44   mFrust[VJ_BOTTOM] = bottomVal; 
     45   mFrust[VJ_LEFT]   = leftVal; 
     46   mFrust[VJ_TOP]    = topVal; 
     47   mFrust[VJ_RIGHT]  = rightVal; 
    4848} 
    4949 
     
    5252                  const float nearVal, const float farVal) 
    5353{ 
    54    frust[VJ_LEFT]   = leftVal; 
    55    frust[VJ_RIGHT]  = rightVal; 
    56    frust[VJ_BOTTOM] = bottomVal; 
    57    frust[VJ_TOP]    = topVal; 
    58    frust[VJ_NEAR]   = nearVal; 
    59    frust[VJ_FAR]    = farVal; 
     54   mFrust[VJ_LEFT]   = leftVal; 
     55   mFrust[VJ_RIGHT]  = rightVal; 
     56   mFrust[VJ_BOTTOM] = bottomVal; 
     57   mFrust[VJ_TOP]    = topVal; 
     58   mFrust[VJ_NEAR]   = nearVal; 
     59   mFrust[VJ_FAR]    = farVal; 
    6060} 
    6161 
  • juggler/branches/2.2/modules/vrjuggler/vrj/Display/Frustum.h

    r20093 r20206  
    3131 
    3232#include <iostream> 
     33#include <vector> 
    3334 
    3435 
     
    4748   enum entry 
    4849   { 
    49       VJ_LEFT = 0, 
    50       VJ_RIGHT = 1, 
    51       VJ_BOTTOM, 
    52       VJ_TOP, 
    53       VJ_NEAR, 
    54       VJ_FAR 
     50      VJ_LEFT = 0,      /**< Left (X minium) */ 
     51      VJ_RIGHT = 1,     /**< Right (X maximum) */ 
     52      VJ_BOTTOM,        /**< Bottom (Y minimum) */ 
     53      VJ_TOP,           /**< Top (Y maximum) */ 
     54      VJ_NEAR,          /**< Near (Z minimum) */ 
     55      VJ_FAR            /**< Far (Z maximum) */ 
    5556   }; 
    5657 
     
    6263   void setNearFar(const float nearVal, const float farVal) 
    6364   { 
    64       frust[VJ_NEAR] = nearVal; 
    65       frust[VJ_FAR]  = farVal; 
     65      mFrust[VJ_NEAR] = nearVal; 
     66      mFrust[VJ_FAR]  = farVal; 
    6667   } 
    6768 
     
    7172   float& operator[](const unsigned int elt) 
    7273   { 
    73       return frust[elt]; 
     74      return mFrust[elt]; 
    7475   } 
    7576 
    7677   const float& operator[](const unsigned int elt) const 
    7778   { 
    78       return frust[elt]; 
     79      return mFrust[elt]; 
    7980   } 
    8081 
    81 public: 
    82    float frust[6];  /**< Left, Right, Bottom, Top, Near, Far */ 
     82   /** 
     83    * Returns the values for this frustum object. The values can (and should) 
     84    * be accessed using the identifiers defined in vrj::Frustum::entry. 
     85    * 
     86    * @since 2.1.27 
     87    */ 
     88   const std::vector<float>& getValues() const 
     89   { 
     90      return mFrust; 
     91   } 
     92 
     93private: 
     94   std::vector<float> mFrust;   /**< Left, Right, Bottom, Top, Near, Far */ 
    8395}; 
    8496 
    85 // ---- FRIEND FUNCTIONS ---- // 
    8697std::ostream& operator<<(std::ostream& out, Frustum& _frust); 
    8798 
  • juggler/branches/2.2/modules/vrjuggler/vrj/Draw/Direct3D/D3dWindow.cpp

    r19881 r20206  
    112112   } 
    113113 
    114    const float* frust = proj->getFrustum().frust; 
    115  
    116    vprDEBUG(vrjDBG_DRAW_MGR, vprDBG_HEX_LVL)  << "---- Frustum ----\n" 
    117                << proj->getFrustum().frust << std::endl 
    118                << vprDEBUG_FLUSH; 
     114   const std::vector<float>& frust = proj->getFrustum().getValues(); 
    119115 
    120116   D3DXMATRIX proj_matrix; 
  • juggler/branches/2.2/modules/vrjuggler/vrj/Draw/OGL/GlWindow.cpp

    r20097 r20206  
    238238   } 
    239239 
    240    const float* frust = proj->getFrustum().frust; 
    241  
    242    vprDEBUG(vrjDBG_DRAW_MGR, vprDBG_HEX_LVL)  << "---- Frustum ----\n" 
    243                << proj->getFrustum().frust << std::endl 
    244                << vprDEBUG_FLUSH; 
    245  
    246240   // --- Set up the projection --- // 
    247241   glMatrixMode(GL_PROJECTION); 
    248242   { 
     243      const std::vector<float>& frust = proj->getFrustum().getValues(); 
     244 
    249245      glLoadIdentity();             // Load identity matrix 
    250246      glFrustum(frust[Frustum::VJ_LEFT],frust[Frustum::VJ_RIGHT], 
  • juggler/branches/2.2/modules/vrjuggler/vrj/Draw/Pf/PfDrawManager.cpp

    r20085 r20206  
    13541354   { 
    13551355   */ 
    1356       vrj::Frustum frust(proj->getFrustum()); 
     1356      const vrj::Frustum& frust(proj->getFrustum()); 
    13571357      chan->setAutoAspect(PFFRUST_CALC_NONE);         // No auto aspect 
    13581358      chan->setNearFar(frust[Frustum::VJ_NEAR], frust[Frustum::VJ_FAR]);