Mercurial > octave-nkf
diff src/graphics.h.in @ 7848:6bb2bbc2bf45
Remove data_property, replace with array_property or row_vector_property.
author | Michael Goffioul <michael.goffioul@gmail.com> |
---|---|
date | Wed, 27 Feb 2008 21:45:12 +0100 |
parents | 40b16e04172a |
children | 3249f64f69b2 |
line wrap: on
line diff
--- a/src/graphics.h.in Wed Feb 27 14:59:00 2008 +0100 +++ b/src/graphics.h.in Wed Feb 27 21:45:12 2008 +0100 @@ -803,6 +803,13 @@ get_data_limits (); } + // This copy constructor is only intended to be used + // internally to access min/max values; no need to + // copy constraints. + array_property (const array_property& p) + : base_property (p), data (p.data), + xmin (p.xmin), xmax (p.xmax), xminp (p.xminp) { } + octave_value get (void) const { return data; } void set (const octave_value& v) @@ -909,94 +916,6 @@ // --------------------------------------------------------------------- -class data_property : public base_property -{ -public: - data_property (void) - : base_property ("", graphics_handle ()) { } - - data_property (const std::string& nm, const graphics_handle& h, - const NDArray& m = NDArray ()) - : base_property (nm, h), - data (m), xmin (octave_Inf), xmax (-octave_Inf), xminp (octave_Inf) - { - get_data_limits (); - } - - data_property (const std::string& nm, const graphics_handle& h, - const Matrix& m) - : base_property (nm, h), - data (m), xmin (octave_Inf), xmax (-octave_Inf), xminp (octave_Inf) - { - get_data_limits (); - } - - data_property (const data_property& p) - : base_property (p), data (p.data), - xmin (p.xmin), xmax (p.xmax), xminp (p.xminp) { } - - void set (const octave_value& val) - { - data = val.array_value (); - - get_data_limits (); - } - - octave_value get (void) const { return data; } - - NDArray array_value (void) const { return data; } - - Matrix matrix_value (void) const { return data.matrix_value (); } - - double min_val (void) const { return xmin; } - double max_val (void) const { return xmax; } - double min_pos (void) const { return xminp; } - - data_property& operator = (const octave_value& val) - { - set (val); - return *this; - } - -private: - NDArray data; - double xmin; - double xmax; - double xminp; - - void get_data_limits (void) - { - octave_idx_type nel = data.numel (); - - xmin = xminp = octave_Inf; - xmax = -octave_Inf; - - if (nel > 0) - { - const double *d = data.data (); - - for (octave_idx_type i = 0; i < nel; i++) - { - double val = d[i]; - - if (! (xisinf (val) || xisnan (val))) - { - if (val < xmin) - xmin = val; - - if (val > xmax) - xmax = val; - - if (val > 0 && val < xminp) - xminp = val; - } - } - } - } -}; - -// --------------------------------------------------------------------- - class bool_property : public radio_property { public: @@ -1208,9 +1127,6 @@ const double_property& as_double_property (void) const { return *(dynamic_cast<double_property*> (rep)); } - const data_property& as_data_property (void) const - { return *(dynamic_cast<data_property*> (rep)); } - const bool_property& as_bool_property (void) const { return *(dynamic_cast<bool_property*> (rep)); } @@ -1710,46 +1626,46 @@ // genprops.awk script. // // EMIT_BASE_PROPERTIES_GET_FUNCTIONS - virtual data_property get_xdata_property (void) const + virtual array_property get_xdata_property (void) const { error ("get: invalid property \"xdata\""); - return data_property (); + return array_property (); } - virtual data_property get_ydata_property (void) const + virtual array_property get_ydata_property (void) const { error ("get: invalid property \"ydata\""); - return data_property (); + return array_property (); } - virtual data_property get_zdata_property (void) const + virtual array_property get_zdata_property (void) const { error ("get: invalid property \"zdata\""); - return data_property (); + return array_property (); } - virtual data_property get_ldata_property (void) const + virtual array_property get_ldata_property (void) const { error ("get: invalid property \"ldata\""); - return data_property (); + return array_property (); } - virtual data_property get_udata_property (void) const + virtual array_property get_udata_property (void) const { error ("get: invalid property \"udata\""); - return data_property (); + return array_property (); } - virtual data_property get_xldata_property (void) const + virtual array_property get_xldata_property (void) const { error ("get: invalid property \"xldata\""); - return data_property (); + return array_property (); } - virtual data_property get_xudata_property (void) const + virtual array_property get_xudata_property (void) const { error ("get: invalid property \"xudata\""); - return data_property (); + return array_property (); } virtual array_property get_cdata_property (void) const @@ -2085,43 +2001,43 @@ // genprops.awk script. // // EMIT_GRAPHICS_OBJECT_GET_FUNCTIONS - data_property get_xdata_property (void) const + array_property get_xdata_property (void) const { const base_properties& props = get_properties (); return props.get_xdata_property (); } - data_property get_ydata_property (void) const + array_property get_ydata_property (void) const { const base_properties& props = get_properties (); return props.get_ydata_property (); } - data_property get_zdata_property (void) const + array_property get_zdata_property (void) const { const base_properties& props = get_properties (); return props.get_zdata_property (); } - data_property get_ldata_property (void) const + array_property get_ldata_property (void) const { const base_properties& props = get_properties (); return props.get_ldata_property (); } - data_property get_udata_property (void) const + array_property get_udata_property (void) const { const base_properties& props = get_properties (); return props.get_udata_property (); } - data_property get_xldata_property (void) const + array_property get_xldata_property (void) const { const base_properties& props = get_properties (); return props.get_xldata_property (); } - data_property get_xudata_property (void) const + array_property get_xudata_property (void) const { const base_properties& props = get_properties (); return props.get_xudata_property (); @@ -2851,13 +2767,13 @@ // ldata, udata, xldata, xudata, keylabel, interpreter BEGIN_PROPERTIES(line) - data_property xdata l , default_data () - data_property ydata l , default_data () - data_property zdata l , Matrix () - data_property ldata l , Matrix () - data_property udata l , Matrix () - data_property xldata l , Matrix () - data_property xudata l , Matrix () + row_vector_property xdata l , default_data () + row_vector_property ydata l , default_data () + row_vector_property zdata l , Matrix () + row_vector_property ldata l , Matrix () + row_vector_property udata l , Matrix () + row_vector_property xldata l , Matrix () + row_vector_property xudata l , Matrix () color_property color , color_values (0, 0, 0) radio_property linestyle , "{-}|--|:|-.|none" double_property linewidth , 0.5 @@ -2964,8 +2880,8 @@ // properties declarations. BEGIN_PROPERTIES(image) - data_property xdata l , Matrix () - data_property ydata l , Matrix () + row_vector_property xdata l , Matrix () + row_vector_property ydata l , Matrix () array_property cdata l , Matrix () radio_property cdatamapping a , "{scaled}|direct" END_PROPERTIES @@ -2973,6 +2889,8 @@ protected: void init (void) { + xdata.add_constraint (2); + ydata.add_constraint (2); cdata.add_constraint ("double"); cdata.add_constraint ("uint8"); cdata.add_constraint (dim_vector (-1, -1)); @@ -3013,13 +2931,13 @@ // properties declarations. BEGIN_PROPERTIES(patch) - data_property xdata l , Matrix () - data_property ydata l , Matrix () - data_property zdata l , Matrix () + array_property xdata l , Matrix () + array_property ydata l , Matrix () + array_property zdata l , Matrix () array_property cdata l , Matrix () radio_property cdatamapping , "{scaled}|direct" array_property faces , Matrix () - data_property facevertexalphadata , Matrix () + array_property facevertexalphadata , Matrix () array_property facevertexcdata , Matrix () array_property vertices , Matrix () array_property vertexnormals , Matrix () @@ -3050,12 +2968,16 @@ protected: void init (void) { + xdata.add_constraint (dim_vector (-1, -1)); + ydata.add_constraint (dim_vector (-1, -1)); + zdata.add_constraint (dim_vector (-1, -1)); vertices.add_constraint (dim_vector (-1, 2)); vertices.add_constraint (dim_vector (-1, 3)); cdata.add_constraint (dim_vector (-1, -1)); cdata.add_constraint (dim_vector (-1, -1, 3)); facevertexcdata.add_constraint (dim_vector (-1, 1)); facevertexcdata.add_constraint (dim_vector (-1, 3)); + facevertexalphadata.add_constraint (dim_vector (-1, 1)); } }; @@ -3092,9 +3014,9 @@ // properties declarations. BEGIN_PROPERTIES(surface) - data_property xdata lu , Matrix () - data_property ydata lu , Matrix () - data_property zdata lu , Matrix () + array_property xdata lu , Matrix () + array_property ydata lu , Matrix () + array_property zdata lu , Matrix () array_property cdata l , Matrix () radio_property cdatamapping a , "{scaled}|direct" color_property facecolor , "{flat}|none|interp|texturemap" @@ -3128,6 +3050,9 @@ protected: void init (void) { + xdata.add_constraint (dim_vector (-1, -1)); + ydata.add_constraint (dim_vector (-1, -1)); + zdata.add_constraint (dim_vector (-1, -1)); alphadata.add_constraint ("double"); alphadata.add_constraint ("uint8"); alphadata.add_constraint (dim_vector (-1, -1));