annotate src/Modules/Output/Graphics/GraphAxisSpec.h @ 611:0fbaf443ec82

Carfac C++ revision 3, indluding more style improvements. The output structs are now classes again, and have separate storage methods for each output structure along with flags in the Run and RunSegment methods to allow for only storing NAPs if desired.
author alexbrandmeyer
date Fri, 17 May 2013 19:52:45 +0000
parents ddf35dd82d63
children
rev   line source
tomwalters@116 1 // Copyright 2006, Willem van Engen
tomwalters@116 2 //
tomwalters@116 3 // AIM-C: A C++ implementation of the Auditory Image Model
tomwalters@116 4 // http://www.acousticscale.org/AIMC
tomwalters@116 5 //
tomwalters@116 6 // Licensed under the Apache License, Version 2.0 (the "License");
tomwalters@116 7 // you may not use this file except in compliance with the License.
tomwalters@116 8 // You may obtain a copy of the License at
tomwalters@116 9 //
tomwalters@116 10 // http://www.apache.org/licenses/LICENSE-2.0
tomwalters@116 11 //
tomwalters@116 12 // Unless required by applicable law or agreed to in writing, software
tomwalters@116 13 // distributed under the License is distributed on an "AS IS" BASIS,
tomwalters@116 14 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
tomwalters@116 15 // See the License for the specific language governing permissions and
tomwalters@116 16 // limitations under the License.
tomwalters@116 17
tomwalters@116 18 #ifndef __GRAPH_AXIS_SPEC_H__
tomwalters@116 19 #define __GRAPH_AXIS_SPEC_H__
tomwalters@116 20
tomwalters@116 21 #include "Support/Parameters.h"
tomwalters@116 22 #include "Modules/Output/Graphics/Scale/Scale.h"
tomwalters@116 23
tom@229 24 namespace aimc {
tom@229 25
tomwalters@116 26 /*! \class GraphAxisSpec "Output/GraphAxisSpec.h"
tomwalters@116 27 * \brief Axis specification for a GraphicsView
tomwalters@116 28 */
tomwalters@116 29 class GraphAxisSpec {
tomwalters@116 30 public:
tomwalters@228 31 /*! \brief Create a new GraphAxisSpec
tomwalters@228 32 * \param fMin Minimum value on the axis to show
tomwalters@228 33 * \param fMax Maximum value on the axis to show
tomwalters@228 34 * \param iScale Scale to use
tomwalters@228 35 *
tomwalters@228 36 * Please see SetScale() and SetRange() for more details.
tomwalters@228 37 */
tomwalters@228 38 GraphAxisSpec(float fMin, float fMax, Scale::ScaleType iScale);
tomwalters@228 39 //! \brief Create a new GraphAxisSpec from defaults
tomwalters@228 40 GraphAxisSpec();
tomwalters@116 41
tomwalters@228 42 ~GraphAxisSpec();
tomwalters@116 43
tomwalters@228 44 /*! \brief Set the scale to use
tomwalters@228 45 * \param iScale Scale to use
tomwalters@228 46 */
tomwalters@228 47 void SetDisplayScale(Scale::ScaleType iScale);
tomwalters@228 48 /*! \brief Set the minumum and maximum values to show on the axis
tomwalters@228 49 * \param fMin Minimum value on the axis to show
tomwalters@228 50 * \param fMax Maximum value on the axis to show
tomwalters@228 51 *
tomwalters@228 52 * Either fMin _must_ be smaller than fMax, or fMin==fMax but then
tomwalters@228 53 * this function must be called later to fulfil the former condition
tomwalters@228 54 * before it is used to scale data.
tomwalters@228 55 */
tomwalters@228 56 void SetDisplayRange(float fMin, float fMax);
tomwalters@228 57 /*! \brief Set the label of this axis
tomwalters@228 58 * \param sLabel New label, or NULL to remove label
tomwalters@228 59 */
tomwalters@228 60 void SetLabel(const char *sLabel);
tomwalters@116 61
tomwalters@228 62 /*! \brief Read axis specification from parameter store
tomwalters@228 63 * \param pParam Parameter store to read from
tomwalters@228 64 * \param sPrefix Prefix to use, e.g. "view.x"
tomwalters@228 65 * \param fMin Default minumum value for 'auto'
tomwalters@228 66 * \param fMax Default maximum value for 'auto'
tomwalters@228 67 * \param iScale Default scale for 'auto'
tomwalters@228 68 * \return true if no error occured in reading
tomwalters@228 69 */
tomwalters@228 70 bool Initialize(Parameters *pParam,
tomwalters@116 71 const char *sPrefix,
tomwalters@116 72 float fMin,
tomwalters@116 73 float fMax,
tomwalters@116 74 Scale::ScaleType iScale);
tomwalters@116 75
tomwalters@116 76 protected:
tomwalters@228 77 //! \brief Minimum value on the axis to display
tomwalters@228 78 float m_fMin;
tomwalters@228 79 //! \brief Maximum value on the axis to display
tomwalters@228 80 float m_fMax;
tomwalters@228 81 //! \brief Scale to use
tomwalters@228 82 Scale *m_pScale;
tomwalters@228 83 //! \brief Axis label, NULL for no label
tomwalters@228 84 const char *m_sLabel;
tomwalters@116 85
tomwalters@228 86 friend class GraphicsView;
tomwalters@228 87 friend class GraphicsViewTime;
tomwalters@116 88 };
tomwalters@116 89
tom@229 90 } // namespace aimc
tom@229 91
tomwalters@116 92 #endif /* __GRAPH_AXIS_SPEC_H__ */