[Contents] [Back] [Prev] [Up] [Next] [Forward]

# Package Gtk.Extra.Plot`_`3D

A special plot that draws its data in three dimension. The data associated with such plots should either be a function or a Gtk.Extra.Plot_Surface.

- Gtk.Extra.Plot_3D Widget Hierarchy
- Gtk.Extra.Plot_3D Types
- Gtk.Extra.Plot_3D Subprograms

## Widget Hierarchy

    Gtk_Object                    (see section Package Gtk.Object)
       \___ Gtk_Widget            (see section Package Gtk.Widget)
          \___ Gtk_Plot           (see section Package Gtk.Extra.Plot)
             \___ Gtk_Plot_3D     (see section Package Gtk.Extra.Plot_3D)

## Types

    type Plot_Plane is new Integer;

    type Plot_Side is mod 2 ** 32;

    type Plot_Vector is record
        X, Y, Z : Gdouble;
        end record;

## Subprograms

    procedure Gtk_New
      (Widget             : out    Gtk_Plot_3D;
       Drawable           :        Gdk.Drawable.Gdk_Drawable;
       Width, Height      :        Gdouble := 0.0);

| Create a new 3D plot.

    function Get_Type              return Gtk.Gtk_Type;

| Return the internal value associated with this widget.

    procedure Autoscale
      (Plot               : access Gtk_Plot_3D_Record);

| Chooses the best ranges for all coordinates depending on the data sets put in Plot. Note that only data sets whose points you have set explicitely are taken into account, not the ones based on functions.

    function Get_Xfactor
      (Plot               : access Gtk_Plot_3D_Record)
       return Gdouble;

    function Get_Zfactor
      (Plot               : access Gtk_Plot_3D_Record)
       return Gdouble;

| Get the scaling factor along each of the coordinates.

    procedure Set_Xfactor
      (Plot               : access Gtk_Plot_3D_Record;
       Xfactor            :        Gdouble);

    procedure Set_Zfactor
      (Plot               : access Gtk_Plot_3D_Record;
       Zfactor            :        Gdouble);

| Set the scaling factor along each of the coordinates

    procedure Set_Xrange
      (Plot               : access Gtk_Plot_3D_Record;
       Min, Max           :        Gdouble);

    procedure Set_Zrange
      (Plot               : access Gtk_Plot_3D_Record;
       Min, Max           :        Gdouble);

| Set the minimal and maximal values for each axis.

### Axis

    procedure Axis_Hide_Title
      (Plot               : access Gtk_Plot_3D_Record;
       Side               :        Plot_Side);

| Hide the title associated with the axis.

    procedure Axis_Set_Major_Ticks
      (Plot               : access Gtk_Plot_3D_Record;
       Axis               :        Gtk.Extra.Plot.Plot_Orientation;
       Major_Step         :        Gdouble);

| Modify the step for major ticks. This is a percentage value that indicates how many major ticks are drawn along the axis. See also Axis_Set_Ticks.

    procedure Axis_Set_Minor_Ticks
      (Plot               : access Gtk_Plot_3D_Record;
       Axis               :        Gtk.Extra.Plot.Plot_Orientation;
       Nminor             :        Gint);

| Modify the number of minor ticks between each major one. See also Axis_Set_Ticks.

    procedure Axis_Set_Ticks
      (Plot               : access Gtk_Plot_3D_Record;
       Axis               :        Gtk.Extra.Plot.Plot_Orientation;
       Major_Step         :        Gdouble;
       Nminor             :        Gint);

Set up ticks for a specific orientation.
A horizontal orientation will match the left and right sides, whereas a vertical orientation will match the top and bottom sides. Major_Step is a percentage value of the widget size, and indicate the step between each big ticks. For instance, if Major_Step has a value of 0.2, there will be 5 big ticks drawn along the axis. Num_Minor is the number of minor ticks between each major one.

    procedure Axis_Set_Ticks_Length
      (Plot               : access Gtk_Plot_3D_Record;
       Axis               :        Gtk.Extra.Plot.Plot_Orientation;
       Length             :        Gint);

| Set the length (in pixels) of the big ticks. The small ticks will have half this length.

    procedure Axis_Set_Ticks_Width
      (Plot               : access Gtk_Plot_3D_Record;
       Axis               :        Gtk.Extra.Plot.Plot_Orientation;
       Width              :        Gfloat);

| Set the width (in pixels) of the ticks. This width is common to both the long and short ticks.

    procedure Axis_Show_Labels
      (Plot               : access Gtk_Plot_3D_Record;
       Side               :        Plot_Side;
       Label_Mask         :        Gint);

| Indicate whether a label should be drawn at each ticks to indicate its value. Not all values of Labels_Mask are relevant for all axis. For instance, for a vertical axis, the relevant values are Label_Right and Label_Left.

    procedure Axis_Show_Major_Ticks
      (Plot               : access Gtk_Plot_3D_Record;
       Side               :        Plot_Side;
       Ticks_Mask         :        Gtk.Extra.Plot.Plot_Ticks_Pos);

| Set the style of the major ticks along one of the axis

    procedure Axis_Show_Minor_Ticks
      (Plot               : access Gtk_Plot_3D_Record;
       Side               :        Plot_Side;
       Ticks_Mask         :        Gtk.Extra.Plot.Plot_Ticks_Pos);

| Set the style of the minor ticks along one of the axis

    procedure Axis_Show_Ticks
      (Plot               : access Gtk_Plot_3D_Record;
       Side               :        Plot_Side;
       Major_Mask         :        Gtk.Extra.Plot.Plot_Ticks_Pos;
       Minor_Mask         :        Gtk.Extra.Plot.Plot_Ticks_Pos);

| Set the style of the ticks.

    procedure Axis_Show_Title
      (Plot               : access Gtk_Plot_3D_Record;
       Side               :        Plot_Side);

| Show the title associated with the axis.

    function Get_Axis
      (Plot               : access Gtk_Plot_3D_Record;
       Orientation        :        Gtk.Extra.Plot.Plot_Orientation)
       return Gtk.Extra.Plot.Gtk_Plot_Axis;

| Return a handle to a specific axis.

    function Get_Side
      (Plot               : access Gtk_Plot_3D_Record;
       Side               :        Plot_Side)
       return Gtk.Extra.Plot.Gtk_Plot_Axis;

| Get the axis for a specific side.

### Grid

    procedure Major_Grids_Set_Visible
      (Plot               : access Gtk_Plot_3D_Record;
       X, Y, Z            :        Boolean);

| Indicate whether the grid should be displayed for each coordinate

    procedure Major_Grids_Visible
      (Plot               : access Gtk_Plot_3D_Record;
       X, Y, Z            : out    Boolean);

| Indicate whether the grid is currently displayed.

    procedure Minor_Grids_Set_Visible
      (Plot               : access Gtk_Plot_3D_Record;
       X, Y, Z            :        Boolean);

| Indicate whether the grid should be displayed for each coordinate

    procedure Minor_Grids_Visible
      (Plot               : access Gtk_Plot_3D_Record;
       X, Y, Z            : out    Boolean);

| Indicate whether the grid is currently displayed.

    procedure Major_Zgrid_Get_Attributes
      (Plot               : access Gtk_Plot_3D_Record;
       Style              : out    Gtk.Extra.Plot_Data.Plot_Line_Style;
       Width              : out    Gfloat;
       Color              : out    Gdk.Color.Gdk_Color);

| Get the attributes of the major grid

    procedure Major_Zgrid_Set_Attributes
      (Plot               : access Gtk_Plot_3D_Record;
       Style              :        Gtk.Extra.Plot_Data.Plot_Line_Style;
       Width              :        Gfloat;
       Color              :        Gdk.Color.Gdk_Color);

| Set the attributes of the major grid

    procedure Minor_Zgrid_Get_Attributes
      (Plot               : access Gtk_Plot_3D_Record;
       Style              : out    Gtk.Extra.Plot_Data.Plot_Line_Style;
       Width              : out    Gfloat;
       Color              : out    Gdk.Color.Gdk_Color);

| Get the attributes of the minor grid

    procedure Minor_Zgrid_Set_Attributes
      (Plot               : access Gtk_Plot_3D_Record;
       Style              :        Gtk.Extra.Plot_Data.Plot_Line_Style;
       Width              :        Gfloat;
       Color              :        Gdk.Color.Gdk_Color);

| Set the attributes of the minor grid

### Rotating

    procedure Reset_Angles
      (Plot               : access Gtk_Plot_3D_Record);

| reset all the angles to their default values

    procedure Rotate
      (Plot               : access Gtk_Plot_3D_Record;
       Angle_X, Angle_Y, Angle_Z  :        Gdouble);

| Rotate the plot along the three axis at the same time. The angles are specified in degrees.

    procedure Rotate_Vector
      (Plot               : access Gtk_Plot_3D_Record;
       Vector             :        Plot_Vector;
       A1, A2, A3         :        Gdouble);

| Rotate Vector along the three axis. The three angles A1, A2 and A3 are specified in degrees.

    procedure Rotate_X
      (Plot               : access Gtk_Plot_3D_Record;
       Angle              :        Gdouble);

    procedure Rotate_Z
      (Plot               : access Gtk_Plot_3D_Record;
       Angle              :        Gdouble);

| Rotate the plot along a specific axis. Angle is specific in degrees.

### Planes

A 3D plot is associated, as usual, with three axis (one per coordinate X, Y and Z). These three axis, together, define 3 planes that can be shown or hidden, and on which a grid can be displayed to make it easy to visualize the value of the data.

    procedure Plane_Set_Color
      (Plot               : access Gtk_Plot_3D_Record;
       Plane              :        Plot_Plane;
       Color              :        Gdk.Color.Gdk_Color);

| Define the background color to use for one of the planes. Each plane can have its own color.

    procedure Plane_Set_Visible
      (Plot               : access Gtk_Plot_3D_Record;
       Plane              :        Plot_Plane;
       Visible            :        Boolean);

| Indicate whether each plane should be displayed or not.

    function Plane_Visible
      (Plot               : access Gtk_Plot_3D_Record;
       Plane              :        Plot_Plane)
       return Boolean;

| Indicate whether a plane is currently visible or not.

### Corners

In addition to drawing the three planes defined by the axis, a 3D plot can also draw some lines to draw a cube around the plot (although the three new planes defined by these lines are left transparent so that the plot is visible.

    procedure Corner_Get_Attributes
      (Plot               : access Gtk_Plot_3D_Record;
       Style              : out    Gtk.Extra.Plot_Data.Plot_Line_Style;
       Width              : out    Gfloat;
       Color              : out    Gdk.Color.Gdk_Color);

| Get the style of the corner lines.

    procedure Corner_Set_Attributes
      (Plot               : access Gtk_Plot_3D_Record;
       Style              :        Gtk.Extra.Plot_Data.Plot_Line_Style;
       Width              :        Gfloat;
       Color              :        Gdk.Color.Gdk_Color);

| Define the style of the corner lines.

    procedure Corner_Set_Visible
      (Plot               : access Gtk_Plot_3D_Record;
       Visible            :        Boolean);

| Whether corners should be visible

    function Corner_Visible
      (Plot               : access Gtk_Plot_3D_Record)
       return Boolean;

| Indicate whether corners are visible

### Misc

    procedure Frame_Get_Attributes
      (Plot               : access Gtk_Plot_3D_Record;
       Style              : out    Gtk.Extra.Plot_Data.Plot_Line_Style;
       Width              : out    Gfloat;
       Color              : out    Gdk.Color.Gdk_Color);

    procedure Frame_Set_Attributes
      (Plot               : access Gtk_Plot_3D_Record;
       Style              :        Gtk.Extra.Plot_Data.Plot_Line_Style;
       Width              :        Gfloat;
       Color              :        Gdk.Color.Gdk_Color);

    procedure Get_Pixel
      (Plot               : access Gtk_Plot_3D_Record;
       X, Y, Z            :        Gdouble;
       Px, Py, Pz         : out    Gdouble);

    function Get_Titles_Offset
      (Plot               : access Gtk_Plot_3D_Record)
       return Gint;

    procedure Set_Titles_Offset
      (Plot               : access Gtk_Plot_3D_Record;
       Offset             :        Gint);

[Contents] [Back] [Prev] [Up] [Next] [Forward]