GeoTessCPP  2.0.0
Software to facilitate storage and retrieval of 3D information about the Earth.
 All Classes Namespaces Files Functions Variables Typedefs Friends Defines
include/Horizon.h
Go to the documentation of this file.
00001 //- ****************************************************************************
00002 //- 
00003 //- Copyright 2009 Sandia Corporation. Under the terms of Contract
00004 //- DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government
00005 //- retains certain rights in this software.
00006 //- 
00007 //- BSD Open Source License.
00008 //- All rights reserved.
00009 //- 
00010 //- Redistribution and use in source and binary forms, with or without
00011 //- modification, are permitted provided that the following conditions are met:
00012 //- 
00013 //-    * Redistributions of source code must retain the above copyright notice,
00014 //-      this list of conditions and the following disclaimer.
00015 //-    * Redistributions in binary form must reproduce the above copyright
00016 //-      notice, this list of conditions and the following disclaimer in the
00017 //-      documentation and/or other materials provided with the distribution.
00018 //-    * Neither the name of Sandia National Laboratories nor the names of its
00019 //-      contributors may be used to endorse or promote products derived from
00020 //-      this software without specific prior written permission.
00021 //- 
00022 //- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00023 //- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00024 //- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00025 //- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
00026 //- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00027 //- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00028 //- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00029 //- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00030 //- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00031 //- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00032 //- POSSIBILITY OF SUCH DAMAGE.
00033 //-
00034 //- ****************************************************************************
00035 
00036 #ifndef HORIZON_H_
00037 #define HORIZON_H_
00038 // **** _SYSTEM INCLUDES_ ******************************************************
00039 
00040 #include <iostream>
00041 #include <string>
00042 #include <fstream>
00043 
00044 // use standard library objects
00045 using namespace std;
00046 
00047 // **** _LOCAL INCLUDES_ *******************************************************
00048 
00049 #include "CPPUtils.h"
00050 #include "CPPGlobals.h"
00051 #include "Profile.h"
00052 
00053 // **** _BEGIN GEOTESS NAMESPACE_ **********************************************
00054 
00055 namespace geotess {
00056 
00057 // **** _FORWARD REFERENCES_ ***************************************************
00058 
00059 class GeoTessPosition;
00060 
00061 // **** _CLASS DEFINITION_ *****************************************************
00062 
00079 class GEOTESS_EXP_IMP Horizon
00080 {
00081 
00082 private:
00083 
00084 protected:
00085 
00092         int layerIndex;
00093 
00094 
00095 public:
00096 
00100         Horizon(const int& lyrIndex) { layerIndex =  lyrIndex; } ;
00101 
00102         virtual ~Horizon() {};
00103 
00104         virtual string class_name() { return "Horizon"; };
00105 
00110         virtual double getValue() = ABSTRACT;
00111 
00127         virtual double getRadius(const double* position, Profile** profiles) = ABSTRACT;
00128 
00137         virtual double getRadius(GeoTessPosition& position) = ABSTRACT;
00138 
00146         virtual int getLayerIndex() { return layerIndex; };
00147 
00148         virtual string str() = ABSTRACT;
00149 
00150 };
00151 // end class Horizon
00152 
00153 }// end namespace geotess
00154 
00155 #endif /* HORIZON_H_ */