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__ */
|