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

CloseDSOPicker Class Reference

Inheritance diagram for CloseDSOPicker:

Inheritance graph
Collaboration diagram for CloseDSOPicker:

Collaboration graph
List of all members.

Public Member Functions

 CloseDSOPicker (const Point3d &pos, const Vec3d &dir, double maxDistance, float angle)
void process (DeepSkyObject *const &dso, double distance, float appMag)
 ~CloseDSOPicker ()

Public Attributes

double closestDistance
const DeepSkyObjectclosestDSO
double maxDistance
Vec3d pickDir
Point3d pickOrigin

Constructor & Destructor Documentation

CloseDSOPicker::CloseDSOPicker const Point3d pos,
const Vec3d dir,
double  maxDistance,
float  angle
 

Definition at line 796 of file universe.cpp.

00799                                             :
00800     pickOrigin      (pos),
00801     pickDir         (dir),
00802     maxDistance     (maxDistance),
00803     closestDSO      (NULL),
00804     closestDistance(1.0e32)
00805 {
00806 }

CloseDSOPicker::~CloseDSOPicker  )  [inline]
 

Definition at line 783 of file universe.cpp.

00783 {};


Member Function Documentation

void CloseDSOPicker::process DeepSkyObject *const &  dso,
double  distance,
float  appMag
[virtual]
 

Implements OctreeProcessor< DeepSkyObject *, double >.

Definition at line 809 of file universe.cpp.

References closestDistance, closestDSO, distance(), Point3< T >::distanceTo(), maxDistance, pickDir, pickOrigin, and testIntersection().

00812 {
00813 
00814     if (distance > maxDistance)
00815         return;
00816 
00817     double  distance2  = 0.0;
00818     if (testIntersection(Ray3d(pickOrigin, pickDir),
00819                          Sphered(dso->getPosition(), (double) dso->getRadius()),
00820                          distance2))
00821     {
00822         // Don't select the object the observer is currently in:
00823         if (pickOrigin.distanceTo(dso->getPosition()) > dso->getRadius() &&
00824             distance2 < closestDistance)
00825         {
00826             closestDSO = dso;
00827             closestDistance  = distance2;
00828         }
00829     }
00830 }


Member Data Documentation

double CloseDSOPicker::closestDistance
 

Definition at line 792 of file universe.cpp.

Referenced by process().

const DeepSkyObject* CloseDSOPicker::closestDSO
 

Definition at line 791 of file universe.cpp.

Referenced by Universe::pickDeepSkyObject(), and process().

double CloseDSOPicker::maxDistance
 

Definition at line 790 of file universe.cpp.

Referenced by process().

Vec3d CloseDSOPicker::pickDir
 

Definition at line 789 of file universe.cpp.

Referenced by process().

Point3d CloseDSOPicker::pickOrigin
 

Definition at line 788 of file universe.cpp.

Referenced by process().


The documentation for this class was generated from the following file:
Generated on Sat Jan 14 22:33:10 2006 for Celestia by  doxygen 1.4.1