source: trunk/Documentation/perldoc_idl/SelectMap__define.html @ 61

Last change on this file since 61 was 61, checked in by pinsard, 18 years ago

upgrade of Documentation/perldoc_idl according to cerbere.lodyc.jussieu.fr: /usr/home/smasson/SAXO_RD/

  • Property svn:executable set to *
File size: 43.4 KB
Line 
1<html>
2<head>
3<title>GRAHI Documentation Project (GDP): SelectMap__define.pro</title>
4<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5<meta name="author" content="Antonio Santiago" />
6<meta name="generator" content="PerlScript IDL documentation generator" />
7<link rel="stylesheet" type="text/css" href="style.css">
8<script language="javascript" type="text/javascript">
9function changeVisibility(elemId){
10var elem = document.getElementById(elemId).style;
11if(elem.display=='block') elem.display='none';
12else elem.display='block';
13}
14</script>
15</head>
16<body>
17<div class="head">GRAHI Documentation Project (GDP)</div><div class="descrip">Filename: <b>SelectMap__define.pro</b></div>
18</code></div></div><div class="comment"><div class="tag_name"><b>CLASSNAME:</b>&nbsp;SelectMap</br></div><div class="tag_author"><b>AUTHOR:</b>&nbsp;</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Antonio&nbsp;Santiago&nbsp;Perez&nbsp;<a href="mailto:santiago@grahi.upc.edu">&lt;santiago@grahi.upc.edu&gt;</a>
19</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(http://asantiago.gentelibre.org)
20</br></div><div class="tag_description"><b>DESCRIPTION:</b>&nbsp;</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Show&nbsp;a&nbsp;background&nbsp;image&nbsp;and&nbsp;make&nbsp;line&nbsp;selection.&nbsp;The
21</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;coordenates&nbsp;of&nbsp;initial/final&nbsp;points&nbsp;of&nbsp;the&nbsp;line&nbsp;seleccion&nbsp;are
22</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returned&nbsp;normalized&nbsp;respect&nbsp;widget&nbsp;and&nbsp;image&nbsp;size.
23</br></div><div class="tag_methods"><b>METHODS:</b></br></div><div class="tag_history"><b>HISTORY:</b></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mon&nbsp;Nov&nbsp;15&nbsp;17:44:54&nbsp;2004,&nbsp;Antonio&nbsp;Santiago
24</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:santiago@grahi.upc.edu">&lt;santiago@grahi.upc.edu&gt;</a>
25</br></div></div><div class="code"><a href="#" onClick="changeVisibility('code_0');">+Code:</a></br><div class="code_text" id="code_0"><code><b>PRO</b>&nbsp;SelectMap__define
26</br>&nbsp;&nbsp;&nbsp;&nbsp;
27</br>&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;=&nbsp;{&nbsp;SelectMap,&nbsp;$
28</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INHERITS&nbsp;EventAction,&nbsp;$
29</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent_id:&nbsp;0L,&nbsp;$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i><b>;Parent&nbsp;widget</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base_id:&nbsp;0L,&nbsp;$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i><b>;WIDGET_BASE&nbsp;of&nbsp;the&nbsp;object.</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;widget_id:&nbsp;0L,&nbsp;$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i><b>;WIDGET_DRAW&nbsp;inside&nbsp;widget_base.</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
30</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oWindow:&nbsp;OBJ_NEW(),&nbsp;$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i><b>;The&nbsp;window</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oView:&nbsp;OBJ_NEW(),&nbsp;$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i><b>;The&nbsp;view</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oModel:&nbsp;OBJ_NEW(),&nbsp;$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i><b>;The&nbsp;model</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
31</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oImage:&nbsp;OBJ_NEW(),&nbsp;$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i><b>;Background&nbsp;image</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oPalette:&nbsp;OBJ_NEW(),&nbsp;$&nbsp;&nbsp;&nbsp;&nbsp;<i><b>;Palette&nbsp;for&nbsp;the&nbsp;image</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oSelectLine:&nbsp;OBJ_NEW(),&nbsp;$&nbsp;<i><b>;Selection&nbsp;line</b></i></br>
32</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size:&nbsp;[0.,&nbsp;0.],&nbsp;$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i><b>;Widget&nbsp;draw&nbsp;size</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map_size:&nbsp;[0.,&nbsp;0.],&nbsp;$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i><b>;Image&nbsp;size</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
33</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;Line&nbsp;selection
34</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line_sel:&nbsp;[[0.,0.],&nbsp;[0.,0.]],&nbsp;$&nbsp;<i><b>;Initial/final&nbsp;poinst&nbsp;of&nbsp;the</b></i></br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;selected&nbsp;line&nbsp;with&nbsp;coordenates&nbsp;respect
35</b></i></br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;widget_draw&nbsp;size.
36</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line_map_sel:&nbsp;[[0.,0.],&nbsp;[0.,0.]],&nbsp;$&nbsp;<i><b>;Initial/final&nbsp;points&nbsp;of&nbsp;the</b></i></br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;selected&nbsp;line&nbsp;with&nbsp;coordenates&nbsp;respect
37</b></i></br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;image&nbsp;size.
38</b></i></br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;Square&nbsp;selection
39</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;square_sel:&nbsp;[[0.,0.],&nbsp;[0.,0.],&nbsp;$&nbsp;<i><b>;Initial/final&nbsp;poinst&nbsp;of&nbsp;the</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[0.,0.],&nbsp;[0.,0.]],&nbsp;$&nbsp;<i><b>;selected&nbsp;square&nbsp;with</b></i></br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;coordenates&nbsp;respect
40</b></i></br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;widget_draw&nbsp;size.
41</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;square_map_sel:&nbsp;[[0.,0.],&nbsp;[0.,0.],&nbsp;$&nbsp;<i><b>;Initial/final&nbsp;points&nbsp;of&nbsp;the</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[0.,0.],&nbsp;[0.,0.]],&nbsp;$&nbsp;<i><b>;selected&nbsp;square&nbsp;with</b></i></br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;coordenates&nbsp;respect
42</b></i></br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;image&nbsp;size.
43</b></i></br>
44</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selectionType:&nbsp;'',&nbsp;$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i><b>;Specifies&nbsp;the&nbsp;selection&nbsp;type:&nbsp;LINE/SQUARE</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bSelecting:&nbsp;0B,&nbsp;$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i><b>;Are&nbsp;we&nbsp;making&nbsp;a&nbsp;selection?</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bHideSelection:&nbsp;0B,&nbsp;$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i><b>;Is&nbsp;visible&nbsp;the&nbsp;selection&nbsp;line?</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bDynamicSelection:&nbsp;0B&nbsp;$&nbsp;&nbsp;&nbsp;<i><b>;Emit&nbsp;SELECTION&nbsp;signals&nbsp;when&nbsp;we&nbsp;are</b></i></br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;making&nbsp;the&nbsp;selection?
45</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
46</br><b>END</b>
47</br>
48</br>
49</br></code></div></div><div class="comment"><div class="tag_name"><b>NAME:</b>&nbsp;SelectMap::Init</br></div><div class="tag_description"><b>DESCRIPTION:</b></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates&nbsp;an&nbsp;instance&nbsp;of&nbsp;'SelectMap'&nbsp;class.
50</br></div><div class="tag_parameters"><b>PARAMETERS:</b></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent&nbsp;-&nbsp;Parents&nbsp;widget&nbsp;ID.
51</br></div><div class="tag_parameters"><b>EXTRA PARAMETERS:</b></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extra&nbsp;-&nbsp;Extra&nbsp;KEYWORD&nbsp;with&nbsp;options&nbsp;to&nbsp;be&nbsp;passed&nbsp;to&nbsp;the
52</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;widget_draw.
53</br></div></div><div class="code"><a href="#" onClick="changeVisibility('code_1');">+Code:</a></br><div class="code_text" id="code_1"><code><b>FUNCTION</b>&nbsp;SelectMap::Init,&nbsp;parent,&nbsp;<b>_EXTRA</b>=extra
54</br>
55</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;Initilize&nbsp;superclass
56</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;=&nbsp;self->EventAction::Init()
57</br>
58</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>IF</b>&nbsp;<b>NOT</b>&nbsp;<b>KEYWORD_SET</b>(parent)&nbsp;<b>THEN</b>&nbsp;<b>RETURN</b>,&nbsp;0
59</br>
60</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;Create&nbsp;widget&nbsp;and&nbsp;object&nbsp;hieriarchy.
61</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;wBase&nbsp;=&nbsp;<b>WIDGET_BASE</b>(parent)
62</br>&nbsp;&nbsp;&nbsp;&nbsp;wDraw&nbsp;=&nbsp;<b>WIDGET_DRAW</b>(wBase,&nbsp;GRAPHICS_LEVEL=2,&nbsp;/EXPOSE_EVENTS,&nbsp;$
63</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/BUTTON_EVENTS,&nbsp;/MOTION_EVENTS,&nbsp;<b>_EXTRA</b>=extra,&nbsp;$
64</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UVALUE={class_name:&nbsp;'SelectMap',&nbsp;object:&nbsp;self,&nbsp;$
65</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;handler:&nbsp;'EventHandler'})
66</br>&nbsp;&nbsp;&nbsp;&nbsp;
67</br>&nbsp;&nbsp;&nbsp;&nbsp;self.parent_id&nbsp;=&nbsp;parent
68</br>&nbsp;&nbsp;&nbsp;&nbsp;self.base_id&nbsp;=&nbsp;wBase
69</br>&nbsp;&nbsp;&nbsp;&nbsp;self.widget_id&nbsp;=&nbsp;wDraw
70</br>
71</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;Register&nbsp;the&nbsp;'event'&nbsp;of&nbsp;the&nbsp;class
72</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;self->AddEvent,&nbsp;'SELECTION'
73</br>&nbsp;&nbsp;&nbsp;&nbsp;self->AddEvent,&nbsp;'MOTION'
74</br>&nbsp;&nbsp;&nbsp;&nbsp;
75</br>&nbsp;&nbsp;&nbsp;&nbsp;self->Initialize
76</br>&nbsp;&nbsp;&nbsp;&nbsp;
77</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>RETURN</b>,&nbsp;1
78</br><b>END</b>
79</br>
80</br>
81</br></code></div></div><div class="comment"><div class="tag_name"><b>NAME:</b>&nbsp;SelectMap::Initialize</br></div><div class="tag_description"><b>DESCRIPTION:</b></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initialize&nbsp;the&nbsp;state&nbsp;of&nbsp;the&nbsp;object.&nbsp;If&nbsp;it&nbsp;is&nbsp;executed&nbsp;when&nbsp;the
82</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;object&nbsp;is&nbsp;running&nbsp;the&nbsp;object's&nbsp;state&nbsp;goes&nbsp;back&nbsp;to&nbsp;the&nbsp;same&nbsp;as
83</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;creation&nbsp;state.&nbsp;All&nbsp;possible&nbsp;used&nbsp;memory&nbsp;are&nbsp;free.
84</br></div></div><div class="code"><a href="#" onClick="changeVisibility('code_2');">+Code:</a></br><div class="code_text" id="code_2"><code><b>PRO</b>&nbsp;SelectMap::Initialize
85</br>
86</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;Free&nbsp;memory&nbsp;usage
87</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;self->Clear
88</br>
89</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;Realize&nbsp;the&nbsp;WIDGET_BASE&nbsp;and&nbsp;get&nbsp;the&nbsp;IDLgrWindow&nbsp;object&nbsp;from,
90</b></i></br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;WIDGET_DRAW
91</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;<b>WIDGET_CONTROL</b>,&nbsp;self.base_id&nbsp;,&nbsp;/REALIZE
92</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>WIDGET_CONTROL</b>,&nbsp;self.widget_id,&nbsp;GET_VALUE=oWindow
93</br>&nbsp;&nbsp;&nbsp;&nbsp;oWindow->SetProperty,&nbsp;QUALITY=0
94</br>&nbsp;&nbsp;&nbsp;&nbsp;
95</br>&nbsp;&nbsp;&nbsp;&nbsp;oView&nbsp;=&nbsp;OBJ_NEW('IDLgrView',&nbsp;ZCLIP=[0.2,-0.2],&nbsp;$
96</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VIEWPLANE_RECT=[0,0,1,1],&nbsp;COLOR=[50,50,70])               
97</br>&nbsp;&nbsp;&nbsp;&nbsp;oModel&nbsp;=&nbsp;OBJ_NEW('IDLgrModel')   
98</br>&nbsp;&nbsp;&nbsp;&nbsp;oLight&nbsp;=&nbsp;OBJ_NEW('IDLgrLight',&nbsp;TYPE=1,&nbsp;LOCATION=[0,0,12],&nbsp;$
99</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INTENSITY=0.95)
100</br>
101</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;Initialize&nbsp;attributes
102</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;geom&nbsp;=&nbsp;<b>WIDGET_INFO</b>(self.widget_id,&nbsp;/GEOMETRY)
103</br>&nbsp;&nbsp;&nbsp;&nbsp;self.size&nbsp;=&nbsp;[geom.xsize,&nbsp;geom.ysize]
104</br>&nbsp;&nbsp;&nbsp;&nbsp;self.map_size&nbsp;=&nbsp;[0.,&nbsp;0.]
105</br>&nbsp;&nbsp;&nbsp;&nbsp;self.line_sel&nbsp;=&nbsp;[[0.,0.],&nbsp;[0.,0.]]
106</br>&nbsp;&nbsp;&nbsp;&nbsp;self.line_map_sel&nbsp;=&nbsp;[[0.,0.],&nbsp;[0.,0.]]
107</br>&nbsp;&nbsp;&nbsp;&nbsp;self.selectionType&nbsp;=&nbsp;'SQUARE'
108</br>&nbsp;&nbsp;&nbsp;&nbsp;self.bHideSelection&nbsp;=&nbsp;<i><b>;Hide&nbsp;selection</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;self.bDynamicSelection&nbsp;=&nbsp;0&nbsp;&nbsp;<i><b>;No&nbsp;dynamic&nbsp;selection</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;self.bSelecting&nbsp;=&nbsp;0
109</br>
110</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;Save&nbsp;references&nbsp;to&nbsp;the&nbsp;objects
111</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;oView->Add,&nbsp;oModel   
112</br>&nbsp;&nbsp;&nbsp;&nbsp;oModel->Add,&nbsp;oLight
113</br>
114</br>&nbsp;&nbsp;&nbsp;&nbsp;self.oWindow&nbsp;=&nbsp;oWindow
115</br>&nbsp;&nbsp;&nbsp;&nbsp;self.oView&nbsp;=&nbsp;oView
116</br>&nbsp;&nbsp;&nbsp;&nbsp;self.oModel&nbsp;=&nbsp;oModel
117</br>&nbsp;&nbsp;&nbsp;&nbsp;
118</br><b>END</b> 
119</br>
120</br>
121</br></code></div></div><div class="comment"><div class="tag_name"><b>NAME:</b>&nbsp;SelectMap::Cleanup</br></div><div class="tag_description"><b>DESCRIPTION:</b></br>&nbsp;&nbsp;&nbsp;&nbsp;Free&nbsp;memory&nbsp;used&nbsp;by&nbsp;the&nbsp;object.
122</br></div></div><div class="code"><a href="#" onClick="changeVisibility('code_3');">+Code:</a></br><div class="code_text" id="code_3"><code><b>PRO</b>&nbsp;SelectMap::Cleanup
123</br>
124</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>OBJ_DESTROY</b>,&nbsp;[self.oWindow]
125</br>&nbsp;&nbsp;&nbsp;&nbsp;
126</br>&nbsp;&nbsp;&nbsp;&nbsp;self->Clear
127</br>
128</br>&nbsp;&nbsp;&nbsp;&nbsp;self->EventAction::Cleanup
129</br><b>END</b>
130</br>
131</br>
132</br></code></div></div><div class="comment"><div class="tag_name"><b>NAME:</b>&nbsp;SelectMap::Clear</br></div><div class="tag_description"><b>DESCRIPTION:</b></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Free&nbsp;memory&nbsp;used&nbsp;by&nbsp;the&nbsp;object.
133</br></div></div><div class="code"><a href="#" onClick="changeVisibility('code_4');">+Code:</a></br><div class="code_text" id="code_4"><code><b>PRO</b>&nbsp;SelectMap::Clear
134</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;When&nbsp;destroy&nbsp;de&nbsp;IDLgrView&nbsp;the&nbsp;IDLgrModel&nbsp;are&nbsp;destroyed&nbsp;with&nbsp;all
135</b></i></br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;its&nbsp;contents,&nbsp;included&nbsp;the&nbsp;image&nbsp;and&nbsp;seleccion&nbsp;line.
136</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;<b>OBJ_DESTROY</b>,&nbsp;[self.oView,&nbsp;self.oPalette,&nbsp;self.oSelectLine]
137</br><b>END</b> 
138</br>
139</br>
140</br></code></div></div><div class="comment"><div class="tag_name"><b>NAME:</b>&nbsp;SelectMap::SetPalette</br></div><div class="tag_description"><b>DESCRIPTION:</b></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets&nbsp;a&nbsp;color&nbsp;palette&nbsp;used&nbsp;to&nbsp;show&nbsp;bachground&nbsp;image.&nbsp;Only&nbsp;takes
141</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;efect&nbsp;if&nbsp;the&nbsp;background&nbsp;image&nbsp;is&nbsp;a&nbsp;X,Y&nbsp;array.
142</br></div><div class="tag_parameters"><b>PARAMETERS:</b></br>&nbsp;&nbsp;&nbsp;&nbsp;colors&nbsp;-&nbsp;256x3&nbsp;array&nbsp;values&nbsp;(RGB).
143</br></div></div><div class="code"><a href="#" onClick="changeVisibility('code_5');">+Code:</a></br><div class="code_text" id="code_5"><code><b>PRO</b>&nbsp;SelectMap::SetPalette,&nbsp;colors
144</br>&nbsp;&nbsp;&nbsp;&nbsp;
145</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;Destroy&nbsp;the&nbsp;last&nbsp;palette&nbsp;(if&nbsp;exists)
146</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;<b>OBJ_DESTROY</b>,&nbsp;self.oPalette
147</br>&nbsp;&nbsp;&nbsp;&nbsp;
148</br>&nbsp;&nbsp;&nbsp;&nbsp;oPalette&nbsp;=&nbsp;OBJ_NEW('IDLgrPalette',&nbsp;colors[*,0],&nbsp;colors[*,1],&nbsp;colors[*,2])
149</br>&nbsp;&nbsp;&nbsp;&nbsp;
150</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;Save&nbsp;reference&nbsp;to&nbsp;the&nbsp;palette.
151</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;self.oPalette&nbsp;=&nbsp;oPalette
152</br><b>END</b>
153</br>
154</br>
155</br></code></div></div><div class="comment"><div class="tag_name"><b>NAME:</b>&nbsp;SelectMap::SetMap</br></div><div class="tag_description"><b>DESCRIPTION:</b></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets&nbsp;a&nbsp;background&nbsp;image.&nbsp;The&nbsp;image&nbsp;can&nbsp;be&nbsp;a&nbsp;(x,y)&nbsp;array&nbsp;that
156</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;will&nbsp;be&nbsp;colored&nbsp;with&nbsp;the&nbsp;specified&nbsp;palette&nbsp;or&nbsp;may&nbsp;be&nbsp;a
157</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(3,x,y),&nbsp;(x,3,y)&nbsp;or&nbsp;(x,y,3)&nbsp;array&nbsp;(like&nbsp;an&nbsp;'jpeg'&nbsp;image).
158</br></div><div class="tag_parameters"><b>PARAMETERS:</b></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data_map&nbsp;-&nbsp;Array&nbsp;2D&nbsp;or&nbsp;3D&nbsp;with&nbsp;the&nbsp;image&nbsp;to&nbsp;show.
159</br></div></div><div class="code"><a href="#" onClick="changeVisibility('code_6');">+Code:</a></br><div class="code_text" id="code_6"><code><b>PRO</b>&nbsp;SelectMap::SetMap,&nbsp;data_map
160</br>&nbsp;&nbsp;&nbsp;&nbsp;
161</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;Destroy&nbsp;previeus&nbsp;objects.
162</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;<b>OBJ_DESTROY</b>,&nbsp;[self.oImage,&nbsp;self.oSelectLine]
163</br>&nbsp;&nbsp;&nbsp;&nbsp;
164</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;Get&nbsp;dimension&nbsp;of&nbsp;the&nbsp;image&nbsp;and&nbsp;calcula&nbsp;the&nbsp;normalization&nbsp;factors
165</b></i></br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;depending&nbsp;on&nbsp;the&nbsp;type&nbsp;of&nbsp;the&nbsp;image.
166</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;sizes&nbsp;=&nbsp;<b>SIZE</b>(data_map,&nbsp;/DIMENSIONS)
167</br>
168</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>IF</b>&nbsp;<b>N_ELEMENTS</b>(sizes)&nbsp;<b>EQ</b>&nbsp;3&nbsp;<b>THEN</b>&nbsp;<b>BEGIN</b>
169</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;Image&nbsp;3,X,Y
170</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IF</b>&nbsp;sizes[0]&nbsp;<b>LE</b>&nbsp;4&nbsp;<b>THEN</b>&nbsp;<b>BEGIN</b>
171</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xsize&nbsp;=&nbsp;sizes[1]
172</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ysize&nbsp;=&nbsp;sizes[2]
173</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xconv&nbsp;=&nbsp;NORMALIZE([0,&nbsp;xsize-1],&nbsp;Position=[0,1])
174</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yconv&nbsp;=&nbsp;NORMALIZE([0,&nbsp;ysize-1],&nbsp;Position=[0,1])
175</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDIF</b>
176</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;Image&nbsp;X,3,Y
177</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IF</b>&nbsp;sizes[1]&nbsp;<b>LE</b>&nbsp;4&nbsp;<b>THEN</b>&nbsp;<b>BEGIN</b>
178</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xsize&nbsp;=&nbsp;sizes[0]
179</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ysize&nbsp;=&nbsp;sizes[2]
180</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xconv&nbsp;=&nbsp;NORMALIZE([0,&nbsp;xsize-1],&nbsp;Position=[0,1])
181</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yconv&nbsp;=&nbsp;NORMALIZE([0,&nbsp;ysize-1],&nbsp;Position=[0,1])
182</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDIF</b>
183</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;Image&nbsp;X,Y,3&nbsp;
184</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IF</b>&nbsp;sizes[2]&nbsp;<b>LE</b>&nbsp;4&nbsp;<b>THEN</b>&nbsp;<b>BEGIN</b>
185</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xsize&nbsp;=&nbsp;sizes[0]
186</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ysize&nbsp;=&nbsp;sizes[1]
187</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xconv&nbsp;=&nbsp;NORMALIZE([0,&nbsp;xsize-1],&nbsp;Position=[0,1])
188</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yconv&nbsp;=&nbsp;NORMALIZE([0,&nbsp;ysize-1],&nbsp;Position=[0,1])
189</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDIF</b>
190</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDIF</b>&nbsp;<b>ELSE</b>&nbsp;<b>BEGIN</b>
191</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;Image&nbsp;X,Y
192</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xsize&nbsp;=&nbsp;sizes[0]
193</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ysize&nbsp;=&nbsp;sizes[1]
194</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xconv&nbsp;=&nbsp;NORMALIZE([0,&nbsp;xsize-1],&nbsp;Position=[0,1])
195</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yconv&nbsp;=&nbsp;NORMALIZE([0,&nbsp;ysize-1],&nbsp;Position=[0,1])
196</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDELSE</b>
197</br>
198</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;Save&nbsp;the&nbsp;dimensions&nbsp;of&nbsp;the&nbsp;image.
199</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;self.map_size&nbsp;=&nbsp;[xsize,&nbsp;ysize]
200</br>
201</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;Create&nbsp;the&nbsp;image&nbsp;as&nbsp;a&nbsp;texture&nbsp;of&nbsp;polygon.
202</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;oImage&nbsp;=&nbsp;OBJ_NEW('IDLgrImage',&nbsp;data_map,&nbsp;PALETTE=self.oPalette,&nbsp;$
203</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XCOORD_CONV=xconv,&nbsp;YCOORD_CONV=yconv)
204</br>
205</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;Create&nbsp;the&nbsp;selection&nbsp;line&nbsp;object
206</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;<b>IF</b>&nbsp;self.selectionType&nbsp;<b>EQ</b>&nbsp;'LINE'&nbsp;<b>THEN</b>&nbsp;<b>BEGIN</b>
207</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connect_line&nbsp;=&nbsp;[2,&nbsp;0,&nbsp;1]
208</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oSelectLine&nbsp;=&nbsp;OBJ_NEW('IDLgrPolyline',&nbsp;self.line_map_sel,&nbsp;$
209</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;POLYLINES=connect_line,&nbsp;$
210</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COLOR=[150,150,150],&nbsp;THICK=2,&nbsp;$
211</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HIDE=self.bHideSelection,&nbsp;$
212</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XCOORD_CONV=xconv,&nbsp;YCOORD_CONV=yconv)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
213</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDIF</b>&nbsp;<b>ELSE</b>&nbsp;<b>BEGIN</b>
214</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connect_line&nbsp;=&nbsp;[4,&nbsp;0,&nbsp;1,&nbsp;2,&nbsp;3]
215</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oSelectLine&nbsp;=&nbsp;OBJ_NEW('IDLgrPolyline',&nbsp;self.square_map_sel,&nbsp;$
216</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;POLYLINES=connect_line,&nbsp;$
217</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COLOR=[150,150,150],&nbsp;THICK=2,&nbsp;$
218</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HIDE=self.bHideSelection,&nbsp;$
219</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XCOORD_CONV=xconv,&nbsp;YCOORD_CONV=yconv)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
220</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDELSE</b>&nbsp;
221</br>
222</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;Save&nbsp;object&nbsp;references
223</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;self.oModel->Add,&nbsp;oImage
224</br>&nbsp;&nbsp;&nbsp;&nbsp;self.oModel->Add,&nbsp;oSelectLine
225</br>&nbsp;&nbsp;&nbsp;&nbsp;self.oImage&nbsp;=&nbsp;oImage
226</br>&nbsp;&nbsp;&nbsp;&nbsp;self.oSelectLine&nbsp;=&nbsp;oSelectLine
227</br>
228</br><b>END</b>
229</br>
230</br>
231</br></code></div></div><div class="comment"><div class="tag_name"><b>NAME:</b>&nbsp;SelectMap::Draw</br></div><div class="tag_description"><b>DESCRIPTION:</b></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Draws&nbsp;the&nbsp;object.
232</br></div></div><div class="code"><a href="#" onClick="changeVisibility('code_7');">+Code:</a></br><div class="code_text" id="code_7"><code><b>PRO</b>&nbsp;SelectMap::Draw
233</br>&nbsp;&nbsp;&nbsp;&nbsp;self.oWindow->Draw,&nbsp;self.oView
234</br><b>END</b>
235</br>
236</br>
237</br></code></div></div><div class="comment"><div class="tag_name"><b>NAME:</b>&nbsp;SelectMap::GetProperty</br></div><div class="tag_description"><b>DESCRIPTION:</b></br>&nbsp;&nbsp;&nbsp;&nbsp;Get&nbsp;the&nbsp;the&nbsp;properties&nbsp;of&nbsp;the&nbsp;object.
238</br></div><div class="tag_parameters"><b>KEYWORD PARAMETERS:</b></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id&nbsp;-&nbsp;ID&nbsp;of&nbsp;the&nbsp;WIDGET_BASE&nbsp;over&nbsp;the&nbsp;object&nbsp;are&nbsp;created.
239</br></div></div><div class="code"><a href="#" onClick="changeVisibility('code_8');">+Code:</a></br><div class="code_text" id="code_8"><code>&nbsp;<b>PRO</b>&nbsp;SelectMap::GetProperty,&nbsp;ID=id
240</br>
241</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id&nbsp;=&nbsp;self.base_id
242</br>&nbsp;<b>END</b>   
243</br>
244</br>
245</br></code></div></div><div class="comment"><div class="tag_name"><b>NAME:</b>&nbsp;SelectMap::SetProperty</br></div><div class="tag_description"><b>DESCRIPTION:</b></br>&nbsp;&nbsp;&nbsp;&nbsp;Sets&nbsp;the&nbsp;properties&nbsp;of&nbsp;the&nbsp;object.
246</br></div><div class="tag_parameters"><b>KEYWORD PARAMETERS:</b></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hide_selection&nbsp;-&nbsp;Show/hide&nbsp;the&nbsp;selection&nbsp;line.
247</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dynamic_selection&nbsp;-&nbsp;If&nbsp;true,&nbsp;SELECTION&nbsp;events&nbsp;are&nbsp;emited&nbsp;while&nbsp;a
248</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selecction&nbsp;is&nbsp;doing.
249</br></div></div><div class="code"><a href="#" onClick="changeVisibility('code_9');">+Code:</a></br><div class="code_text" id="code_9"><code><b>PRO</b>&nbsp;SelectMap::SetProperty,&nbsp;$
250</br>&nbsp;&nbsp;SELECTION_TYPE=selection_type,&nbsp;$
251</br>&nbsp;&nbsp;DYNAMIC_SELECTION=dynamic_selection,&nbsp;$
252</br>&nbsp;&nbsp;HIDE_SELECTION=hide_selection
253</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
254</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>IF</b>&nbsp;selection_type&nbsp;<b>EQ</b>&nbsp;'LINE'&nbsp;<b>OR</b>&nbsp;selection_type&nbsp;<b>EQ</b>&nbsp;'SQUARE'&nbsp;<b>THEN</b>&nbsp;<b>BEGIN</b>
255</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.selectionType&nbsp;=&nbsp;selection_type
256</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDIF</b>
257</br>
258</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>IF</b>&nbsp;<b>N_ELEMENTS</b>(dynamic_selection)&nbsp;<b>THEN</b>&nbsp;<b>BEGIN</b>
259</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.bDynamicSelection&nbsp;=&nbsp;dynamic_selection
260</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDIF</b>
261</br>
262</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>IF</b>&nbsp;<b>N_ELEMENTS</b>(hide_selection)&nbsp;<b>THEN</b>&nbsp;<b>BEGIN</b>
263</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.bHideSelection&nbsp;=&nbsp;hide_selection
264</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.oSelectLine->SetProperty,&nbsp;HIDE=hide_selection
265</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDIF</b>
266</br>&nbsp;&nbsp;&nbsp;&nbsp;
267</br>&nbsp;<b>END</b>   
268</br>
269</br>
270</br></code></div></div><div class="comment"><div class="tag_name"><b>NAME:</b>&nbsp;SelectMap_EventHandler</br></div><div class="tag_description"><b>DESCRIPTION:</b></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object's&nbsp;event&nbsp;handler.
271</br></div></div><div class="code"><a href="#" onClick="changeVisibility('code_10');">+Code:</a></br><div class="code_text" id="code_10"><code><b>PRO</b>&nbsp;SelectMap::EventHandler,&nbsp;event
272</br>
273</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;Expose&nbsp;Event
274</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;<b>IF</b>&nbsp;event.type&nbsp;<b>EQ</b>&nbsp;4&nbsp;<b>THEN</b>&nbsp;<b>BEGIN</b>
275</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self->Draw
276</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDIF</b>
277</br>&nbsp;&nbsp;&nbsp;&nbsp;
278</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;Mouse&nbsp;down&nbsp;button
279</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;<b>IF</b>&nbsp;(event.type&nbsp;<b>EQ</b>&nbsp;0)&nbsp;<b>AND</b>&nbsp;(event.press&nbsp;<b>EQ</b>&nbsp;1)&nbsp;<b>THEN</b>&nbsp;<b>BEGIN</b>
280</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IF</b>&nbsp;<b>NOT</b>&nbsp;self.bHideSelection&nbsp;<b>THEN</b>&nbsp;<b>BEGIN</b>
281</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;Set&nbsp;that&nbsp;a&nbsp;selection&nbsp;is&nbsp;doing
282</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.bSelecting&nbsp;=&nbsp;1
283</br>
284</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;Update&nbsp;the&nbsp;line&nbsp;coordenates
285</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self->UpdateLineSelection,&nbsp;event,&nbsp;/ALL
286</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self->UpdateSquareSelection,&nbsp;event,&nbsp;/ALL
287</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IF</b>&nbsp;self.selectionType&nbsp;<b>EQ</b>&nbsp;'LINE'&nbsp;<b>THEN</b>&nbsp;<b>BEGIN</b>
288</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connect_line&nbsp;=&nbsp;[2,&nbsp;0,&nbsp;1]
289</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.oSelectLine->SetProperty,&nbsp;DATA=self.line_map_sel,&nbsp;$
290</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COLOR=[255,255,0],&nbsp;POLYLINE=connect_line
291</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDIF</b>&nbsp;<b>ELSE</b>&nbsp;<b>BEGIN</b>
292</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connect_line&nbsp;=&nbsp;[4,&nbsp;0,&nbsp;1,&nbsp;2,&nbsp;3]
293</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.oSelectLine->SetProperty,&nbsp;DATA=self.square_map_sel,&nbsp;$
294</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COLOR=[255,255,0],&nbsp;POLYLINE=connect_line&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
295</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDELSE</b>&nbsp;
296</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDIF</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
297</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
298</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDIF</b>
299</br>&nbsp;&nbsp;&nbsp;&nbsp;
300</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;Mouse&nbsp;up&nbsp;button
301</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;<b>IF</b>&nbsp;(event.type&nbsp;<b>EQ</b>&nbsp;1)&nbsp;&nbsp;<b>AND</b>&nbsp;(event.release&nbsp;<b>EQ</b>&nbsp;1)<b>THEN</b>&nbsp;<b>BEGIN</b>
302</br>
303</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;Set&nbsp;that&nbsp;the&nbsp;selection&nbsp;are&nbsp;finished
304</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.bSelecting&nbsp;=&nbsp;0
305</br>
306</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;Update&nbsp;the&nbsp;line&nbsp;corrdenates.
307</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self->UpdateLineSelection,&nbsp;event
308</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self->UpdateSquareSelection,&nbsp;event
309</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IF</b>&nbsp;self.selectionType&nbsp;<b>EQ</b>&nbsp;'LINE'&nbsp;<b>THEN</b>&nbsp;<b>BEGIN</b>
310</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.oSelectLine->SetProperty,&nbsp;DATA=self.line_map_sel,&nbsp;$
311</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COLOR=[255,255,255]
312</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDIF</b>&nbsp;<b>ELSE</b>&nbsp;<b>BEGIN</b>
313</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.oSelectLine->SetProperty,&nbsp;DATA=self.square_map_sel,&nbsp;$
314</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COLOR=[255,255,255]&nbsp;&nbsp;
315</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDELSE</b>&nbsp;
316</br>
317</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;Generate&nbsp;a&nbsp;'SELECTION'&nbsp;event.
318</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self->Draw
319</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self->EmitEvent,&nbsp;'SELECTION',&nbsp;$
320</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EVENT_STRUCT={line_sel:&nbsp;self.line_sel,&nbsp;$
321</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line_map_sel:&nbsp;self.line_map_sel}
322</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDIF</b>
323</br>&nbsp;&nbsp;&nbsp;&nbsp;
324</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;Mouse&nbsp;move
325</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;<b>IF</b>&nbsp;(event.type&nbsp;<b>EQ</b>&nbsp;2)&nbsp;&nbsp;<b>THEN</b>&nbsp;<b>BEGIN</b>
326</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;If&nbsp;a&nbsp;selection&nbsp;is&nbsp;doing&nbsp;actualize&nbsp;the&nbsp;coordenates.
327</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IF</b>&nbsp;self.bSelecting&nbsp;<b>THEN</b>&nbsp;<b>BEGIN</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
328</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self->UpdateLineSelection,&nbsp;event&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
329</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self->UpdateSquareSelection,&nbsp;event
330</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>IF</b>&nbsp;self.selectionType&nbsp;<b>EQ</b>&nbsp;'LINE'&nbsp;<b>THEN</b>&nbsp;<b>BEGIN</b>
331</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.oSelectLine->SetProperty,&nbsp;DATA=self.line_map_sel
332</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDIF</b>&nbsp;<b>ELSE</b>&nbsp;<b>BEGIN</b>
333</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.oSelectLine->SetProperty,&nbsp;DATA=self.square_map_sel&nbsp;&nbsp;&nbsp;&nbsp;
334</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDELSE</b>&nbsp;
335</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
336</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self->Draw
337</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDIF</b>
338</br>
339</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;Generate&nbsp;a&nbsp;'MOTION'&nbsp;event.
340</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;values&nbsp;=&nbsp;[event.x,&nbsp;event.y]
341</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;convert&nbsp;=&nbsp;self->ConvertValuesW2M(values)
342</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self->EmitEvent,&nbsp;'MOTION',&nbsp;$
343</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EVENT_STRUCT={&nbsp;point_sel:&nbsp;values,&nbsp;$
344</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;point_map_sel:&nbsp;convert&nbsp;}
345</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDIF</b>
346</br>&nbsp;&nbsp;&nbsp;&nbsp;
347</br><b>END</b>
348</br>
349</br>
350</br></code></div></div><div class="comment"><div class="tag_name"><b>NAME:</b>&nbsp;SelectMap::UpdateLineSelection</br></div><div class="tag_description"><b>DESCRIPTION:</b></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get&nbsp;the&nbsp;actual&nbsp;coordenate&nbsp;points&nbsp;and&nbsp;convert&nbsp;respect&nbsp;the&nbsp;image
351</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size.
352</br></div><div class="tag_parameters"><b>KEYWORD PARAMETERS:</b></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all&nbsp;-&nbsp;If&nbsp;set&nbsp;specify&nbsp;that&nbsp;the&nbsp;two&nbsp;points&nbsp;(origin,&nbsp;final)&nbsp;of
353</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;selection&nbsp;line&nbsp;must&nbsp;to&nbsp;be&nbsp;initialize.&nbsp;If&nbsp;not&nbsp;set,
354</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;only&nbsp;the&nbsp;final&nbsp;point&nbsp;is&nbsp;converted.
355</br></div><b>NOTE:</b>&nbsp;The&nbsp;0&nbsp;and&nbsp;2&nbsp;points&nbsp;of&nbsp;the&nbsp;square&nbsp;are&nbsp;the&nbsp;initial&nbsp;and&nbsp;final</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;points&nbsp;respectively.
356</br></div><div class="code"><a href="#" onClick="changeVisibility('code_11');">+Code:</a></br><div class="code_text" id="code_11"><code><b>PRO</b>&nbsp;SelectMap::UpdateLineSelection,&nbsp;event,&nbsp;ALL=all
357</br>
358</br>&nbsp;&nbsp;&nbsp;&nbsp;xpoint&nbsp;=&nbsp;(event.x&nbsp;>&nbsp;0)&nbsp;<&nbsp;(self.size[0]-1)
359</br>&nbsp;&nbsp;&nbsp;&nbsp;ypoint&nbsp;=&nbsp;(event.y&nbsp;>&nbsp;0)&nbsp;<&nbsp;(self.size[1]-1)
360</br>&nbsp;&nbsp;&nbsp;&nbsp;
361</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>IF</b>&nbsp;<b>KEYWORD_SET</b>(all)&nbsp;<b>THEN</b>&nbsp;<b>BEGIN</b>
362</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.line_sel[*,0]&nbsp;=&nbsp;[xpoint,&nbsp;ypoint]&nbsp;&nbsp;&nbsp;&nbsp;
363</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.line_map_sel[*,0]&nbsp;=&nbsp;self->ConvertValuesW2M(self.line_sel[*,0])
364</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDIF</b>
365</br>
366</br>&nbsp;&nbsp;&nbsp;&nbsp;self.line_sel[*,1]&nbsp;=&nbsp;[xpoint,&nbsp;ypoint]
367</br>&nbsp;&nbsp;&nbsp;&nbsp;self.line_map_sel[*,1]&nbsp;=&nbsp;self->ConvertValuesW2M(self.line_sel[*,1])
368</br><b>END</b>
369</br>
370</br>
371</br></code></div></div><div class="comment"><div class="tag_name"><b>NAME:</b>&nbsp;SelectMap::UpdateSquareSelection</br></div><div class="tag_description"><b>DESCRIPTION:</b></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get&nbsp;the&nbsp;actual&nbsp;coordenate&nbsp;points&nbsp;and&nbsp;convert&nbsp;respect&nbsp;the&nbsp;image
372</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size.
373</br></div><div class="tag_parameters"><b>KEYWORD PARAMETERS:</b></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all&nbsp;-&nbsp;If&nbsp;set&nbsp;specify&nbsp;that&nbsp;the&nbsp;two&nbsp;points&nbsp;(origin,&nbsp;final)&nbsp;of
374</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;selection&nbsp;line&nbsp;must&nbsp;to&nbsp;be&nbsp;initialize.&nbsp;If&nbsp;not&nbsp;set,
375</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;only&nbsp;the&nbsp;final&nbsp;point&nbsp;is&nbsp;converted.
376</br></div><b>NOTE:</b>&nbsp;The&nbsp;0&nbsp;and&nbsp;2&nbsp;points&nbsp;of&nbsp;the&nbsp;square&nbsp;are&nbsp;the&nbsp;initial&nbsp;and&nbsp;final</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;points&nbsp;respectively.
377</br></div><div class="code"><a href="#" onClick="changeVisibility('code_12');">+Code:</a></br><div class="code_text" id="code_12"><code><b>PRO</b>&nbsp;SelectMap::UpdateSquareSelection,&nbsp;event,&nbsp;ALL=all
378</br>
379</br>&nbsp;&nbsp;&nbsp;&nbsp;xpoint&nbsp;=&nbsp;(event.x&nbsp;>&nbsp;0)&nbsp;<&nbsp;(self.size[0]-1)
380</br>&nbsp;&nbsp;&nbsp;&nbsp;ypoint&nbsp;=&nbsp;(event.y&nbsp;>&nbsp;0)&nbsp;<&nbsp;(self.size[1]-1)
381</br>&nbsp;&nbsp;&nbsp;&nbsp;
382</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>IF</b>&nbsp;<b>KEYWORD_SET</b>(all)&nbsp;<b>THEN</b>&nbsp;<b>BEGIN</b>
383</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;Initial&nbsp;point
384</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.square_sel[*,0]&nbsp;=&nbsp;[xpoint,&nbsp;ypoint]
385</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.square_map_sel[*,0]&nbsp;=&nbsp;self->ConvertValuesW2M([xpoint,&nbsp;ypoint])
386</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>ENDIF</b>
387</br>
388</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;Final&nbsp;point
389</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;self.square_sel[*,2]&nbsp;=&nbsp;[xpoint,&nbsp;ypoint]
390</br>&nbsp;&nbsp;&nbsp;&nbsp;self.square_map_sel[*,2]&nbsp;=&nbsp;self->ConvertValuesW2M([xpoint,&nbsp;ypoint])
391</br>
392</br><i><b>&nbsp;&nbsp;&nbsp;&nbsp;;;Other&nbsp;points
393</b></i></br>&nbsp;&nbsp;&nbsp;&nbsp;xinit&nbsp;=&nbsp;self.square_sel[0,0]
394</br>&nbsp;&nbsp;&nbsp;&nbsp;yinit&nbsp;=&nbsp;self.square_sel[1,0]
395</br>&nbsp;&nbsp;&nbsp;&nbsp;width&nbsp;=&nbsp;xinit&nbsp;-&nbsp;xpoint
396</br>&nbsp;&nbsp;&nbsp;&nbsp;height&nbsp;=&nbsp;yinit&nbsp;-&nbsp;ypoint
397</br>
398</br>&nbsp;&nbsp;&nbsp;&nbsp;self.square_sel[*,1]&nbsp;=&nbsp;[(xinit&nbsp;+&nbsp;width),&nbsp;ypoint]
399</br>&nbsp;&nbsp;&nbsp;&nbsp;self.square_map_sel[*,1]&nbsp;=&nbsp;self->ConvertValuesW2M([xpoint,&nbsp;ypoint])
400</br>&nbsp;&nbsp;&nbsp;&nbsp;
401</br>&nbsp;&nbsp;&nbsp;&nbsp;self.square_sel[*,3]&nbsp;=&nbsp;[xpoint,&nbsp;(ypoint&nbsp;+&nbsp;height)]
402</br>&nbsp;&nbsp;&nbsp;&nbsp;self.square_map_sel[*,3]&nbsp;=&nbsp;self->ConvertValuesW2M([xpoint,&nbsp;ypoint])
403</br>
404</br>
405</br><b>END</b>
406</br>
407</br>
408</br></code></div></div><div class="comment"><div class="tag_name"><b>NAME:</b>&nbsp;SelectMap::ConvertValuesW2M</br></div><div class="tag_description"><b>DESCRIPTION:</b></br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert&nbsp;a&nbsp;pair&nbsp;of&nbsp;values&nbsp;from&nbsp;widget&nbsp;size&nbsp;relative&nbsp;coordenatos
409</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;the&nbsp;image&nbsp;relativa&nbsp;size&nbsp;coordenates.
410</br></div></div><div class="code"><a href="#" onClick="changeVisibility('code_13');">+Code:</a></br><div class="code_text" id="code_13"><code><b>FUNCTION</b>&nbsp;SelectMap::ConvertValuesW2M,&nbsp;values
411</br>
412</br>&nbsp;&nbsp;&nbsp;&nbsp;values[0]&nbsp;=&nbsp;(values[0]&nbsp;>&nbsp;0)&nbsp;<&nbsp;(self.size[0]-1)
413</br>&nbsp;&nbsp;&nbsp;&nbsp;values[1]&nbsp;=&nbsp;(values[1]&nbsp;>&nbsp;0)&nbsp;<&nbsp;(self.size[1]-1)
414</br>
415</br>&nbsp;&nbsp;&nbsp;&nbsp;convert&nbsp;=&nbsp;values
416</br>&nbsp;&nbsp;&nbsp;&nbsp;convert[0]&nbsp;=&nbsp;values[0]&nbsp;*&nbsp;(self.map_size[0]-1)&nbsp;/&nbsp;(self.size[0]-1)
417</br>&nbsp;&nbsp;&nbsp;&nbsp;convert[1]&nbsp;=&nbsp;values[1]&nbsp;*&nbsp;(self.map_size[1]-1)&nbsp;/&nbsp;(self.size[1]-1)
418</br>&nbsp;&nbsp;&nbsp;&nbsp;
419</br>&nbsp;&nbsp;&nbsp;&nbsp;<b>RETURN</b>,&nbsp;convert
420</br><b>END</b>
421</br>
422</br>
423</br>
424</br></code></div></div><div class="final">&middot; Created by the PerlScript documentation generator for IDL &middot; <br> &middot; <i>Thu Dec  2 16:01:50 2004</i> &middot;</div></body></html>
Note: See TracBrowser for help on using the repository browser.