Ignore:
Timestamp:
01/13/06 17:39:43 (18 years ago)
Author:
mattausch
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/GtpVisibilityPreprocessor/src/Beam.cpp

    r534 r535  
    2828  mPlanes.push_back(Plane3(-CrossProd(directions[3], directions[0]), center)); 
    2929 
    30  
    3130  // now make sure all planes contain the spatial box 
    3231  int i, j; 
    33   for (i=0; i < mPlanes.size(); i++) { 
    34         for (j=0; j < 8; j++) { 
    35           float dist = mPlanes[i].Distance(box.GetVertex(j)); 
    36           if (dist > 0) 
    37                 mPlanes[i].mD -= dist; 
    38         } 
     32  for (i=0; i < mPlanes.size(); i++)  
     33  { 
     34          float maxDist = 0; 
     35           
     36          for (j=0; j < 8; j++)  
     37          { 
     38                float dist = mPlanes[i].Distance(box.GetVertex(j)); 
     39         
     40                if (dist > maxDist) 
     41                        maxDist = dist; 
     42          } 
     43 
     44          mPlanes[i].mD -= maxDist; 
    3945  } 
    4046 
     
    8591} 
    8692 
     93 
    8794Vector3 Beam::GetMainDirection() const 
    8895{ 
    89          Vector3 directions[4]; 
    90           
    91          directions[0] = VssRay::GetDirection(mDirBox.Min().x, mDirBox.Min().y); 
    92          directions[1] = VssRay::GetDirection(mDirBox.Max().x, mDirBox.Min().y); 
    93          directions[2] = VssRay::GetDirection(mDirBox.Max().x, mDirBox.Max().y); 
    94          directions[3] = VssRay::GetDirection(mDirBox.Min().x, mDirBox.Max().y); 
    95  
    96         const Vector3 mainDir = directions[0] + directions[1] + directions[2] + directions[3]; 
    97         return Normalize(mainDir); 
     96        const Vector3 dCenter = mDirBox.Center(); 
     97        return VssRay::GetDirection(dCenter.x, dCenter.y); 
    9898} 
    9999 
Note: See TracChangeset for help on using the changeset viewer.