octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Graphics properties implementation


From: Ben Abbott
Subject: Re: Graphics properties implementation
Date: Sat, 12 Jan 2008 12:16:17 -0500


On Jan 12, 2008, at 11:53 AM, Shai Ayal wrote:

On Jan 12, 2008 6:44 PM, Michael Goffioul <address@hidden> wrote:
On 1/12/08, Shai Ayal <address@hidden> wrote:
OK, it seems like it's time to start adding properties.
Michael, Just so we don't duplicate our work, Do you plan on adding
other properties soon or will you focus on the backend?
If you are planning to add, lets divide the work -- tell me what you
want to add, and I'll do the rest

Please go ahead with adding properties (I need them in order
to continue on the rendering code). I won't have that much time
this weekend, so I'll let you start on it. I think that the first
thing to do is to identify the properties that every object should
have and put them in the base_properties class (note that this
class is not auto-generated). I remember I've seen a page
in Matlab doc about common properties (I don't have Matlab
under hand for the moment and the Mathworks server is down).

yeah -- I noticed their server is down also. I don't have a copy of
matlab either, so I'll wait until their server is up.

There are other things I can do while you're working on the
properties: for instance add the C++ code to implement listeners,
add flags for the genprops.awk script to support hidden or
read-only properties.

Related to hidden properties, I think that properties like
__plot_stream__ and so on should be hidden. Normally, hidden
properties should not be listed by the "get(void)" method; they
should only be accessible on explicit requests by the
"get(caseless_str)" method. However, doing this will make
some m-code not functional: for instance, "drawnow" uses
"get(fig_handle)" to get a structure containing all properties;
if hidden properties are not part of the structure, drawnow
will fail. What do you think?

Maybe it's not so important that this particular property is hidden -
our users are hardned folks and they won't be intimidated by it

Shai

Shai/Michael,

If I understand what you're looking for, I'm happy to provide a list of properties. Let me know if this is the sort of thing you need, and what other objects you'd like interrogated.

set(0)
        CurrentFigure
        Diary: [ on | off ]
        DiaryFile
        Echo: [ on | off ]
        FixedWidthFontName
Format: [ short | long | shortE | longE | shortG | longG | hex | bank | + | rational | debug | shortEng | longEng ]
        FormatSpacing: [ loose | compact ]
        Language
        More: [ on | off ]
        PointerLocation
        RecursionLimit
        ScreenDepth
        ScreenPixelsPerInch
        ShowHiddenHandles: [ on | {off} ]
Units: [ inches | centimeters | normalized | points | pixels | characters ]

        ButtonDownFcn: string -or- function handle -or- cell array
        Children
        Clipping: [ {on} | off ]
        CreateFcn: string -or- function handle -or- cell array
        DeleteFcn: string -or- function handle -or- cell array
        BusyAction: [ {queue} | cancel ]
        HandleVisibility: [ {on} | callback | off ]
        HitTest: [ {on} | off ]
        Interruptible: [ {on} | off ]
        Parent
        Selected: [ on | off ]
        SelectionHighlight: [ {on} | off ]
        Tag
        UIContextMenu
        UserData
        Visible: [ {on} | off ]


set(gcf)
        Alphamap
        CloseRequestFcn: string -or- function handle -or- cell array
        Color
        Colormap
        CurrentAxes
        CurrentCharacter
        CurrentObject
        CurrentPoint
        DockControls: [ {on} | off ]
        DoubleBuffer: [ {on} | off ]
        FileName
        IntegerHandle: [ {on} | off ]
        InvertHardcopy: [ {on} | off ]
        KeyPressFcn: string -or- function handle -or- cell array
        KeyReleaseFcn: string -or- function handle -or- cell array
        MenuBar: [ none | {figure} ]
        MinColormap
        Name
        NextPlot: [ new | {add} | replace | replacechildren ]
        NumberTitle: [ {on} | off ]
        PaperUnits: [ {inches} | centimeters | normalized | points ]
        PaperOrientation: [ {portrait} | landscape | rotated ]
        PaperPosition
        PaperPositionMode: [ auto | {manual} ]
        PaperSize
PaperType: [ {usletter} | uslegal | A0 | A1 | A2 | A3 | A4 | A5 | B0 | B1 | B2 | B3 | B4 | B5 | arch-A | arch-B | arch-C | arch-D | arch-E | A | B | C | D | E | tabloid | <custom> ] Pointer: [ crosshair | fullcrosshair | {arrow} | ibeam | watch | topl | topr | botl | botr | left | top | right | bottom | circle | cross | fleur | custom | hand ]
        PointerShapeCData
        PointerShapeHotSpot
        Position
        Renderer: [ {painters} | zbuffer | OpenGL | None ]
        RendererMode: [ {auto} | manual ]
        Resize: [ {on} | off ]
        ResizeFcn: string -or- function handle -or- cell array
        SelectionType: [ normal | open | alt | extend ]
        ToolBar: [ none | {auto} | figure ]
Units: [ inches | centimeters | normalized | points | {pixels} | characters ]
        WindowButtonDownFcn: string -or- function handle -or- cell array
        WindowButtonMotionFcn: string -or- function handle -or- cell array
        WindowButtonUpFcn: string -or- function handle -or- cell array
        WindowScrollWheelFcn: string -or- function handle -or- cell array
        WindowStyle: [ {normal} | modal | docked ]
        XDisplay
XVisual: { 0x23 (TrueColor, depth 24, RGB mask 0xff0000 0xff00 0x00ff) }
  0x24 (TrueColor, depth 24, RGB mask 0xff0000 0xff00 0x00ff)
  0x25 (TrueColor, depth 24, RGB mask 0xff0000 0xff00 0x00ff)
  0x26 (TrueColor, depth 24, RGB mask 0xff0000 0xff00 0x00ff)

        XVisualMode: [ {auto} | manual ]

        ButtonDownFcn: string -or- function handle -or- cell array
        Children
        Clipping: [ {on} | off ]
        CreateFcn: string -or- function handle -or- cell array
        DeleteFcn: string -or- function handle -or- cell array
        BusyAction: [ {queue} | cancel ]
        HandleVisibility: [ {on} | callback | off ]
        HitTest: [ {on} | off ]
        Interruptible: [ {on} | off ]
        Parent
        Selected: [ on | off ]
        SelectionHighlight: [ {on} | off ]
        Tag
        UIContextMenu
        UserData
        Visible: [ {on} | off ]

set(gca)
        ActivePositionProperty: [ position | {outerposition} ]
        ALim
        ALimMode: [ {auto} | manual ]
        AmbientLightColor
        Box: [ on | {off} ]
        CameraPosition
        CameraPositionMode: [ {auto} | manual ]
        CameraTarget
        CameraTargetMode: [ {auto} | manual ]
        CameraUpVector
        CameraUpVectorMode: [ {auto} | manual ]
        CameraViewAngle
        CameraViewAngleMode: [ {auto} | manual ]
        CLim
        CLimMode: [ {auto} | manual ]
        Color
        ColorOrder
        DataAspectRatio
        DataAspectRatioMode: [ {auto} | manual ]
        DrawMode: [ {normal} | fast ]
        FontAngle: [ {normal} | italic | oblique ]
        FontName
        FontSize
        FontUnits: [ inches | centimeters | normalized | {points} | pixels ]
        FontWeight: [ light | {normal} | demi | bold ]
        GridLineStyle: [ - | -- | {:} | -. | none ]
        Layer: [ top | {bottom} ]
        LineStyleOrder
        LineWidth
        MinorGridLineStyle: [ - | -- | {:} | -. | none ]
        NextPlot: [ new | add | {replace} | replacechildren ]
        OuterPosition
        PlotBoxAspectRatio
        PlotBoxAspectRatioMode: [ {auto} | manual ]
        Projection: [ {orthographic} | perspective ]
        Position
        TickLength
        TickDir: [ {in} | out ]
        TickDirMode: [ {auto} | manual ]
        Title
Units: [ inches | centimeters | {normalized} | points | pixels | characters ]
        View
        XColor
        XDir: [ {normal} | reverse ]
        XGrid: [ on | {off} ]
        XLabel
        XAxisLocation: [ top | {bottom} ]
        XLim
        XLimMode: [ {auto} | manual ]
        XMinorGrid: [ on | {off} ]
        XMinorTick: [ on | {off} ]
        XScale: [ {linear} | log ]
        XTick
        XTickLabel
        XTickLabelMode: [ {auto} | manual ]
        XTickMode: [ {auto} | manual ]
        YColor
        YDir: [ {normal} | reverse ]
        YGrid: [ on | {off} ]
        YLabel
        YAxisLocation: [ {left} | right ]
        YLim
        YLimMode: [ {auto} | manual ]
        YMinorGrid: [ on | {off} ]
        YMinorTick: [ on | {off} ]
        YScale: [ {linear} | log ]
        YTick
        YTickLabel
        YTickLabelMode: [ {auto} | manual ]
        YTickMode: [ {auto} | manual ]
        ZColor
        ZDir: [ {normal} | reverse ]
        ZGrid: [ on | {off} ]
        ZLabel
        ZLim
        ZLimMode: [ {auto} | manual ]
        ZMinorGrid: [ on | {off} ]
        ZMinorTick: [ on | {off} ]
        ZScale: [ {linear} | log ]
        ZTick
        ZTickLabel
        ZTickLabelMode: [ {auto} | manual ]
        ZTickMode: [ {auto} | manual ]

        ButtonDownFcn: string -or- function handle -or- cell array
        Children
        Clipping: [ {on} | off ]
        CreateFcn: string -or- function handle -or- cell array
        DeleteFcn: string -or- function handle -or- cell array
        BusyAction: [ {queue} | cancel ]
        HandleVisibility: [ {on} | callback | off ]
        HitTest: [ {on} | off ]
        Interruptible: [ {on} | off ]
        Parent
        Selected: [ on | off ]
        SelectionHighlight: [ {on} | off ]
        Tag
        UIContextMenu
        UserData
        Visible: [ {on} | off ]

line = plot([1,2],[1,2])

line =

  159.0022

>> set(line)

ans =

           DisplayName: {}
                 Color: {}
             EraseMode: {4x1 cell}
             LineStyle: {5x1 cell}
             LineWidth: {}
                Marker: {14x1 cell}
            MarkerSize: {}
       MarkerEdgeColor: {2x1 cell}
       MarkerFaceColor: {2x1 cell}
                 XData: {}
                 YData: {}
                 ZData: {}
         ButtonDownFcn: {}
              Children: {}
              Clipping: {2x1 cell}
             CreateFcn: {}
             DeleteFcn: {}
            BusyAction: {2x1 cell}
      HandleVisibility: {3x1 cell}
               HitTest: {2x1 cell}
         Interruptible: {2x1 cell}
              Selected: {2x1 cell}
    SelectionHighlight: {2x1 cell}
                   Tag: {}
         UIContextMenu: {}
              UserData: {}
               Visible: {2x1 cell}
                Parent: {}
             XDataMode: {2x1 cell}
           XDataSource: {}
           YDataSource: {}
           ZDataSource: {}

ht = text(0,0,'test')

ht =

  160.0011

>> set(ht)
        BackgroundColor
        Color
        DisplayName
        EdgeColor
        EraseMode: [ {normal} | background | xor | none ]
        Editing: [ on | off ]
        FontAngle: [ {normal} | italic | oblique ]
        FontName
        FontSize
        FontUnits: [ inches | centimeters | normalized | {points} | pixels ]
        FontWeight: [ light | {normal} | demi | bold ]
        HorizontalAlignment: [ {left} | center | right ]
        LineStyle: [ {-} | -- | : | -. | none ]
        LineWidth
        Margin
        Position
        Rotation
        String
Units: [ inches | centimeters | normalized | points | pixels | characters | {data} ]
        Interpreter: [ latex | {tex} | none ]
        VerticalAlignment: [ top | cap | {middle} | baseline | bottom ]

        ButtonDownFcn: string -or- function handle -or- cell array
        Children
        Clipping: [ {on} | off ]
        CreateFcn: string -or- function handle -or- cell array
        DeleteFcn: string -or- function handle -or- cell array
        BusyAction: [ {queue} | cancel ]
        HandleVisibility: [ {on} | callback | off ]
        HitTest: [ {on} | off ]
        Interruptible: [ {on} | off ]
        Parent
        Selected: [ on | off ]
        SelectionHighlight: [ {on} | off ]
        Tag
        UIContextMenu
        UserData
        Visible: [ {on} | off ]

 x = [0 0 1 1];
>> y = [0 1 1 0];
>> c = [0 0 1];
>> hp = patch(x,y,c)

hp =

  161.0011

>> set(hp)
        AlphaDataMapping: [ none | direct | {scaled} ]
        CData
        CDataMapping: [ direct | {scaled} ]
        DisplayName
        FaceVertexAlphaData
        FaceVertexCData
        EdgeAlpha: [ flat | interp ] -or- {an Alpha}.
        EdgeColor: [ none | flat | interp ] -or- {a ColorSpec}.
        EraseMode: [ {normal} | background | xor | none ]
        FaceAlpha: [ flat | interp ] -or- {an Alpha}.
        FaceColor: [ none | flat | interp ] -or- {a ColorSpec}.
        Faces
        LineStyle: [ {-} | -- | : | -. | none ]
        LineWidth
Marker: [ + | o | * | . | x | square | diamond | v | ^ | > | < | pentagram | hexagram | {none} ]
        MarkerEdgeColor: [ none | {auto} | flat ] -or- a ColorSpec.
        MarkerFaceColor: [ {none} | auto | flat ] -or- a ColorSpec.
        MarkerSize
        Vertices
        XData
        YData
        ZData
        FaceLighting: [ none | {flat} | gouraud | phong ]
        EdgeLighting: [ {none} | flat | gouraud | phong ]
        BackFaceLighting: [ unlit | lit | {reverselit} ]
        AmbientStrength
        DiffuseStrength
        SpecularStrength
        SpecularExponent
        SpecularColorReflectance
        VertexNormals
        NormalMode: [ {auto} | manual ]

        ButtonDownFcn: string -or- function handle -or- cell array
        Children
        Clipping: [ {on} | off ]
        CreateFcn: string -or- function handle -or- cell array
        DeleteFcn: string -or- function handle -or- cell array
        BusyAction: [ {queue} | cancel ]
        HandleVisibility: [ {on} | callback | off ]
        HitTest: [ {on} | off ]
        Interruptible: [ {on} | off ]
        Parent
        Selected: [ on | off ]
        SelectionHighlight: [ {on} | off ]
        Tag
        UIContextMenu
        UserData
        Visible: [ {on} | off ]

Ben





reply via email to

[Prev in Thread] Current Thread [Next in Thread]