Filter Library Camera Interface Physics

ScanFilterFourierBase.h

00001 /*
00002  * ScanFilterFourierBase.h - base class for FFT.
00003  *
00004  * This file is part of the Camera Filter Library.
00005  * Computer Aided Measurement Environment for Realtime Atomic imaging (Camera)
00006  *
00007  * Copyright (C) 2004-2005, Leiden Probe Microscopy.
00008  * Copyright (C) 2004-2005, Universiteit Leiden.
00009  *
00010  * Authors: M. Seynen (original), Martin J. Moene
00011  *
00012  * $Id: ScanFilterFourierBase.h 237 2005-06-27 09:06:40Z moene $
00013  */
00014 
00015 #ifndef CFL_SCANFILTERFOURIERBASE_H
00016 #define CFL_SCANFILTERFOURIERBASE_H
00017 
00018 #if _MSC_VER > 1000
00019 #pragma once
00020 #endif // _MSC_VER > 1000
00021 
00022 #include <cfl/ScanFilter.h>             // for base class
00023 #include <cfl/ScanBaseBuffer.h>         // for ValueType
00024 
00025 DECLARE_CLASS( CScanFilterFourierBase );         // create various types
00026 
00027 /**
00028  * \brief FFT filter base class.
00029  *
00030  */
00031 class CScanFilterFourierBase : public CScanFilter
00032 {
00033 
00034 public:
00035    /**
00036     * the value type.
00037     */
00038    typedef CScanBaseBuffer::ValueType ValueType;
00039 
00040    /**
00041     * the real type.
00042     */
00043    typedef double RealType;
00044 
00045    /**
00046     * the Fourier element type.
00047     */
00048    typedef CScanBaseBuffer::FourierElementType FourierElementType;
00049 
00050    /**
00051     * default constructor.
00052     */
00053    CScanFilterFourierBase();
00054 
00055    /**
00056     * destructor.
00057     */
00058    virtual ~CScanFilterFourierBase();
00059 
00060 protected:
00061    /**
00062     * store or retrieve the object's settings.
00063     */
00064    virtual void Serialize(CArchive& ar);
00065    DECLARE_SERIAL( CScanFilterFourierBase )
00066 
00067    /**
00068     * build a temporary amplitude buffer (real type).
00069     */
00070    RealType BuildTmpAmpBuffer(int n1, int n2, BOOL bL2R, BOOL bR2L, FourierElementType** alr, FourierElementType** arl, RealType *dAmpBuffer);
00071 
00072    /**
00073     * copy a temporary amplitude buffer to the scanbuffer (scaled).
00074     */
00075    void CopyAmpBufferToScanBuffer(int n1, int n2, BOOL bL2R, BOOL bR2L, RealType *dAmpBuffer, RealType dMax);
00076 };
00077 
00078 /// @} cfl_filterfftbase
00079 
00080 #endif // CFL_SCANFILTERFOURIERBASE_H
00081 
00082 /*
00083  * end of file
00084  */
00085 

Camera Filter Library documentation © 2004-2007 by Leiden Probe Microscopy