VR-Vantage 2.2 API Documentation
Home
Modules
Namespaces
Classes
Files
Libraries
Examples
Tutorials
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
include
vrvCore
DtChannel.h
Go to the documentation of this file.
1
/******************************************************************************
2
** Copyright (c) 2012 MAK Technologies, Inc.
3
** All rights reserved.
4
******************************************************************************/
5
9
10
#pragma once
11
12
#include <
vrvCore/vrvCore.h
>
13
#include <
vrvUtil/DtSignalConnectionManager.h
>
14
#include <
vrvUtil/DtVirtualBaseClass.h
>
15
#include <
vrvUtil/DtChannelConfiguration.h
>
16
#include <boost/signals.hpp>
17
18
namespace
makVrv
19
{
20
class
DtDe;
21
class
DtWindow;
22
class
DtObserverObject;
23
class
DtMouseEvent;
24
class
DtKeyEvent;
25
class
DtSensor;
26
29
class
DT_DLL_VRVCORE
DtChannel
30
{
31
32
protected
:
34
DtChannel
(
DtDe
& de,
DtChannelConfiguration
&);
35
36
public
:
37
39
virtual
~
DtChannel
();
40
42
DtObserverObject
* findObserver()
const
;
43
45
unsigned
int
currentModelSet()
const
;
46
48
virtual
void
setClearColor(
float
r
,
float
g
,
float
b
,
float
a
) = 0;
49
51
virtual
void
setViewport(
int
x
,
int
y
,
int
width
,
int
height
) = 0;
52
54
virtual
void
getViewport(
int
& x,
int
& y,
int
& width,
int
& height)
const
= 0;
55
57
virtual
void
setWindow(
DtWindow
*) = 0;
58
60
virtual
void
setCameraPosition(
double
x,
double
y,
double
z
) = 0;
61
63
virtual
const
DtWindow
* window()
const
= 0;
64
66
virtual
void
update() = 0;
67
69
const
DtChannelConfiguration
& configuration()
const
;
70
73
virtual
void
updateProjection() = 0;
74
76
virtual
void
setObserverName(
const
std::string
& observerName );
77
82
virtual
void
setSensorName(
const
std::string
& sensorName ) = 0;
83
86
virtual
void
setProjectionResizePolicy(
87
DtChannelConfiguration::ProjectionResizePolicy
policy);
88
91
virtual
DtChannelConfiguration::ProjectionResizePolicy
92
projectionResizePolicy()
const
;
93
95
virtual
bool
processMouseEvent(
const
DtMouseEvent
& ev) = 0;
96
98
virtual
bool
processKeyboardEvent(
const
DtKeyEvent
& ev) = 0;
99
102
virtual
void
projectToScreen(
double
dbX,
double
dbY,
double
dbZ,
103
double
& screenX,
double
& screenY,
double
& screenZ ) = 0;
104
106
virtual
void
projectToWorld(
double
screenX,
double
screenY,
107
double
& dbX,
double
& dbY,
double
& dbZ ) = 0;
108
110
virtual
void
moveMouseToScreenLocation(
float
pixelX,
float
pixelY ) = 0;
111
113
std::string
& observerName();
114
115
protected
:
118
virtual
void
setProjectionMatrixAsPerspective(
double
fovy,
119
double
aspectRatio,
double
zNear
,
double
zFar
) = 0;
120
122
virtual
void
setProjectionMatrixAsFrustum (
double
left
,
double
right
,
123
double
bottom
,
double
topz,
124
double
zNear,
double
zFar) = 0;
125
126
virtual
void
connectToObserver() = 0;
127
128
void
observerAdded(
const
std::string
& observerName );
129
void
observerRemoved(
const
std::string
& observerName );
130
131
protected
:
132
133
DtDe
&
myDe
;
134
DtChannelConfiguration
&
myChannelConfiguration
;
135
DtSignalConnectionManager
myConnections
;
136
137
int
myModelSet
;
138
DtObserverObject
*
myObserver
;
139
std::string
myObserverName
;
140
DtChannelConfiguration::ProjectionResizePolicy
myProjectionResizePolicy
;
141
};
142
147
class
DT_DLL_VRVCORE
DtChannelCreator
:
public
DtVirtualBaseClass
148
{
149
150
public
:
153
static
DtChannelCreator
& instance(
DtDe
& theIG);
154
156
static
void
registerInstance(
DtDe
& de,
DtChannelCreator
* instance);
157
159
virtual
DtChannel
* create(
DtDe
& de,
DtWindow
* window,
160
DtChannelConfiguration
&) = 0;
161
};
162
}
Copyright © 2005-2017 VT MÄK. All Rights Reserved (
www.mak.com
)