#ifndef CALCULATE_REFRACTION_05_04_06__ #define CALCULATE_REFRACTION_05_04_06__ /** @file CalcRefraction.h @author Brian Magill @datecreated 05/04/2006 $Date:$ $Revision:$ @copyright (©) Copyright 2006 by GATS Inc. 11864 Canon Blvd., Suite 101, Newport News, VA 23606 All Rights Reserved. No part of this software or publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise without the prior written permission of GATS Inc. @brief: Calculates Refraction angle from solar extent and sink rate. */ //---------------------------------------------------------------------- // #include #include #include "AbstractTauFunction.h" typedef boost::shared_ptr TauPointer; class CalcRefraction { private: double solar_width; TauPointer tauPtr; public: CalcRefraction() { } CalcRefraction(TauPointer const ptr): tauPtr(ptr) { } CalcRefraction(CalcRefraction const &rhs): tauPtr(rhs.tauPtr) { } CalcRefraction& operator = (CalcRefraction const& rhs ) { if (this == &rhs) return *this; tauPtr = rhs.tauPtr; return *this; }; ~CalcRefraction() { }; /// /// Calculates the refraction angle for an array of times and apparent solar extents /// /// @param time - Array of times /// @param solar_ext - corresponding array of apparent solar extents /// std::valarray get_refraction(const std::valarray &time, const std::valarray &solarShinkage) const; }; #endif