File: vtkwidgets_vtkcontourwidget.html

package info (click to toggle)
freemat 4.2%2Bdfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 141,800 kB
  • ctags: 14,082
  • sloc: ansic: 126,788; cpp: 62,046; python: 2,080; perl: 1,255; sh: 1,146; yacc: 1,019; lex: 239; makefile: 100
file content (189 lines) | stat: -rw-r--r-- 13,519 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>FreeMat: vtkContourWidget</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">FreeMat
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('vtkwidgets_vtkcontourwidget.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">vtkContourWidget </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>Section: <a class="el" href="sec_vtkwidgets.html">Visualization Toolkit Widget Classes</a> </p>
<h1><a class="anchor" id="Usage"></a>
Usage</h1>
<p>The vtkContourWidget is used to select a set of points, and draw lines between these points. The contour may be opened or closed, depending on how the last point is added. The widget handles all processing of widget events (that are triggered by VTK events). The vtkContourRepresentation is responsible for all placement of the points, calculation of the lines, and contour manipulation. This is done through two main helper classes: vtkPointPlacer and vtkContourLineInterpolator. The representation is also responsible for drawing the points and lines.</p>
<p>.SECTION Event Bindings By default, the widget responds to the following VTK events (i.e., it watches the vtkRenderWindowInteractor for these events): </p>
<pre>
   LeftButtonPressEvent - triggers a Select event
   RightButtonPressEvent - triggers a AddFinalPoint event
   MouseMoveEvent - triggers a Move event
   LeftButtonReleaseEvent - triggers an EndSelect event
   Delete key event - triggers a Delete event
   Shift + Delete key event - triggers a Reset event
 </pre><p>Note that the event bindings described above can be changed using this class's vtkWidgetEventTranslator. This class translates VTK events into the vtkContourWidget's widget events: </p>
<pre>
   vtkWidgetEvent::Select 
        widget state is: 
            Start or
            Define: If we already have at least 2 nodes, test
                 whether the current (X,Y) location is near an existing
                 node. If so, close the contour and change to Manipulate
                 state. Otherwise, attempt to add a node at this (X,Y)
                 location.
            Manipulate: If this (X,Y) location activates a node, then
                 set the current operation to Translate. Otherwise, if
                 this location is near the contour, attempt to add a 
                 new node on the contour at this (X,Y) location.</pre><pre>   vtkWidgetEvent::AddFinalPoint
        widget state is: 
            Start: Do nothing.
            Define: If we already have at least 2 nodes, test
                 whether the current (X,Y) location is near an existing
                 node. If so, close the contour and change to Manipulate
                 state. Otherwise, attempt to add a node at this (X,Y)
                 location. If we do, then leave the contour open and
                 change to Manipulate state.
            Manipulate: Do nothing.</pre><pre>   vtkWidgetEvent::Move
        widget state is: 
            Start or
            Define: Do nothing.
            Manipulate: If our operation is Translate, then invoke
                  WidgetInteraction() on the representation. If our 
                  operation is Inactive, then just attempt to activate
                  a node at this (X,Y) location.</pre><pre>   vtkWidgetEvent::EndSelect
        widget state is: 
            Start or
            Define: Do nothing.
            Manipulate: If our operation is not Inactive, set it to
                  Inactive.</pre><pre>   vtkWidgetEvent::Delete
        widget state is: 
            Start: Do nothing.
            Define: Remove the last point on the contour.
            Manipulate: Attempt to activate a node at (X,Y). If
                   we do activate a node, delete it. If we now
                   have less than 3 nodes, go back to Define state.</pre><pre>   vtkWidgetEvent::Reset
        widget state is: 
            Start: Do nothing.
            Define: Remove all points and line segments of the contour.
                 Essentially calls Intialize(NULL) 
            Manipulate: Do nothing.
 </pre><p>This widget invokes the following VTK events on itself (which observers can listen for): </p>
<pre>
   vtkCommand::StartInteractionEvent (beginning to interact)
   vtkCommand::EndInteractionEvent (completing interaction)
   vtkCommand::InteractionEvent (moving after selecting something)
   vtkCommand::PlacePointEvent (after point is positioned; 
                                call data includes handle id (0,1))
   vtkCommand::WidgetValueChangedEvent (Invoked when the contour is closed
                                        for the first time. )
 </pre><p>To create an instance of class vtkContourWidget, simply invoke its constructor as follows </p>
<pre class="fragment">  obj = vtkContourWidget
</pre> <h1><a class="anchor" id="Methods"></a>
Methods</h1>
<p>The class vtkContourWidget has several methods that can be used. They are listed below. Note that the documentation is translated automatically from the VTK sources, and may not be completely intelligible. When in doubt, consult the VTK website. In the methods listed below, <code>obj</code> is an instance of the vtkContourWidget class. </p>
<ul>
<li>
<code>string = obj.GetClassName ()</code> - Standard methods for a VTK class.  </li>
<li>
<code>int = obj.IsA (string name)</code> - Standard methods for a VTK class.  </li>
<li>
<code>vtkContourWidget = obj.NewInstance ()</code> - Standard methods for a VTK class.  </li>
<li>
<code>vtkContourWidget = obj.SafeDownCast (vtkObject o)</code> - Standard methods for a VTK class.  </li>
<li>
<code>obj.SetEnabled (int )</code> - The method for activiating and deactiviating this widget. This method must be overridden because it is a composite widget and does more than its superclasses' vtkAbstractWidget::SetEnabled() method.  </li>
<li>
<code>obj.SetRepresentation (vtkContourRepresentation r)</code> - Create the default widget representation if one is not set.  </li>
<li>
<code>obj.CreateDefaultRepresentation ()</code> - Create the default widget representation if one is not set.  </li>
<li>
<code>obj.CloseLoop ()</code> - Convenient method to close the contour loop.  </li>
<li>
<code>obj.SetAllowNodePicking (int )</code> - Set / Get the AllowNodePicking value. This ivar indicates whether the nodes and points between nodes can be picked/un-picked by Ctrl+Click on the node.  </li>
<li>
<code>int = obj.GetAllowNodePicking ()</code> - Set / Get the AllowNodePicking value. This ivar indicates whether the nodes and points between nodes can be picked/un-picked by Ctrl+Click on the node.  </li>
<li>
<code>obj.AllowNodePickingOn ()</code> - Set / Get the AllowNodePicking value. This ivar indicates whether the nodes and points between nodes can be picked/un-picked by Ctrl+Click on the node.  </li>
<li>
<code>obj.AllowNodePickingOff ()</code> - Set / Get the AllowNodePicking value. This ivar indicates whether the nodes and points between nodes can be picked/un-picked by Ctrl+Click on the node.  </li>
<li>
<code>obj.SetFollowCursor (int )</code> - Follow the cursor ? If this is ON, during definition, the last node of the contour will automatically follow the cursor, without waiting for the the point to be dropped. This may be useful for some interpolators, such as the live-wire interpolator to see the shape of the contour that will be placed as you move the mouse cursor.  </li>
<li>
<code>int = obj.GetFollowCursor ()</code> - Follow the cursor ? If this is ON, during definition, the last node of the contour will automatically follow the cursor, without waiting for the the point to be dropped. This may be useful for some interpolators, such as the live-wire interpolator to see the shape of the contour that will be placed as you move the mouse cursor.  </li>
<li>
<code>obj.FollowCursorOn ()</code> - Follow the cursor ? If this is ON, during definition, the last node of the contour will automatically follow the cursor, without waiting for the the point to be dropped. This may be useful for some interpolators, such as the live-wire interpolator to see the shape of the contour that will be placed as you move the mouse cursor.  </li>
<li>
<code>obj.FollowCursorOff ()</code> - Follow the cursor ? If this is ON, during definition, the last node of the contour will automatically follow the cursor, without waiting for the the point to be dropped. This may be useful for some interpolators, such as the live-wire interpolator to see the shape of the contour that will be placed as you move the mouse cursor.  </li>
<li>
<code>obj.SetContinuousDraw (int )</code> - Define a contour by continuously drawing with the mouse cursor. Press and hold the left mouse button down to continuously draw. Releasing the left mouse button switches into a snap drawing mode. Terminate the contour by pressing the right mouse button. If you do not want to see the nodes as they are added to the contour, set the opacity to 0 of the representation's property. If you do not want to see the last active node as it is being added, set the opacity to 0 of the representation's active property.  </li>
<li>
<code>int = obj.GetContinuousDraw ()</code> - Define a contour by continuously drawing with the mouse cursor. Press and hold the left mouse button down to continuously draw. Releasing the left mouse button switches into a snap drawing mode. Terminate the contour by pressing the right mouse button. If you do not want to see the nodes as they are added to the contour, set the opacity to 0 of the representation's property. If you do not want to see the last active node as it is being added, set the opacity to 0 of the representation's active property.  </li>
<li>
<code>obj.ContinuousDrawOn ()</code> - Define a contour by continuously drawing with the mouse cursor. Press and hold the left mouse button down to continuously draw. Releasing the left mouse button switches into a snap drawing mode. Terminate the contour by pressing the right mouse button. If you do not want to see the nodes as they are added to the contour, set the opacity to 0 of the representation's property. If you do not want to see the last active node as it is being added, set the opacity to 0 of the representation's active property.  </li>
<li>
<code>obj.ContinuousDrawOff ()</code> - Define a contour by continuously drawing with the mouse cursor. Press and hold the left mouse button down to continuously draw. Releasing the left mouse button switches into a snap drawing mode. Terminate the contour by pressing the right mouse button. If you do not want to see the nodes as they are added to the contour, set the opacity to 0 of the representation's property. If you do not want to see the last active node as it is being added, set the opacity to 0 of the representation's active property.  </li>
<li>
<code>obj.Initialize (vtkPolyData poly, int state)</code> - Initialize the contour widget from a user supplied set of points. The state of the widget decides if you are still defining the widget, or if you've finished defining (added the last point) are manipulating it. Note that if the polydata supplied is closed, the state will be set to manipulate. State: Define = 0, Manipulate = 1.  </li>
<li>
<code>obj.Initialize ()</code>  </li>
</ul>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="index.html">FreeMat Documentation</a></li><li class="navelem"><a class="el" href="sec_vtkwidgets.html">Visualization Toolkit Widget Classes</a></li>
    <li class="footer">Generated on Thu Jul 25 2013 17:18:36 for FreeMat by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.1.1 </li>
  </ul>
</div>
</body>
</html>