File: vtkwidgets_vtkanglewidget.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 (121 lines) | stat: -rw-r--r-- 6,785 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
<!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: vtkAngleWidget</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_vtkanglewidget.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">vtkAngleWidget </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 vtkAngleWidget is used to measure the angle between two rays (defined by three points). The three points (two end points and a center) can be positioned independently, and when they are released, a special PlacePointEvent is invoked so that special operations may be take to reposition the point (snap to grid, etc.) The widget has two different modes of interaction: when initially defined (i.e., placing the three points) and then a manipulate mode (adjusting the position of the three points).</p>
<p>To use this widget, specify an instance of vtkAngleWidget and a representation (a subclass of vtkAngleRepresentation). The widget is implemented using three instances of vtkHandleWidget which are used to position the three points. The representations for these handle widgets are provided by the vtkAngleRepresentation.</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 - add a point or select a handle 
   MouseMoveEvent - position the second or third point, or move a handle
   LeftButtonReleaseEvent - release the selected handle
 </pre><p>Note that the event bindings described above can be changed using this class's vtkWidgetEventTranslator. This class translates VTK events into the vtkAngleWidget's widget events: </p>
<pre>
   vtkWidgetEvent::AddPoint &ndash; add one point; depending on the state
                               it may the first, second or third point 
                               added. Or, if near a handle, select the handle.
   vtkWidgetEvent::Move &ndash; position the second or third point, or move the
                           handle depending on the state.
   vtkWidgetEvent::EndSelect &ndash; the handle manipulation process has completed.
 </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 a handle)
   vtkCommand::PlacePointEvent (after a point is positioned; 
                                call data includes handle id (0,1,2))
 </pre><p>To create an instance of class vtkAngleWidget, simply invoke its constructor as follows </p>
<pre class="fragment">  obj = vtkAngleWidget
</pre> <h1><a class="anchor" id="Methods"></a>
Methods</h1>
<p>The class vtkAngleWidget 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 vtkAngleWidget 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>vtkAngleWidget = obj.NewInstance ()</code> - Standard methods for a VTK class.  </li>
<li>
<code>vtkAngleWidget = 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 (vtkAngleRepresentation 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>int = obj.IsAngleValid ()</code> - A flag indicates whether the angle is valid. The angle value only becomes valid after two of the three points are placed.  </li>
<li>
<code>obj.SetProcessEvents (int )</code> - Methods to change the whether the widget responds to interaction. Overridden to pass the state to component widgets.  </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>