VR-Vantage API Documentation
Home
Modules
Namespaces
Classes
Files
Libraries
Examples
Tutorials
File List
File Members
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
112
protected
:
115
virtual
void
setProjectionMatrixAsPerspective(
double
fovy,
116
double
aspectRatio,
double
zNear,
double
zFar
) = 0;
117
119
virtual
void
setProjectionMatrixAsFrustum (
double
left,
double
right,
120
double
bottom,
double
topz,
121
double
zNear,
double
zFar) = 0;
122
123
virtual
void
connectToObserver() = 0;
124
125
void
observerAdded(
const
std::string
& observerName );
126
void
observerRemoved(
const
std::string
& observerName );
127
128
protected
:
129
130
DtDe
&
myDe
;
131
DtChannelConfiguration
&
myChannelConfiguration
;
132
DtSignalConnectionManager
myConnections
;
133
134
int
myModelSet
;
135
DtObserverObject
*
myObserver
;
136
std::string
myObserverName
;
137
DtChannelConfiguration::ProjectionResizePolicy
myProjectionResizePolicy
;
138
};
139
144
class
DT_DLL_VRVCORE
DtChannelCreator
:
public
DtVirtualBaseClass
145
{
146
147
public
:
150
static
DtChannelCreator
& instance(
DtDe
& theIG);
151
153
static
void
registerInstance(
DtDe
& de,
DtChannelCreator
* instance);
154
156
virtual
DtChannel
* create(
DtDe
& de,
DtWindow
* window,
157
DtChannelConfiguration
&) = 0;
158
};
159
}
Copyright © 2005-2013 VT MÄK. All Rights Reserved (
www.mak.com
)