Float.h
Go to the documentation of this file.
00001 //-----------------------------------------------------------------------------
00002 //  (c) 2006-8 by Basler Vision Technologies
00003 //  Section: Vision Components
00004 //  Project: GenApi
00005 //  Author:  Hartmut Nebelung, Fritz Dierks
00006 //  $Header$
00007 //
00008 //  License: This file is published under the license of the EMVA GenICam  Standard Group.
00009 //  A text file describing the legal terms is included in  your installation as 'GenICam_license.pdf'.
00010 //  If for some reason you are missing  this file please contact the EMVA or visit the website
00011 //  (http://www.genicam.org) for a full copy.
00012 //
00013 //  THIS SOFTWARE IS PROVIDED BY THE EMVA GENICAM STANDARD GROUP "AS IS"
00014 //  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00015 //  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00016 //  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE EMVA GENICAM STANDARD  GROUP
00017 //  OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,  SPECIAL,
00018 //  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT  LIMITED TO,
00019 //  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,  DATA, OR PROFITS;
00020 //  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY  THEORY OF LIABILITY,
00021 //  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT  (INCLUDING NEGLIGENCE OR OTHERWISE)
00022 //  ARISING IN ANY WAY OUT OF THE USE  OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00023 //  POSSIBILITY OF SUCH DAMAGE.
00024 //-----------------------------------------------------------------------------
00030 #ifndef GENAPI_FLOAT_H
00031 #define GENAPI_FLOAT_H
00032 
00033 #include "Base/GCString.h"
00034 #include "../IFloat.h"
00035 #include "Node.h"
00036 #include "BaseT.h"
00037 #include "ValueT.h"
00038 #include "NodeT.h"
00039 #include "FloatT.h"
00040 #include <map>
00041 
00042 #ifdef _MSC_VER
00043 #   pragma warning ( push )
00044 #   pragma warning ( disable : 4275 ) // non dll-interface XXX used as base for  dll-interface class YYY
00045 #endif
00046 
00047 namespace GENAPI_NAMESPACE
00048 {
00049 
00053     class CFloatImpl : public IFloat, public CNodeImpl
00054     {
00055     public:
00056         //-------------------------------------------------------------
00058 
00059 
00060             CFloatImpl();
00062 
00063     protected:
00064         //-------------------------------------------------------------
00066 
00067 
00068             virtual EAccessMode InternalGetAccessMode() const;
00069 
00071             virtual EInterfaceType InternalGetPrincipalInterfaceType() const
00072             {
00073                 return intfIFloat;
00074             }
00076 
00077     protected:
00078         //-------------------------------------------------------------
00080 
00081 
00082             virtual void InternalSetValue(double Value, bool Verify = true);
00083 
00085             virtual double InternalGetValue(bool Verify = false, bool IgnoreCache = false) const;
00086 
00088             virtual double InternalGetMin() const;
00089 
00091             virtual double InternalGetMax() const;
00092 
00094             virtual bool InternalHasInc();
00095 
00097             virtual double InternalGetInc();
00098 
00100             virtual const double_autovector_t InternalGetListOfValidValues();
00101 
00103             virtual  ERepresentation InternalGetRepresentation() const;
00104 
00106             virtual GENICAM_NAMESPACE::gcstring InternalGetUnit() const;
00107 
00109             virtual EDisplayNotation InternalGetDisplayNotation() const;
00110 
00112             virtual int64_t InternalGetDisplayPrecision() const;
00114 
00115     protected:
00116         //-------------------------------------------------------------
00118 
00119 
00121         virtual ECachingMode InternalGetCachingMode() const;
00123 
00124 
00125         virtual void SetInvalid(ESetInvalidMode simMode);
00126 
00127     //-------------------------------------------------------------
00128     // Initializing
00129     //-------------------------------------------------------------
00130     public:
00131 
00132         
00133     virtual void SetProperty( CProperty &Property );
00134     virtual bool GetProperty( CNodeDataMap *pNodeDataMap, CPropertyID::EProperty_ID_t PropertyID, CNodeData::PropertyVector_t &PropertyList ) const;
00135     
00136     protected:
00137         //-------------------------------------------------------------
00139 
00140 
00141             std::map<int64_t, CFloatPolyRef> m_ValuesIndexed;
00142 
00144             CFloatPolyRef m_ValueDefault;
00145 
00147             CFloatPolyRef m_Value;
00148 
00150             CFloatPolyRef m_Min;
00151 
00153             CFloatPolyRef m_Max;
00154 
00156             CFloatPolyRef m_Inc;
00157 
00159             CIntegerPolyRef m_Index;
00160 
00162             mutable ERepresentation m_Representation;
00163 
00165             GENICAM_NAMESPACE::gcstring m_Unit;
00166 
00168             EDisplayNotation m_DisplayNotation;
00169 
00171             int64_t m_DisplayPrecision;
00172 
00174     };
00175 
00179     class CFloat
00180         : public BaseT< ValueT< NodeT < FloatT < CFloatImpl > > > >
00181     {
00182     };
00183 }
00184 
00185 #ifdef _MSC_VER
00186 #   pragma warning ( pop )
00187 #endif
00188 
00189 #endif // GENAPI_FLOAT_H


rc_genicam_api
Author(s): Heiko Hirschmueller
autogenerated on Thu Jun 6 2019 18:42:46