Classes | Defines | Functions | Variables

graphics.cc File Reference

#include <cctype>
#include <cfloat>
#include <cstdlib>
#include <ctime>
#include <algorithm>
#include <list>
#include <map>
#include <set>
#include <string>
#include <sstream>
#include "cmd-edit.h"
#include "file-ops.h"
#include "file-stat.h"
#include "oct-locbuf.h"
#include "singleton-cleanup.h"
#include "cutils.h"
#include "defun.h"
#include "display.h"
#include "error.h"
#include "graphics.h"
#include "input.h"
#include "ov.h"
#include "oct-obj.h"
#include "oct-map.h"
#include "ov-fcn-handle.h"
#include "pager.h"
#include "parse.h"
#include "toplev.h"
#include "txt-eng-ft.h"
#include "unwind-prot.h"
#include "graphics-props.cc"
Include dependency graph for graphics.cc:

Go to the source code of this file.

Classes

class  callback_event
class  function_event
class  set_event

Defines

#define CHECK_ARRAY_EQUAL(T, F, A)
#define CONVERT_CDATA_1(ARRAY_T, VAL_FN)
#define FIX_LIMITS
#define GO_BODY(TYPE)

Functions

static void adopt (const graphics_handle &p, const graphics_handle &h)
int calc_dimensions (const graphics_object &go)
ColumnVector cam2xform (const Array< double > &m)
static void check_limit_vals (double &min_val, double &max_val, double &min_pos, double &max_neg, const octave_value &data)
static void cleanup_waitfor_id (uint32_t id)
static void cleanup_waitfor_postset_listener (const octave_value &listener)
static void cleanup_waitfor_predelete_listener (const octave_value &listener)
static void close_figure (const graphics_handle &handle)
static bool compare_property_values (const octave_value &o1, const octave_value &o2)
static octave_value convert_cdata (const base_properties &props, const octave_value &cdata, bool is_scaled, int cdim)
template<class T >
void convert_cdata_1 (bool is_scaled, double clim_0, double clim_1, const double *cmapv, const T *cv, octave_idx_type lda, octave_idx_type nc, double *av)
static void convert_cdata_2 (bool is_scaled, double clim_0, double clim_1, const double *cmapv, double x, octave_idx_type lda, octave_idx_type nc, octave_idx_type i, double *av)
static double convert_font_size (double font_size, const caseless_str &from_units, const caseless_str &to_units, double parent_height=0)
static Matrix convert_position (const Matrix &pos, const caseless_str &from_units, const caseless_str &to_units, const Matrix &parent_dim)
static Matrix convert_text_position (const Matrix &pos, const text::properties &props, const caseless_str &from_units, const caseless_str &to_units)
ColumnVector cross (const ColumnVector &v1, const ColumnVector &v2)
void cross_product (double x1, double y1, double z1, double x2, double y2, double z2, double &x, double &y, double &z)
static Matrix default_axes_outerposition (void)
static Matrix default_axes_position (void)
static Matrix default_axes_tick (void)
static Matrix default_axes_ticklength (void)
static Matrix default_colororder (void)
static Matrix default_control_position (void)
static Matrix default_control_sliderstep (void)
static Matrix default_data (void)
static Matrix default_figure_paperposition (void)
static Matrix default_figure_papersize (void)
static Matrix default_figure_position (void)
static Matrix default_lim (bool logscale=false)
static Matrix default_panel_position (void)
static double default_screendepth (void)
static double default_screenpixelsperinch (void)
static Matrix default_screensize (void)
 DEFUN (waitfor, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} waitfor (@var{h})\n\ @deftypefnx {Built-in Function} {} waitfor (@var{h}, @var{prop})\n\ @deftypefnx {Built-in Function} {} waitfor (@var{h}, @var{prop}, @var{value})\n\ @deftypefnx {Built-in Function} {} waitfor (@dots{}, \"timeout\", @var{timeout})\n\ Suspend the execution of the current program until a condition is\n\ satisfied on the graphics handle @var{h}. While the program is suspended\n\ graphics events are still being processed normally, allowing callbacks to\n\ modify the state of graphics objects. This function is reentrant and can be\n\ called from a callback, while another @code{waitfor} call is pending at\n\ top-level.\n\ \n\ In the first form, program execution is suspended until the graphics object\n\ @var{h} is destroyed. If the graphics handle is invalid, the function\n\ returns immediately.\n\ \n\ In the second form, execution is suspended until the graphics object is\n\ destroyed or the property named @var{prop} is modified. If the graphics\n\ handle is invalid or the property does not exist, the function returns\n\ immediately.\n\ \n\ In the third form, execution is suspended until the graphics object is\n\ destroyed or the property named @var{prop} is set to @var{value}. The\n\ function @code{isequal} is used to compare property values. If the graphics\n\ handle is invalid, the property does not exist or the property is already\n\ set to @var{value}, the function returns immediately.\n\ \n\ An optional timeout can be specified using the property @code{timeout}.\n\ This timeout value is the number of seconds to wait for the condition to be\n\ true. @var{timeout} must be at least 1. If a smaller value is specified, a\n\ warning is issued and a value of 1 is used instead. If the timeout value is\n\ not an integer, it is truncated towards 0.\n\ \n\ To define a condition on a property named @code{timeout}, use the string\n\ @code{\\timeout} instead.\n\ \n\ In all cases, typing CTRL-C stops program execution immediately.\n\ @seealso{isequal}\n\ @end deftypefn")
 DEFUN (__go_uitoggletool__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __go_uitoggletool__ (@var{parent})\n\ Undocumented internal function.\n\ @end deftypefn")
 DEFUN (__go_uipanel__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __go_uipanel__ (@var{parent})\n\ Undocumented internal function.\n\ @end deftypefn")
 DEFUN (__go_line__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __go_line__ (@var{parent})\n\ Undocumented internal function.\n\ @end deftypefn")
 DEFUN (ishandle, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} ishandle (@var{h})\n\ Return true if @var{h} is a graphics handle and false otherwise.\n\ @var{h} may also be a matrix of handles in which case a logical\n\ array is returned that is true where the elements of @var{h} are\n\ graphics handles and false where they are not.\n\ @seealso{isfigure}\n\ @end deftypefn")
 DEFUN (__is_handle_visible__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} __is_handle_visible__ (@var{h})\n\ Undocumented internal function.\n\ @end deftypefn")
 DEFUN (reset, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} reset (@var{h}, @var{property})\n\ Remove any defaults set for the handle @var{h}. The default figure\n\ properties of \"position\", \"units\", \"windowstyle\" and\n\ \"paperunits\" and the default axes properties of \"position\" and \"units\"\n\ are not reset.\n\ @end deftypefn")
 DEFUN (set, args, nargout,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} set (@var{h}, @var{property}, @var{value}, @dots{})\n\ @deftypefnx {Built-in Function} {} set (@var{h}, @var{properties}, @var{values})\n\ @deftypefnx {Built-in Function} {} set (@var{h}, @var{pv})\n\ Set named property values for the graphics handle (or vector of graphics\n\ handles) @var{h}.\n\ There are three ways how to give the property names and values:\n\ \n\ @itemize\n\ @item as a comma separated list of @var{property}, @var{value} pairs\n\ \n\ Here, each @var{property} is a string containing the property name, each\n\ @var{value} is a value of the appropriate type for the property.\n\ \n\ @item as a cell array of strings @var{properties} containing property names\n\ and a cell array @var{values} containing property values.\n\ \n\ In this case, the number of columns of @var{values} must match the number of\n\ elements in @var{properties}. The first column of @var{values} contains\n\ values for the first entry in @var{properties}, etc. The number of rows of\n\ @var{values} must be 1 or match the number of elements of @var{h}. In the\n\ first case, each handle in @var{h} will be assigned the same values. In the\n\ latter case, the first handle in @var{h} will be assigned the values from\n\ the first row of @var{values} and so on.\n\ \n\ @item as a structure array @var{pv}\n\ \n\ Here, the field names of @var{pv} represent the property names, and the field\n\ values give the property values. In contrast to the previous case, all\n\ elements of @var{pv} will be set in all handles in @var{h} independent of\n\ the dimensions of @var{pv}.\n\ @end itemize\n\ @end deftypefn")
 DEFUN (register_graphics_toolkit, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} register_graphics_toolkit (@var{toolkit})\n\ List @var{toolkit} as an available graphics toolkit.\n\ @seealso{available_graphics_toolkits}\n\ @end deftypefn")
 DEFUN (get, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} get (@var{h}, @var{p})\n\ Return the named property @var{p} from the graphics handle @var{h}.\n\ If @var{p} is omitted, return the complete property list for @var{h}.\n\ If @var{h} is a vector, return a cell array including the property\n\ values or lists respectively.\n\ @end deftypefn")
 DEFUN (__get__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __get__ (@var{h})\n\ Undocumented internal function.\n\ @end deftypefn")
 DEFUN (__go_figure__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __go_figure__ (@var{fignum})\n\ Undocumented internal function.\n\ @end deftypefn")
 DEFUN (__calc_dimensions__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __calc_dimensions__ (@var{axes})\n\ Internal function. Determine the number of dimensions in a graphics\n\ object, whether 2 or 3.\n\ @end deftypefn")
 DEFUN (__go_axes__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __go_axes__ (@var{parent})\n\ Undocumented internal function.\n\ @end deftypefn")
 DEFUN (__go_patch__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __go_patch__ (@var{parent})\n\ Undocumented internal function.\n\ @end deftypefn")
 DEFUN (dellistener, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} dellistener (@var{h}, @var{prop}, @var{fcn})\n\ Remove the registration of @var{fcn} as a listener for the property\n\ @var{prop} of the graphics object @var{h}. The function @var{fcn} must\n\ be the same variable (not just the same value), as was passed to the\n\ original call to @code{addlistener}.\n\ \n\ If @var{fcn} is not defined then all listener functions of @var{prop}\n\ are removed.\n\ \n\ Example:\n\ \n\ @example\n\ @group\n\ function my_listener (h, dummy, p1)\n\ fprintf (\"my_listener called with p1=%s\\n\", p1);\n\ endfunction\n\ \n\ c = @{@@my_listener, \"my string\"@};\n\ addlistener (gcf, \"position\", c);\n\ dellistener (gcf, \"position\", c);\n\ @end group\n\ @end example\n\ \n\ @end deftypefn")
 DEFUN (__go_text__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __go_text__ (@var{parent})\n\ Undocumented internal function.\n\ @end deftypefn")
 DEFUN (__go_image__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __go_image__ (@var{parent})\n\ Undocumented internal function.\n\ @end deftypefn")
 DEFUN (__go_surface__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __go_surface__ (@var{parent})\n\ Undocumented internal function.\n\ @end deftypefn")
 DEFUN (__go_hggroup__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __go_hggroup__ (@var{parent})\n\ Undocumented internal function.\n\ @end deftypefn")
 DEFUN (__go_uimenu__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __go_uimenu__ (@var{parent})\n\ Undocumented internal function.\n\ @end deftypefn")
 DEFUN (__go_uicontrol__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __go_uicontrol__ (@var{parent})\n\ Undocumented internal function.\n\ @end deftypefn")
 DEFUN (__go_uicontextmenu__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __go_uicontextmenu__ (@var{parent})\n\ Undocumented internal function.\n\ @end deftypefn")
 DEFUN (__go_uitoolbar__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __go_uitoolbar__ (@var{parent})\n\ Undocumented internal function.\n\ @end deftypefn")
 DEFUN (__go_uipushtool__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __go_uipushtool__ (@var{parent})\n\ Undocumented internal function.\n\ @end deftypefn")
 DEFUN (__go_delete__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __go_delete__ (@var{h})\n\ Undocumented internal function.\n\ @end deftypefn")
 DEFUN (__go_axes_init__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __go_axes_init__ (@var{h}, @var{mode})\n\ Undocumented internal function.\n\ @end deftypefn")
 DEFUN (__go_handles__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __go_handles__ (@var{show_hidden})\n\ Undocumented internal function.\n\ @end deftypefn")
 DEFUN (__go_figure_handles__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __go_figure_handles__ (@var{show_hidden})\n\ Undocumented internal function.\n\ @end deftypefn")
 DEFUN (__go_execute_callback__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} __go_execute_callback__ (@var{h}, @var{name})\n\ @deftypefnx {Built-in Function} {} __go_execute_callback__ (@var{h}, @var{name}, @var{param})\n\ Undocumented internal function.\n\ @end deftypefn")
 DEFUN (__image_pixel_size__, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {@var{px}, @var{py}} __image_pixel_size__ (@var{h})\n\ Internal function: returns the pixel size of the image in normalized units.\n\ @end deftypefn")
 DEFUN (available_graphics_toolkits,,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} available_graphics_toolkits ()\n\ Return a cell array of registered graphics toolkits.\n\ @seealso{graphics_toolkit, register_graphics_toolkit}\n\ @end deftypefn")
 DEFUN (loaded_graphics_toolkits,,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} loaded_graphics_toolkits ()\n\ Return a cell array of the currently loaded graphics toolkits.\n\ @seealso{available_graphics_toolkits}\n\ @end deftypefn")
 DEFUN (drawnow, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} drawnow ()\n\ @deftypefnx {Built-in Function} {} drawnow (\"expose\")\n\ @deftypefnx {Built-in Function} {} drawnow (@var{term}, @var{file}, @var{mono}, @var{debug_file})\n\ Update figure windows and their children. The event queue is flushed and\n\ any callbacks generated are executed. With the optional argument\n\ @code{\"expose\"}, only graphic objects are updated and no other events or\n\ callbacks are processed.\n\ The third calling form of @code{drawnow} is for debugging and is\n\ undocumented.\n\ @end deftypefn")
 DEFUN (addlistener, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} addlistener (@var{h}, @var{prop}, @var{fcn})\n\ Register @var{fcn} as listener for the property @var{prop} of the graphics\n\ object @var{h}. Property listeners are executed (in order of registration)\n\ when the property is set. The new value is already available when the\n\ listeners are executed.\n\ \n\ @var{prop} must be a string naming a valid property in @var{h}.\n\ \n\ @var{fcn} can be a function handle, a string or a cell array whose first\n\ element is a function handle. If @var{fcn} is a function handle, the\n\ corresponding function should accept at least 2 arguments, that will be\n\ set to the object handle and the empty matrix respectively. If @var{fcn}\n\ is a string, it must be any valid octave expression. If @var{fcn} is a cell\n\ array, the first element must be a function handle with the same signature\n\ as described above. The next elements of the cell array are passed\n\ as additional arguments to the function.\n\ \n\ Example:\n\ \n\ @example\n\ @group\n\ function my_listener (h, dummy, p1)\n\ fprintf (\"my_listener called with p1=%s\\n\", p1);\n\ endfunction\n\ \n\ addlistener (gcf, \"position\", @{@@my_listener, \"my string\"@})\n\ @end group\n\ @end example\n\ \n\ @end deftypefn")
 DEFUN (addproperty, args,,"-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} addproperty (@var{name}, @var{h}, @var{type})\n\ @deftypefnx {Built-in Function} {} addproperty (@var{name}, @var{h}, @var{type}, @var{arg}, @dots{})\n\ Create a new property named @var{name} in graphics object @var{h}.\n\ @var{type} determines the type of the property to create. @var{args}\n\ usually contains the default value of the property, but additional\n\ arguments might be given, depending on the type of the property.\n\ \n\ The supported property types are:\n\ \n\ @table @code\n\ @item string\n\ A string property. @var{arg} contains the default string value.\n\ \n\ @item any\n\ An un-typed property. This kind of property can hold any octave\n\ value. @var{args} contains the default value.\n\ \n\ @item radio\n\ A string property with a limited set of accepted values. The first\n\ argument must be a string with all accepted values separated by\n\ a vertical bar ('|'). The default value can be marked by enclosing\n\ it with a '@{' '@}' pair. The default value may also be given as\n\ an optional second string argument.\n\ \n\ @item boolean\n\ A boolean property. This property type is equivalent to a radio\n\ property with \"on|off\" as accepted values. @var{arg} contains\n\ the default property value.\n\ \n\ @item double\n\ A scalar double property. @var{arg} contains the default value.\n\ \n\ @item handle\n\ A handle property. This kind of property holds the handle of a\n\ graphics object. @var{arg} contains the default handle value.\n\ When no default value is given, the property is initialized to\n\ the empty matrix.\n\ \n\ @item data\n\ A data (matrix) property. @var{arg} contains the default data\n\ value. When no default value is given, the data is initialized to\n\ the empty matrix.\n\ \n\ @item color\n\ A color property. @var{arg} contains the default color value.\n\ When no default color is given, the property is set to black.\n\ An optional second string argument may be given to specify an\n\ additional set of accepted string values (like a radio property).\n\ @end table\n\ \n\ @var{type} may also be the concatenation of a core object type and\n\ a valid property name for that object type. The property created\n\ then has the same characteristics as the referenced property (type,\n\ possible values, hidden state@dots{}). This allows to clone an existing\n\ property into the graphics object @var{h}.\n\ \n\ Examples:\n\ \n\ @example\n\ @group\n\ addproperty (\"my_property\", gcf, \"string\", \"a string value\");\n\ addproperty (\"my_radio\", gcf, \"radio\", \"val_1|val_2|@{val_3@}\");\n\ addproperty (\"my_style\", gcf, \"linelinestyle\", \"--\");\n\ @end group\n\ @end example\n\ \n\ @end deftypefn")
static void delete_graphics_object (const graphics_handle &h)
static void delete_graphics_object (double val)
static void delete_graphics_objects (const NDArray vals)
static void do_cleanup_waitfor_listener (const octave_value &listener, listener_mode mode=POSTSET)
static Matrix do_zoom (double val, double factor, const Matrix &lims, bool is_logscale)
double dot (const ColumnVector &v1, const ColumnVector &v2)
static void finalize_r (const graphics_handle &h)
static void force_close_figure (const graphics_handle &handle)
double force_in_range (const double x, const double lower, const double upper)
graphics_handle gca (void)
graphics_handle gcf (void)
template<class T >
static void get_array_limits (const Array< T > &m, double &emin, double &emax, double &eminp, double &emaxp)
void get_children_limits (double &min_val, double &max_val, double &min_pos, double &max_neg, const Matrix &kids, char limit_type)
static std::string get_graphics_object_type (const double val)
octave_value get_property_from_handle (double handle, const std::string &property, const std::string &func)
static void gripe_set_invalid (const std::string &pname)
static void initialize_r (const graphics_handle &h)
static bool is_figure (double val)
static octave_value is_handle (const octave_value &val)
static bool is_handle (const graphics_handle &h)
static bool is_handle (double val)
static bool is_handle_visible (const graphics_handle &h)
static bool is_handle_visible (double val)
static octave_value is_handle_visible (const octave_value &val)
static Matrix jet_colormap (void)
static bool lookup_object_name (const caseless_str &name, caseless_str &go_name, caseless_str &rest)
static void magform (double x, double &a, int &b)
static octave_value make_graphics_object (const std::string &go_name, bool integer_figure_handle, const octave_value_list &args)
static base_graphics_object * make_graphics_object_from_type (const caseless_str &type, const graphics_handle &h=graphics_handle(), const graphics_handle &p=graphics_handle())
static double make_handle_fraction (void)
static void max_axes_scale (double &s, Matrix &limits, const Matrix &kids, double pbfactor, double dafactor, char limit_type, bool tight)
double norm (const ColumnVector &v)
void normalize (ColumnVector &v)
static void normalized_aspectratios (Matrix &aspectratios, const Matrix &scalefactors, double xlength, double ylength, double zlength)
static Matrix papersize_from_type (const caseless_str punits, const caseless_str typ)
static graphics_handle reparent (const octave_value &ov, const std::string &who, const std::string &property, const graphics_handle &new_parent, bool adopt=true)
static void reset_default_properties (property_list &default_properties)
void scale (Matrix &m, double x, double y, double z)
void scale (ColumnVector &v, double x, double y, double z)
static Matrix screen_size_pixels (void)
bool set_property_in_handle (double handle, const std::string &property, const octave_value &arg, const std::string &func)
ColumnVector transform (const Matrix &m, double x, double y, double z)
void translate (Matrix &m, double x, double y, double z)
void translate (ColumnVector &v, double x, double y, double z)
Matrix unit_cube (void)
static caseless_str validate_property_name (const std::string &who, const std::string &what, const std::set< std::string > &pnames, const caseless_str &pname)
static octave_value_list waitfor_del_listener (const octave_value_list &args, int)
static octave_value_list waitfor_listener (const octave_value_list &args, int)
static void xcreatefcn (const graphics_handle &h)
void xform (ColumnVector &v, const Matrix &m)
RowVector xform2cam (const ColumnVector &v)
Matrix xform_matrix (void)
Matrix xform_scale (double x, double y, double z)
Matrix xform_translate (double x, double y, double z)
ColumnVector xform_vector (void)
ColumnVector xform_vector (double x, double y, double z)
static octave_value xget (const graphics_handle &h, const caseless_str &name)
static void xinitialize (const graphics_handle &h)
static void xset (const graphics_handle &h, const octave_value_list &args)
static void xset (const graphics_handle &h, const caseless_str &name, const octave_value &val)
static void xset_gcbo (const graphics_handle &h)

Variables

static std::map< caseless_str,
graphics_object > 
dprop_obj_map
static bool executing_callback = false
static bool updating_aspectratios = false
static bool updating_axes_layout = false
static bool updating_axis_limits = false
static bool updating_hggroup_limits = false
static bool updating_title_position = false
static bool updating_xlabel_position = false
static bool updating_ylabel_position = false
static bool updating_zlabel_position = false
static std::map< uint32_t, boolwaitfor_results

Define Documentation

#define CHECK_ARRAY_EQUAL (   T,
  F,
  A 
)
Value:
{ \
              if (data.numel () == 1) \
                return data.F ## scalar_value () == \
                  v.F ## scalar_value (); \
              else  \
                { \
                  /* Keep copy of array_value to allow sparse/bool arrays */ \
                  /* that are converted, to not be deallocated early */ \
                  const A m1 = data.F ## array_value (); \
                  const T* d1 = m1.data (); \
                  const A m2 = v.F ## array_value (); \
                  const T* d2 = m2.data ();\
                  \
                  bool flag = true; \
                  \
                  for (int i = 0; flag && i < data.numel (); i++) \
                    if (d1[i] != d2[i]) \
                      flag = false; \
                  \
                  return flag; \
                } \
            }
#define CONVERT_CDATA_1 (   ARRAY_T,
  VAL_FN 
)
Value:
do \
    { \
      ARRAY_T tmp = cdata. VAL_FN ## array_value (); \
 \
      convert_cdata_1 (is_scaled, clim_0, clim_1, cmapv, \
                       tmp.data (), lda, nc, av); \
    } \
  while (0)

Referenced by convert_cdata().

#define FIX_LIMITS
Value:
if (limits.numel() == 4) \
    { \
      val = limits(0); \
      if (! (xisinf (val) || xisnan (val))) \
        min_val = val; \
      val = limits(1); \
      if (! (xisinf (val) || xisnan (val))) \
        max_val = val; \
      val = limits(2); \
      if (! (xisinf (val) || xisnan (val))) \
        min_pos = val; \
      val = limits(3); \
      if (! (xisinf (val) || xisnan (val))) \
        max_neg = val; \
    } \
  else \
    { \
      limits.resize(4, 1); \
      limits(0) = min_val; \
      limits(1) = max_val; \
      limits(2) = min_pos; \
      limits(3) = max_neg; \
    }
#define GO_BODY (   TYPE  ) 
Value:
gh_manager::auto_lock guard; \
 \
  octave_value retval; \
 \
  if (args.length () > 0) \
    retval = make_graphics_object (#TYPE, false, args);  \
  else \
    print_usage (); \
 \
  return retval

Definition at line 8596 of file graphics.cc.

Referenced by DEFUN().


Function Documentation

static void adopt ( const graphics_handle &  p,
const graphics_handle &  h 
) [static]

Definition at line 2436 of file graphics.cc.

Referenced by DEFUN(), make_graphics_object(), and reparent().

int calc_dimensions ( const graphics_object &  go  ) 

Definition at line 8609 of file graphics.cc.

References Array< T >::length(), and lookup().

Referenced by DEFUN().

ColumnVector cam2xform ( const Array< double > &  m  )  [inline]

Definition at line 4362 of file graphics.cc.

References Array< T >::fortran_vec().

static void check_limit_vals ( double min_val,
double max_val,
double min_pos,
double max_neg,
const octave_value data 
) [static]
static void cleanup_waitfor_id ( uint32_t  id  )  [static]

Definition at line 9605 of file graphics.cc.

Referenced by DEFUN().

static void cleanup_waitfor_postset_listener ( const octave_value listener  )  [static]

Definition at line 9649 of file graphics.cc.

References do_cleanup_waitfor_listener().

Referenced by DEFUN().

static void cleanup_waitfor_predelete_listener ( const octave_value listener  )  [static]

Definition at line 9653 of file graphics.cc.

References do_cleanup_waitfor_listener().

Referenced by DEFUN().

static void close_figure ( const graphics_handle &  handle  )  [static]

Definition at line 2373 of file graphics.cc.

References OCTAVE_SAFE_CALL, and xget().

static bool compare_property_values ( const octave_value o1,
const octave_value o2 
) [static]

Definition at line 9587 of file graphics.cc.

References error_state, feval(), and octave_value_list::length().

Referenced by DEFUN(), and waitfor_listener().

static octave_value convert_cdata ( const base_properties &  props,
const octave_value cdata,
bool  is_scaled,
int  cdim 
) [static]
template<class T >
void convert_cdata_1 ( bool  is_scaled,
double  clim_0,
double  clim_1,
const double cmapv,
const T *  cv,
octave_idx_type  lda,
octave_idx_type  nc,
double av 
)

Definition at line 692 of file graphics.cc.

References convert_cdata_2().

static void convert_cdata_2 ( bool  is_scaled,
double  clim_0,
double  clim_1,
const double cmapv,
double  x,
octave_idx_type  lda,
octave_idx_type  nc,
octave_idx_type  i,
double av 
) [static]

Definition at line 660 of file graphics.cc.

References xisnan(), and xround().

Referenced by convert_cdata_1().

static double convert_font_size ( double  font_size,
const caseless_str from_units,
const caseless_str to_units,
double  parent_height = 0 
) [static]

Definition at line 362 of file graphics.cc.

References caseless_str::compare(), octave_value::double_value(), and xget().

static Matrix convert_position ( const Matrix pos,
const caseless_str from_units,
const caseless_str to_units,
const Matrix parent_dim 
) [static]
static Matrix convert_text_position ( const Matrix pos,
const text::properties &  props,
const caseless_str from_units,
const caseless_str to_units 
) [static]
ColumnVector cross ( const ColumnVector v1,
const ColumnVector v2 
) [inline]

Definition at line 4335 of file graphics.cc.

References xform_vector().

void cross_product ( double  x1,
double  y1,
double  z1,
double  x2,
double  y2,
double  z2,
double x,
double y,
double z 
) [inline]

Definition at line 6795 of file graphics.cc.

static Matrix default_axes_outerposition ( void   )  [static]

Definition at line 264 of file graphics.cc.

static Matrix default_axes_position ( void   )  [static]

Definition at line 253 of file graphics.cc.

static Matrix default_axes_tick ( void   )  [static]

Definition at line 272 of file graphics.cc.

static Matrix default_axes_ticklength ( void   )  [static]

Definition at line 285 of file graphics.cc.

static Matrix default_colororder ( void   )  [static]

Definition at line 199 of file graphics.cc.

static Matrix default_control_position ( void   )  [static]

Definition at line 325 of file graphics.cc.

static Matrix default_control_sliderstep ( void   )  [static]

Definition at line 338 of file graphics.cc.

static Matrix default_data ( void   )  [static]

Definition at line 242 of file graphics.cc.

static Matrix default_figure_paperposition ( void   )  [static]

Definition at line 314 of file graphics.cc.

static Matrix default_figure_papersize ( void   )  [static]

Definition at line 305 of file graphics.cc.

static Matrix default_figure_position ( void   )  [static]

Definition at line 294 of file graphics.cc.

static Matrix default_lim ( bool  logscale = false  )  [static]

Definition at line 226 of file graphics.cc.

static Matrix default_panel_position ( void   )  [static]

Definition at line 349 of file graphics.cc.

static double default_screendepth ( void   )  [static]

Definition at line 176 of file graphics.cc.

References display_info::depth().

static double default_screenpixelsperinch ( void   )  [static]

Definition at line 193 of file graphics.cc.

References display_info::x_dpi(), and display_info::y_dpi().

static Matrix default_screensize ( void   )  [static]

Definition at line 182 of file graphics.cc.

References display_info::height(), and display_info::width().

DEFUN ( waitfor  ,
args   
)
DEFUN ( __go_uitoggletool__  ,
args   
)

Definition at line 8786 of file graphics.cc.

References GO_BODY.

DEFUN ( __go_uipanel__  ,
args   
)

Definition at line 8750 of file graphics.cc.

References GO_BODY.

DEFUN ( __go_line__  ,
args   
)

Definition at line 8678 of file graphics.cc.

References GO_BODY.

DEFUN ( ishandle  ,
args   
)

Definition at line 7954 of file graphics.cc.

References is_handle(), octave_value_list::length(), and print_usage().

DEFUN ( __is_handle_visible__  ,
args   
)

Definition at line 8013 of file graphics.cc.

References is_handle_visible(), octave_value_list::length(), and print_usage().

DEFUN ( reset  ,
args   
)
DEFUN ( set  ,
args  ,
nargout   
)
DEFUN ( register_graphics_toolkit  ,
args   
)

Definition at line 9069 of file graphics.cc.

References error(), error_state, octave_value_list::length(), and print_usage().

DEFUN ( get  ,
args   
)
DEFUN ( __get__  ,
args   
)
DEFUN ( __go_figure__  ,
args   
)
DEFUN ( __calc_dimensions__  ,
args   
)
DEFUN ( __go_axes__  ,
args   
)

Definition at line 8669 of file graphics.cc.

References GO_BODY.

DEFUN ( __go_patch__  ,
args   
)

Definition at line 8714 of file graphics.cc.

References GO_BODY.

DEFUN ( dellistener  ,
args   
)
DEFUN ( __go_text__  ,
args   
)

Definition at line 8687 of file graphics.cc.

References GO_BODY.

DEFUN ( __go_image__  ,
args   
)

Definition at line 8696 of file graphics.cc.

References GO_BODY.

DEFUN ( __go_surface__  ,
args   
)

Definition at line 8705 of file graphics.cc.

References GO_BODY.

DEFUN ( __go_hggroup__  ,
args   
)

Definition at line 8723 of file graphics.cc.

References GO_BODY.

DEFUN ( __go_uimenu__  ,
args   
)

Definition at line 8732 of file graphics.cc.

References GO_BODY.

DEFUN ( __go_uicontrol__  ,
args   
)

Definition at line 8741 of file graphics.cc.

References GO_BODY.

DEFUN ( __go_uicontextmenu__  ,
args   
)

Definition at line 8759 of file graphics.cc.

References GO_BODY.

DEFUN ( __go_uitoolbar__  ,
args   
)

Definition at line 8768 of file graphics.cc.

References GO_BODY.

DEFUN ( __go_uipushtool__  ,
args   
)

Definition at line 8777 of file graphics.cc.

References GO_BODY.

DEFUN ( __go_delete__  ,
args   
)
DEFUN ( __go_axes_init__  ,
args   
)
DEFUN ( __go_handles__  ,
args   
)

Definition at line 8894 of file graphics.cc.

References octave_value_list::length(), and octave_value().

DEFUN ( __go_figure_handles__  ,
args   
)

Definition at line 8910 of file graphics.cc.

References octave_value_list::length(), and octave_value().

DEFUN ( __go_execute_callback__  ,
args   
)

Definition at line 8926 of file graphics.cc.

References error(), error_state, octave_value_list::length(), lookup(), and print_usage().

DEFUN ( __image_pixel_size__  ,
args   
)

Definition at line 8972 of file graphics.cc.

References error(), error_state, octave_value_list::length(), and print_usage().

DEFUN ( available_graphics_toolkits   ) 

Definition at line 9057 of file graphics.cc.

References octave_value().

DEFUN ( loaded_graphics_toolkits   ) 

Definition at line 9095 of file graphics.cc.

References octave_value().

DEFUN ( drawnow  ,
args   
)
DEFUN ( addlistener  ,
args   
)
DEFUN ( addproperty  ,
args   
)
static void delete_graphics_object ( const graphics_handle &  h  )  [static]

Definition at line 2328 of file graphics.cc.

References Vdrawnow_requested.

Referenced by delete_graphics_object(), delete_graphics_objects(), and force_close_figure().

static void delete_graphics_object ( double  val  )  [static]

Definition at line 2360 of file graphics.cc.

References delete_graphics_object(), and lookup().

static void delete_graphics_objects ( const NDArray  vals  )  [static]

Definition at line 2366 of file graphics.cc.

References delete_graphics_object(), Array< T >::elem(), and Array< T >::numel().

Referenced by DEFUN().

static void do_cleanup_waitfor_listener ( const octave_value listener,
listener_mode  mode = POSTSET 
) [static]
static Matrix do_zoom ( double  val,
double  factor,
const Matrix lims,
bool  is_logscale 
) [static]

Definition at line 6393 of file graphics.cc.

References pow().

double dot ( const ColumnVector v1,
const ColumnVector v2 
) [inline]

Definition at line 4323 of file graphics.cc.

Referenced by norm().

static void finalize_r ( const graphics_handle &  h  )  [static]

Definition at line 1624 of file graphics.cc.

References Array< T >::numel().

static void force_close_figure ( const graphics_handle &  handle  )  [static]

Definition at line 2381 of file graphics.cc.

References delete_graphics_object(), and xset().

double force_in_range ( const double  x,
const double  lower,
const double  upper 
) [inline]

Definition at line 6382 of file graphics.cc.

graphics_handle gca ( void   ) 
graphics_handle gcf ( void   ) 

Definition at line 2311 of file graphics.cc.

References octave_value::double_value(), octave_value::is_empty(), octave_NaN, and xget().

Referenced by DEFUN(), and gca().

template<class T >
static void get_array_limits ( const Array< T > &  m,
double emin,
double emax,
double eminp,
double emaxp 
) [static]

Definition at line 776 of file graphics.cc.

References Array< T >::data(), Array< T >::numel(), and xisinf().

void get_children_limits ( double min_val,
double max_val,
double min_pos,
double max_neg,
const Matrix kids,
char  limit_type 
)

Definition at line 5935 of file graphics.cc.

References check_limit_vals(), and Array< T >::numel().

Referenced by max_axes_scale().

static std::string get_graphics_object_type ( const double  val  )  [static]

Definition at line 8182 of file graphics.cc.

References error().

Referenced by DEFUN().

octave_value get_property_from_handle ( double  handle,
const std::string &  property,
const std::string &  func 
)

Definition at line 9548 of file graphics.cc.

References error().

Referenced by mexGet().

static void gripe_set_invalid ( const std::string &  pname  )  [static]

Definition at line 65 of file graphics.cc.

References error().

static void initialize_r ( const graphics_handle &  h  )  [static]

Definition at line 1640 of file graphics.cc.

References Array< T >::numel().

static bool is_figure ( double  val  )  [static]

Definition at line 2482 of file graphics.cc.

Referenced by DEFUN().

static octave_value is_handle ( const octave_value val  )  [static]
static bool is_handle ( const graphics_handle &  h  )  [static]

Definition at line 2443 of file graphics.cc.

Referenced by DEFUN(), and is_handle().

static bool is_handle ( double  val  )  [static]

Definition at line 2449 of file graphics.cc.

References lookup().

static bool is_handle_visible ( const graphics_handle &  h  )  [static]

Definition at line 7977 of file graphics.cc.

Referenced by DEFUN(), and is_handle_visible().

static bool is_handle_visible ( double  val  )  [static]

Definition at line 7983 of file graphics.cc.

References is_handle_visible(), and lookup().

static octave_value is_handle_visible ( const octave_value val  )  [static]
static Matrix jet_colormap ( void   )  [static]

Definition at line 135 of file graphics.cc.

References x.

static bool lookup_object_name ( const caseless_str name,
caseless_str go_name,
caseless_str rest 
) [static]

Definition at line 805 of file graphics.cc.

References caseless_str::compare().

static void magform ( double  x,
double a,
int b 
) [static]

Definition at line 5600 of file graphics.cc.

References abs(), floor(), and pow().

static octave_value make_graphics_object ( const std::string &  go_name,
bool  integer_figure_handle,
const octave_value_list args 
) [static]
static base_graphics_object* make_graphics_object_from_type ( const caseless_str type,
const graphics_handle &  h = graphics_handle (),
const graphics_handle &  p = graphics_handle () 
) [static]

Definition at line 883 of file graphics.cc.

References caseless_str::compare().

static double make_handle_fraction ( void   )  [static]

Definition at line 2116 of file graphics.cc.

static void max_axes_scale ( double s,
Matrix limits,
const Matrix kids,
double  pbfactor,
double  dafactor,
char  limit_type,
bool  tight 
) [static]

Definition at line 5158 of file graphics.cc.

References get_children_limits(), octave_Inf, xisinf(), xisnan(), and xmax().

double norm ( const ColumnVector v  )  [inline]
void normalize ( ColumnVector v  )  [inline]

Definition at line 4316 of file graphics.cc.

References scale().

static void normalized_aspectratios ( Matrix aspectratios,
const Matrix scalefactors,
double  xlength,
double  ylength,
double  zlength 
) [static]

Definition at line 5143 of file graphics.cc.

References xmin().

static Matrix papersize_from_type ( const caseless_str  punits,
const caseless_str  typ 
) [static]

Definition at line 3307 of file graphics.cc.

References caseless_str::compare().

static graphics_handle reparent ( const octave_value ov,
const std::string &  who,
const std::string &  property,
const graphics_handle &  new_parent,
bool  adopt = true 
) [static]

Definition at line 2271 of file graphics.cc.

References adopt(), octave_value::double_value(), error(), error_state, lookup(), and octave_NaN.

static void reset_default_properties ( property_list &  default_properties  )  [static]

Definition at line 3060 of file graphics.cc.

Referenced by DEFUN().

void scale ( Matrix m,
double  x,
double  y,
double  z 
) [inline]
void scale ( ColumnVector v,
double  x,
double  y,
double  z 
) [inline]

Definition at line 4300 of file graphics.cc.

static Matrix screen_size_pixels ( void   )  [static]

Definition at line 652 of file graphics.cc.

References convert_position(), and Matrix::extract_n().

bool set_property_in_handle ( double  handle,
const std::string &  property,
const octave_value arg,
const std::string &  func 
)

Definition at line 9565 of file graphics.cc.

References error(), and error_state.

Referenced by mexSet().

ColumnVector transform ( const Matrix m,
double  x,
double  y,
double  z 
) [inline]

Definition at line 4260 of file graphics.cc.

References xform_vector().

Referenced by DEFUN_DLD(), octregexp(), and parse_options().

void translate ( Matrix m,
double  x,
double  y,
double  z 
) [inline]

Definition at line 4288 of file graphics.cc.

References xform_translate().

void translate ( ColumnVector v,
double  x,
double  y,
double  z 
) [inline]

Definition at line 4308 of file graphics.cc.

Matrix unit_cube ( void   )  [inline]

Definition at line 4345 of file graphics.cc.

References Array< T >::fortran_vec().

static caseless_str validate_property_name ( const std::string &  who,
const std::string &  what,
const std::set< std::string > &  pnames,
const caseless_str pname 
) [static]
static octave_value_list waitfor_del_listener ( const octave_value_list args,
int   
) [static]

Definition at line 9699 of file graphics.cc.

References error_state, and octave_value_list::length().

Referenced by DEFUN().

static octave_value_list waitfor_listener ( const octave_value_list args,
int   
) [static]

Definition at line 9657 of file graphics.cc.

References compare_property_values(), error_state, octave_value_list::length(), and lookup().

Referenced by DEFUN().

static void xcreatefcn ( const graphics_handle &  h  )  [static]

Definition at line 2490 of file graphics.cc.

Referenced by DEFUN(), and make_graphics_object().

void xform ( ColumnVector v,
const Matrix m 
) [inline]

Definition at line 4294 of file graphics.cc.

Referenced by opengl_renderer::opengl_renderer().

RowVector xform2cam ( const ColumnVector v  )  [inline]

Definition at line 4370 of file graphics.cc.

References ColumnVector::extract_n(), and ColumnVector::transpose().

Matrix xform_matrix ( void   )  [inline]

Definition at line 4235 of file graphics.cc.

Referenced by xform_translate().

Matrix xform_scale ( double  x,
double  y,
double  z 
) [inline]

Definition at line 4266 of file graphics.cc.

Referenced by scale().

Matrix xform_translate ( double  x,
double  y,
double  z 
) [inline]

Definition at line 4274 of file graphics.cc.

References xform_matrix().

Referenced by translate().

ColumnVector xform_vector ( void   )  [inline]

Definition at line 4244 of file graphics.cc.

Referenced by cross(), and transform().

ColumnVector graphics_xform::xform_vector ( double  x,
double  y,
double  z 
) [inline]

Definition at line 4252 of file graphics.cc.

static octave_value xget ( const graphics_handle &  h,
const caseless_str name 
) [static]

Definition at line 2264 of file graphics.cc.

Referenced by close_figure(), convert_font_size(), convert_position(), gca(), and gcf().

static void xinitialize ( const graphics_handle &  h  )  [static]

Definition at line 2497 of file graphics.cc.

Referenced by DEFUN(), and make_graphics_object().

static void xset ( const graphics_handle &  h,
const octave_value_list args 
) [static]

Definition at line 2254 of file graphics.cc.

References octave_value_list::length().

static void xset ( const graphics_handle &  h,
const caseless_str name,
const octave_value val 
) [static]

Definition at line 2246 of file graphics.cc.

Referenced by DEFUN(), force_close_figure(), and make_graphics_object().

static void xset_gcbo ( const graphics_handle &  h  )  [static]

Definition at line 7673 of file graphics.cc.


Variable Documentation

std::map<caseless_str, graphics_object> dprop_obj_map [static]

Definition at line 1471 of file graphics.cc.

bool executing_callback = false [static]

Definition at line 1443 of file graphics.cc.

bool updating_aspectratios = false [static]

Definition at line 5180 of file graphics.cc.

bool updating_axes_layout = false [static]

Definition at line 4593 of file graphics.cc.

bool updating_axis_limits = false [static]

Definition at line 6018 of file graphics.cc.

bool updating_hggroup_limits = false [static]

Definition at line 6912 of file graphics.cc.

bool updating_title_position = false [static]

Definition at line 5084 of file graphics.cc.

bool updating_xlabel_position = false [static]

Definition at line 4789 of file graphics.cc.

bool updating_ylabel_position = false [static]

Definition at line 4880 of file graphics.cc.

bool updating_zlabel_position = false [static]

Definition at line 4971 of file graphics.cc.

std::map<uint32_t, bool> waitfor_results [static]

Definition at line 9602 of file graphics.cc.

 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines