NgonGeneralData: numColors renamed to numColorValues
[scilab.git] / scilab / modules / graphic_objects / includes / NgonGeneralData.hxx
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2010 - DIGITEO - Manuel Juliachs
4  *
5  *  This file must be used under the terms of the CeCILL.
6  *  This source file is licensed as described in the file COPYING, which
7  *  you should have received as part of this distribution.  The terms
8  *  are also available at
9  *  http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
10  *
11  */
12
13 #ifndef NGON_GENERAL_DATA_HXX
14 #define NGON_GENERAL_DATA_HXX
15
16 #include <string>
17
18 #include "NgonData.hxx"
19
20 extern "C" {
21 #include "BOOL.h"
22
23 }
24
25 /**
26  * General n-gon data class
27  */
28
29 class NgonGeneralData : public NgonData
30 {
31 private :
32
33     /** The array of color values */
34     double* colorValues;
35
36     /** The size of the color values array */
37     int numColorValues;
38
39 protected :
40     /** The coordinates array */
41     double* coordinates;
42
43 public :
44     /**
45      * Constructor
46      */
47     NgonGeneralData(void);
48
49     /**
50      * Destructor
51      */
52     virtual ~NgonGeneralData(void);
53
54     /**
55      * Returns the identifier associated to a property name
56      * @param[in] propertyName the property name
57      * @return the property identifier
58      */
59     int getPropertyFromName(int propertyName);
60
61     /**
62      * Sets a data property
63      * @param[in] property the property identifier
64      * @param[in] value a pointer to the property values
65      * @param[in] numElements the number of elements to set
66      * @return 1 if the property has been successfully set, 0 otherwise
67      */
68     int setDataProperty(int property, void const* value, int numElements);
69
70     /**
71      * Returns a data property
72      * @param[in] property the property identifier
73      * @param[out] a pointer to a pointer to the returned property values
74      */
75     void getDataProperty(int property, void **_pvData);
76
77     /**
78      * Returns the data coordinates array
79      * @return a pointer to the coordinates array
80      */
81     double* getData();
82
83     /**
84      * Returns the data x coordinates array
85      * @return a pointer to the x coordinates
86      */
87     double* getDataX(void);
88
89     /**
90      * Returns the data y coordinates array
91      * @return a pointer to the y coordinates
92      */
93     double* getDataY(void);
94
95     /**
96      * Returns the data z coordinates array
97      * @return a pointer to the z coordinates
98      */
99     double* getDataZ(void);
100
101     /**
102      * Sets the coordinates data
103      * @param[in] data a pointer to the data (3 * numElements values)
104      * @param[in] numElements the number of points in the data array ( #n-gons * #vertices per n-gon)
105      */
106     void setData(double const* data, int numElements);
107
108     /**
109      * Sets the x coordinates data
110      * @param[in] data a pointer to the data (numElements values)
111      * @param[in] numElements the number of points in the data array ( #n-gons * #vertices per n-gon)
112      */
113     void setDataX(double const* data, int numElements);
114
115     /**
116      * Sets the y coordinates data
117      * @param[in] data a pointer to the data (numElements values)
118      * @param[in] numElements the number of points in the data array ( #n-gons * #vertices per n-gon)
119      */
120     void setDataY(double const* data, int numElements);
121
122     /**
123      * Sets the z coordinates data
124      * @param[in] data a pointer to the data (numElements values)
125      * @param[in] numElements the number of points in the data array ( #n-gons * #vertices per n-gon)
126      */
127     void setDataZ(double const* data, int numElements);
128
129     /**
130      * Returns the number of elements (number of n-gons)
131      * @return the number of n-gons
132      */
133     int getNumElements(void);
134
135     /**
136      * Sets the number of elements (number of n-gons,
137      * number of vertices per n-gon, and number of color values)
138      * Resizes the data coordinates array if required, must therefore
139      * be called before any setData call.
140      * @param[in] numElementsArray a pointer to a 3-element array (# n-gons, # vertices per n-gon, # color values)
141      * @return 1 if it succeeded, 0 if the allocation failed
142      */
143     int setNumElementsArray(int const* numElementsArray);
144
145     /**
146      * Returns the color values array
147      * @return a pointer to the color values array
148      */
149     double* getColors(void);
150
151     /**
152      * Sets the color values array
153      * @param[in] colors a pointer to the color values array
154      * @param[in] numElements the number of color values in the data array
155      */
156     void setColors(double const* colors, int numElements);
157
158     /**
159      * Returns the number of colors
160      * @return the number of colors
161      */
162     int getNumColors(void);
163
164 };
165
166 #endif