Main Page
Module List
Reference documentation
Namespaces
Classes
Examples
distro
c++_api
inc
opals
IView.hpp
1
#ifndef OPALS_IVIEW_HPP_INCLUDED
2
#define OPALS_IVIEW_HPP_INCLUDED
3
4
#if !defined(OPALS_EXPORTS) && !defined(OPALS_MODULE_EXPORTS)
5
#if defined _DEBUG && !defined OPALS_NO_DEBUG
6
#pragma comment(lib, "opalsView_d.lib")
7
#else
8
#pragma comment(lib, "opalsView.lib")
9
#endif
10
#endif
11
12
#include <opals/IModuleBase.hpp>
13
#include <opals/Path.hpp>
14
#include <opals/Vector.hpp>
15
16
namespace
opals
17
{
18
19
namespace
opts
20
{
21
namespace
View
22
{
23
/// Options of \ref ModuleView
24
typedef
IGroup< Names::_,
false
, Cons<
25
ILeaf< Names::inFile, false, opals::Vector<opals::Path> >, Cons<
26
ILeaf< Names::filter, false, opals::String >
27
> > > Options;
28
}
29
}
30
31
/// Provides an interactive 3d viewer for points (including arbitrary attributes) and lines.
32
/** TODO:
33
More details on opalsView with much more words,
34
possibly on several lines. */
35
/// \see \ref ModuleView
36
class
OPALS_API
IView
:
virtual
public
IModuleBase
37
{
38
39
public
:
40
static
IView
* New();
41
static
IView
* New(
IControlObject
&controlObject );
42
static
IView
* New(
const
IModuleBase
&parent );
43
static
IView
* New(
const
IModuleBase
&parent,
IControlObject
&controlObject );
44
45
virtual
~
IView
() {}
46
47
/// \name Access to module-specific options.
48
///@{
49
typedef
opts::View::Options
Options
;
50
virtual
Options
& opts() = 0;
51
virtual
const
Options
& opts()
const
= 0;
52
///}@
53
54
};
55
56
}
57
58
#endif