![]()  | 
  
    Isis 3 Programmer Reference
    
   | 
 
This class is used to create ShapeModel objects. More...
#include <ShapeModelFactory.h>

Static Public Member Functions | |
| static ShapeModel * | create (Target *target, Pvl &pvl) | 
| Construct a valid shape model from the given target and contents of kernels group.  More... | |
Private Types | |
| enum | {  Ellipsoid, Isis3EquatorialCylindrical, Isis3Dem, Plane, Stack, NaifDSK, Bullet, Embree }  | 
Private Member Functions | |
| ShapeModelFactory () | |
| Constructor is private to avoid instantiating the class.  More... | |
| ~ShapeModelFactory () | |
| Destructor.  More... | |
This class is used to create ShapeModel objects.
It determines the type of shape model in the input Pvl object and creates the appropriate type of shape model.
2012-10-31 - Ken Edmundson - Implemented plane shape
2014-01-14 - Jeannie Backer - Improved error message. Fixes #1957.
2015-03-08 - Jeannie Backer - Added implementation for NAIF DSK models. References #2035.
2017-05-19 Christopher Combs - Modified unitTest.cpp: added ReportError method to truncate paths before data directory. Allows test to pass when not using the default data area. Fixes #4738.
2017-06-08 Makayla Shepherd - Added a cube pointer deletion to fix a memory leak. Fixes #4890.
2017-03-23 Kris Becker - Added support for Embree and Bullet models.
2017-08-04 Kristin Berry - Removed checks for a 'CubeSupported' IsisPreferences Pvl Keyword. ISIS3 Cube DEMs are not supported by Embree and Bullet at this time.
Definition at line 53 of file ShapeModelFactory.h.
      
  | 
  private | 
Constructor is private to avoid instantiating the class.
Use the Create method.
Definition at line 58 of file ShapeModelFactory.cpp.
      
  | 
  private | 
Destructor.
Definition at line 63 of file ShapeModelFactory.cpp.
      
  | 
  static | 
Construct a valid shape model from the given target and contents of kernels group.
If the Kernels group does not have a ShapeModel or ElevationModel specified, then the default model is an ellipsoidal shape.
Definition at line 79 of file ShapeModelFactory.cpp.
References _FILEINFO_, Isis::PvlContainer::addKeyword(), Isis::IException::append(), Isis::FileName::extension(), Isis::PvlObject::findGroup(), Isis::PvlFlatMap::get(), Isis::PvlContainer::hasKeyword(), Isis::Projection::IsEquatorialCylindrical(), Isis::Target::isSky(), Isis::PvlFlatMap::merge(), Isis::Cube::open(), Isis::Cube::projection(), Isis::BulletShapeModel::setTolerance(), Isis::EmbreeShapeModel::setTolerance(), Isis::toDouble(), and Isis::toString().