-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathInstrumentViewer.html
182 lines (139 loc) · 8.8 KB
/
InstrumentViewer.html
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
<!DOCTYPE html>
<html lang="en" data-content_root="./">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Instrument Viewer Widget</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=03e43079" />
<link rel="stylesheet" type="text/css" href="_static/bootstrap-sphinx.css?v=fadd4351" />
<link rel="stylesheet" type="text/css" href="_static/custom.css?v=77160d70" />
<script src="_static/documentation_options.js?v=a8da1a53"></script>
<script src="_static/doctools.js?v=9bcbadda"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="ISIS SANS Reduction Back-end" href="ISISSANSReductionBackend.html" />
<link rel="prev" title="Inelastic Data Processor Class Structure" href="InelasticDataProcessorFileStructure.html" />
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-59110517-1', 'auto');
ga('send', 'pageview');
</script>
</head><body>
<div id="navbar" class="navbar navbar-default ">
<div class="container">
<div class="navbar-header">
<!-- .btn-navbar is used as the toggle for collapsed navbar content -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="http://www.mantidproject.org">
</a>
<span class="navbar-text navbar-version pull-left"><b>main</b></span>
</div>
<div class="collapse navbar-collapse nav-collapse">
<ul class="nav navbar-nav">
<li class="divider-vertical"></li>
<li><a href="index.html">Home</a></li>
<li><a href="https://download.mantidproject.org">Download</a></li>
<li><a href="https://docs.mantidproject.org">User Documentation</a></li>
<li><a href="http://www.mantidproject.org/contact">Contact Us</a></li>
</ul>
<form class="navbar-form navbar-right" action="search.html" method="get">
<div class="form-group">
<input type="text" name="q" class="form-control" placeholder="Search" />
</div>
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<p>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="nav-item nav-item-0"><a href="index.html">Documentation</a> »</li>
<li class="nav-item nav-item-this"><a href="">Instrument Viewer Widget</a></li>
</ul>
</div> </p>
</div>
<div class="container">
<div class="row">
<div class="body col-md-12 content" role="main">
<section id="instrument-viewer-widget">
<span id="instrumentviewer"></span><h1>Instrument Viewer Widget<a class="headerlink" href="#instrument-viewer-widget" title="Link to this heading">¶</a></h1>
<nav class="contents local" id="contents">
<ul class="simple">
<li><p><a class="reference internal" href="#overview" id="id1">Overview</a></p></li>
<li><p><a class="reference internal" href="#implementation" id="id2">Implementation</a></p></li>
<li><p><a class="reference internal" href="#detector-picking" id="id3">Detector Picking</a></p></li>
<li><p><a class="reference internal" href="#geometry-handlers-and-renderers" id="id4">Geometry Handlers and Renderers</a></p></li>
</ul>
</nav>
<section id="overview">
<h2><a class="toc-backref" href="#id1" role="doc-backlink">Overview</a><a class="headerlink" href="#overview" title="Link to this heading">¶</a></h2>
<p>Mantid visualisation system allows users to view the geometry of an instrument and also select and query individual detectors.
An instrument is always shown in the context of a workspace containing data recorded with this instrument.
The detectors are coloured according to the data in the corresponding spectra of the workspace.
The user can select individual detectors by clicking on them and request to see the data recorded by this detector as a table or a graph.
The instrument view also allows users to see close-ups of any component.</p>
<figure class="align-center">
<a class="reference internal image-reference" href="_images/InstrumentWidget.jpg"><img alt="_images/InstrumentWidget.jpg" src="_images/InstrumentWidget.jpg" style="width: 635px;" />
</a>
</figure>
</section>
<section id="implementation">
<h2><a class="toc-backref" href="#id2" role="doc-backlink">Implementation</a><a class="headerlink" href="#implementation" title="Link to this heading">¶</a></h2>
<p>Mantid uses <code class="code docutils literal notranslate"><span class="pre">OpenGL</span></code> to plot the geometry. <code class="code docutils literal notranslate"><span class="pre">Instrument3DWidget</span></code> represents the view window and controls the viewport and the scene.
The base class for a visual element is <code class="code docutils literal notranslate"><span class="pre">GLObject</span></code>. <code class="code docutils literal notranslate"><span class="pre">Actors</span></code> and <code class="code docutils literal notranslate"><span class="pre">MantidObject</span></code> inherit from it. <code class="code docutils literal notranslate"><span class="pre">Actors</span></code> represent the instrument components.</p>
<figure class="align-center">
<a class="reference internal image-reference" href="_images/InstrumentViewClassDiagram.jpg"><img alt="_images/InstrumentViewClassDiagram.jpg" src="_images/InstrumentViewClassDiagram.jpg" style="width: 752px;" />
</a>
</figure>
</section>
<section id="detector-picking">
<h2><a class="toc-backref" href="#id3" role="doc-backlink">Detector Picking</a><a class="headerlink" href="#detector-picking" title="Link to this heading">¶</a></h2>
<p>Detector picking is a process of selecting a detector in the instrument view by clicking on it.
When the user clicks the mouse inside the viewport in the picking mode, Mantid creates a hidden image of the instrument in which detectors are given colours encoding the detector’s index in the instrument tree.
On the mouse click a colour is read in and decoded back into the index.</p>
</section>
<section id="geometry-handlers-and-renderers">
<h2><a class="toc-backref" href="#id4" role="doc-backlink">Geometry Handlers and Renderers</a><a class="headerlink" href="#geometry-handlers-and-renderers" title="Link to this heading">¶</a></h2>
<p>Each object has a geometry handler attached to it.
The handler is responsible for creating the mesh and rendering the object.
Handlers have different methods of creating meshes.
For example, <code class="code docutils literal notranslate"><span class="pre">GluGeometryHandler</span></code> can create simple shapes such as spheres and cylinders, <code class="code docutils literal notranslate"><span class="pre">OCGeometryHandler</span></code> creates more complex geometries combining simple shapes together.
<code class="code docutils literal notranslate"><span class="pre">CacheGeometryHandler</span></code> reads previously saved geometries from a file.</p>
<figure class="align-center">
<a class="reference internal image-reference" href="_images/GeometryHandlers.jpg"><img alt="_images/GeometryHandlers.jpg" src="_images/GeometryHandlers.jpg" style="width: 793px;" />
</a>
</figure>
</section>
</section>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<ul class="nav navbar-nav" style=" float: right;">
<li>
<a href="InelasticDataProcessorFileStructure.html" title="Previous Chapter: Inelastic Data Processor Class Structure"><span class="glyphicon glyphicon-chevron-left visible-sm"></span><span class="hidden-sm hidden-tablet">« Inelastic Dat...</span>
</a>
</li>
<li>
<a href="ISISSANSReductionBackend.html" title="Next Chapter: ISIS SANS Reduction Back-end"><span class="glyphicon glyphicon-chevron-right visible-sm"></span><span class="hidden-sm hidden-tablet">ISIS SANS Red... »</span>
</a>
</li>
<li><a href="#">Back to top</a></li>
</ul>
<p>
</p>
</div>
</footer>
</body>
</html>