Question #2184

Camera::GetLocalNormal doing surface angle logic that belongs elsewhere...?

Added by Moses Milazzo over 3 years ago. Updated about 3 years ago.

Target version:
Software Version:
Test Reviewer:


The Camera::GetLocalNormal method performs logic to calculate local surface normal. The local surface normal is a calculation that seems to me to belong in the ShapeModel class or elsewhere, but not in the Camera class.

In fact, the Camera class implements many not-obviously-camera-related methods such as (but perhaps not limited to) those at the end of this description. This is related to question #2183.

bool SetUniversalGround (const double latitude, const double longitude)
bool SetUniversalGround (const double latitude, const double longitude, const double radius)
bool SetGround (Latitude latitude, Longitude longitude)
bool SetGround (const SurfacePoint &surfacePt)
bool SetRightAscensionDeclination (const double ra, const double dec)
void LocalPhotometricAngles (Angle &phase, Angle &incidence, Angle &emission, bool &success)
void GetLocalNormal (double normal[3])
bool GroundRange (double &minlat, double &maxlat, double &minlon, double &maxlon, Pvl &pvl)
bool ringRange (double &minRingRadius, double &maxRingRadius, double &minRingLongitude, double &maxRingLongitude, Pvl &pvl)
bool IntersectsLongitudeDomain (Pvl &pvl)
double NorthAzimuth ()
double SunAzimuth ()
double SpacecraftAzimuth ()
double OffNadirAngle ()

Related issues

Related to ISIS - Question #2183: ISIS::ShapeModel Class and its calculate*Normal methods Acknowledged 2014-10-27
Related to ISIS - Bug #2231: Camera method has potentially inconsistent logic Acknowledged 2015-03-12


#1 Updated by Tammy Becker over 3 years ago

  • Status changed from New to Acknowledged

#2 Updated by Moses Milazzo about 3 years ago

I'm adding this to FY15 Q2 for discussion reasons. We have a couple of other surface intersection issues that have bubbled to the top for Q2 and this should be part of the discussion.

Also available in: Atom PDF