Viskores  1.0
Camera.h
Go to the documentation of this file.
1 //============================================================================
2 // The contents of this file are covered by the Viskores license. See
3 // LICENSE.txt for details.
4 //
5 // By contributing to this file, all contributors agree to the Developer
6 // Certificate of Origin Version 1.1 (DCO 1.1) as stated in DCO.txt.
7 //============================================================================
8 
9 //============================================================================
10 // Copyright (c) Kitware, Inc.
11 // All rights reserved.
12 // See LICENSE.txt for details.
13 //
14 // This software is distributed WITHOUT ANY WARRANTY; without even
15 // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
16 // PURPOSE. See the above copyright notice for more information.
17 //============================================================================
18 #ifndef viskores_rendering_Camera_h
19 #define viskores_rendering_Camera_h
20 
22 
23 #include <viskores/Bounds.h>
24 #include <viskores/Math.h>
25 #include <viskores/Matrix.h>
26 #include <viskores/Range.h>
27 #include <viskores/Transform3D.h>
30 
31 namespace viskores
32 {
33 namespace rendering
34 {
35 
45 class VISKORES_RENDERING_EXPORT Camera
46 {
48  {
49  public:
52  : LookAt(0.0f, 0.0f, 0.0f)
53  , Position(0.0f, 0.0f, 1.0f)
54  , ViewUp(0.0f, 1.0f, 0.0f)
55  , FieldOfView(60.0f)
56  , XPan(0.0f)
57  , YPan(0.0f)
58  , Zoom(1.0f)
59  {
60  }
61 
62  viskores::Matrix<viskores::Float32, 4, 4> CreateViewMatrix() const;
63 
64  viskores::Matrix<viskores::Float32, 4, 4> CreateProjectionMatrix(
65  viskores::Id width,
66  viskores::Id height,
67  viskores::Float32 nearPlane,
68  viskores::Float32 farPlane) const;
69 
77  };
78 
79  struct VISKORES_RENDERING_EXPORT Camera2DStruct
80  {
81  public:
84  : Left(-1.0f)
85  , Right(1.0f)
86  , Bottom(-1.0f)
87  , Top(1.0f)
88  , XScale(1.0f)
89  , XPan(0.0f)
90  , YPan(0.0f)
91  , Zoom(1.0f)
92  {
93  }
94 
95  viskores::Matrix<viskores::Float32, 4, 4> CreateViewMatrix() const;
96 
97  viskores::Matrix<viskores::Float32, 4, 4> CreateProjectionMatrix(
98  viskores::Float32 size,
99  viskores::Float32 znear,
100  viskores::Float32 zfar,
101  viskores::Float32 aspect) const;
102 
111  };
112 
113 public:
114  enum struct Mode
115  {
116  TwoD,
117  ThreeD,
118  };
119 
122  : ModeType(vtype)
123  , NearPlane(0.01f)
124  , FarPlane(1000.0f)
125  , ViewportLeft(-1.0f)
126  , ViewportRight(1.0f)
127  , ViewportBottom(-1.0f)
128  , ViewportTop(1.0f)
129  {
130  }
131 
132  viskores::Matrix<viskores::Float32, 4, 4> CreateViewMatrix() const;
133 
134  viskores::Matrix<viskores::Float32, 4, 4> CreateProjectionMatrix(viskores::Id screenWidth,
135  viskores::Id screenHeight) const;
136 
137  void GetRealViewport(viskores::Id screenWidth,
138  viskores::Id screenHeight,
139  viskores::Float32& left,
140  viskores::Float32& right,
141  viskores::Float32& bottom,
142  viskores::Float32& top) const;
143 
151  viskores::rendering::Camera::Mode GetMode() const { return this->ModeType; }
154  void SetMode(viskores::rendering::Camera::Mode mode) { this->ModeType = mode; }
161 
177  {
178  return viskores::Range(this->NearPlane, this->FarPlane);
179  }
183  {
184  this->NearPlane = nearPlane;
185  this->FarPlane = farPlane;
186  }
190  {
191  this->SetClippingRange(static_cast<viskores::Float32>(nearPlane),
192  static_cast<viskores::Float32>(farPlane));
193  }
196  void SetClippingRange(const viskores::Range& nearFarRange)
197  {
198  this->SetClippingRange(nearFarRange.Min, nearFarRange.Max);
199  }
200 
211  viskores::Float32& right,
212  viskores::Float32& bottom,
213  viskores::Float32& top) const
214  {
215  left = this->ViewportLeft;
216  right = this->ViewportRight;
217  bottom = this->ViewportBottom;
218  top = this->ViewportTop;
219  }
223  viskores::Float64& right,
224  viskores::Float64& bottom,
225  viskores::Float64& top) const
226  {
227  left = this->ViewportLeft;
228  right = this->ViewportRight;
229  bottom = this->ViewportBottom;
230  top = this->ViewportTop;
231  }
235  {
236  return viskores::Bounds(
237  this->ViewportLeft, this->ViewportRight, this->ViewportBottom, this->ViewportTop, 0.0, 0.0);
238  }
242  viskores::Float32 right,
243  viskores::Float32 bottom,
244  viskores::Float32 top)
245  {
246  this->ViewportLeft = left;
247  this->ViewportRight = right;
248  this->ViewportBottom = bottom;
249  this->ViewportTop = top;
250  }
254  viskores::Float64 right,
255  viskores::Float64 bottom,
256  viskores::Float64 top)
257  {
258  this->SetViewport(static_cast<viskores::Float32>(left),
259  static_cast<viskores::Float32>(right),
260  static_cast<viskores::Float32>(bottom),
261  static_cast<viskores::Float32>(top));
262  }
265  void SetViewport(const viskores::Bounds& viewportBounds)
266  {
267  this->SetViewport(
268  viewportBounds.X.Min, viewportBounds.X.Max, viewportBounds.Y.Min, viewportBounds.Y.Max);
269  }
270 
277  const viskores::Vec3f_32& GetLookAt() const { return this->Camera3D.LookAt; }
280  void SetLookAt(const viskores::Vec3f_32& lookAt)
281  {
282  this->SetModeTo3D();
283  this->Camera3D.LookAt = lookAt;
284  }
288  {
289  this->SetLookAt(viskores::Vec<Float32, 3>(lookAt));
290  }
291 
298  const viskores::Vec3f_32& GetPosition() const { return this->Camera3D.Position; }
301  void SetPosition(const viskores::Vec3f_32& position)
302  {
303  this->SetModeTo3D();
304  this->Camera3D.Position = position;
305  }
308  void SetPosition(const viskores::Vec3f_64& position)
309  {
310  this->SetPosition(viskores::Vec3f_32(position));
311  }
312 
321  const viskores::Vec3f_32& GetViewUp() const { return this->Camera3D.ViewUp; }
324  void SetViewUp(const viskores::Vec3f_32& viewUp)
325  {
326  this->SetModeTo3D();
327  this->Camera3D.ViewUp = viewUp;
328  }
331  void SetViewUp(const viskores::Vec3f_64& viewUp) { this->SetViewUp(viskores::Vec3f_32(viewUp)); }
332 
340  viskores::Float32 GetXScale() const { return this->Camera2D.XScale; }
344  {
345  this->SetModeTo2D();
346  this->Camera2D.XScale = xscale;
347  }
351  {
352  this->SetXScale(static_cast<viskores::Float32>(xscale));
353  }
354 
363  viskores::Float32 GetFieldOfView() const { return this->Camera3D.FieldOfView; }
367  {
368  this->SetModeTo3D();
369  this->Camera3D.FieldOfView = fov;
370  }
374  {
375  this->SetFieldOfView(static_cast<viskores::Float32>(fov));
376  }
377 
384  void Pan(viskores::Float32 dx, viskores::Float32 dy);
388  {
389  this->Pan(static_cast<viskores::Float32>(dx), static_cast<viskores::Float32>(dy));
390  }
393  void Pan(viskores::Vec2f_32 direction) { this->Pan(direction[0], direction[1]); }
396  void Pan(viskores::Vec2f_64 direction) { this->Pan(direction[0], direction[1]); }
400  {
401  viskores::Vec2f_32 pan;
402  // Note that the 2D and 3D pan are always set the same.
403  pan[0] = this->Camera3D.XPan;
404  pan[1] = this->Camera3D.YPan;
405  return pan;
406  }
407 
408 
416  void Zoom(viskores::Float32 zoom);
419  void Zoom(viskores::Float64 zoom) { this->Zoom(static_cast<viskores::Float32>(zoom)); }
422  viskores::Float32 GetZoom() const { return this->Camera3D.Zoom; }
423 
434  void TrackballRotate(viskores::Float32 startX,
435  viskores::Float32 startY,
436  viskores::Float32 endX,
437  viskores::Float32 endY);
441  viskores::Float64 startY,
442  viskores::Float64 endX,
443  viskores::Float64 endY)
444  {
445  this->TrackballRotate(static_cast<viskores::Float32>(startX),
446  static_cast<viskores::Float32>(startY),
447  static_cast<viskores::Float32>(endX),
448  static_cast<viskores::Float32>(endY));
449  }
450 
460  void ResetToBounds(const viskores::Bounds& dataBounds);
462  void ResetToBounds(const viskores::Bounds& dataBounds, viskores::Float64 dataViewPadding);
464  void ResetToBounds(const viskores::Bounds& dataBounds,
465  viskores::Float64 XDataViewPadding,
466  viskores::Float64 YDataViewPadding,
467  viskores::Float64 ZDataViewPadding);
468 
476  void Roll(viskores::Float32 angleDegrees);
479  void Roll(viskores::Float64 angleDegrees)
480  {
481  this->Roll(static_cast<viskores::Float32>(angleDegrees));
482  }
483 
493  void Azimuth(viskores::Float32 angleDegrees);
496  void Azimuth(viskores::Float64 angleDegrees)
497  {
498  this->Azimuth(static_cast<viskores::Float32>(angleDegrees));
499  }
500 
511  void Elevation(viskores::Float32 angleDegrees);
514  void Elevation(viskores::Float64 angleDegrees)
515  {
516  this->Elevation(static_cast<viskores::Float32>(angleDegrees));
517  }
518 
535  void Dolly(viskores::Float32 value);
538  void Dolly(viskores::Float64 value) { this->Dolly(static_cast<viskores::Float32>(value)); }
539 
551  viskores::Float32& right,
552  viskores::Float32& bottom,
553  viskores::Float32& top) const
554  {
555  left = this->Camera2D.Left;
556  right = this->Camera2D.Right;
557  bottom = this->Camera2D.Bottom;
558  top = this->Camera2D.Top;
559  }
563  {
564  return viskores::Bounds(this->Camera2D.Left,
565  this->Camera2D.Right,
566  this->Camera2D.Bottom,
567  this->Camera2D.Top,
568  0.0,
569  0.0);
570  }
574  viskores::Float32 right,
575  viskores::Float32 bottom,
576  viskores::Float32 top)
577  {
578  this->SetModeTo2D();
579  this->Camera2D.Left = left;
580  this->Camera2D.Right = right;
581  this->Camera2D.Bottom = bottom;
582  this->Camera2D.Top = top;
583 
584  this->Camera2D.XPan = 0;
585  this->Camera2D.YPan = 0;
586  this->Camera2D.Zoom = 1;
587  }
591  viskores::Float64 right,
592  viskores::Float64 bottom,
593  viskores::Float64 top)
594  {
595  this->SetViewRange2D(static_cast<viskores::Float32>(left),
596  static_cast<viskores::Float32>(right),
597  static_cast<viskores::Float32>(bottom),
598  static_cast<viskores::Float32>(top));
599  }
602  void SetViewRange2D(const viskores::Range& xRange, const viskores::Range& yRange)
603  {
604  this->SetViewRange2D(xRange.Min, xRange.Max, yRange.Min, yRange.Max);
605  }
607  void SetViewRange2D(const viskores::Bounds& viewRange)
608  {
609  this->SetViewRange2D(viewRange.X, viewRange.Y);
610  }
611 
613  void Print() const;
614 
615 private:
619 
622 
627 };
628 }
629 } // namespace viskores::rendering
630 
631 #endif // viskores_rendering_Camera_h
viskores::rendering::Camera::Camera2DStruct::XScale
viskores::Float32 XScale
Definition: Camera.h:107
viskores::rendering::Camera::Camera3DStruct::FieldOfView
viskores::Float32 FieldOfView
Definition: Camera.h:73
viskores::rendering::Camera::Camera2DStruct::YPan
viskores::Float32 YPan
Definition: Camera.h:109
viskores::rendering::Camera::GetMode
viskores::rendering::Camera::Mode GetMode() const
The mode of the camera (2D or 3D).
Definition: Camera.h:151
viskores::rendering::Camera::ViewportLeft
viskores::Float32 ViewportLeft
Definition: Camera.h:623
viskores::rendering::Camera::GetViewUp
const viskores::Vec3f_32 & GetViewUp() const
The up orientation of the camera in 3D mode.
Definition: Camera.h:321
viskores::rendering::Camera::GetPosition
const viskores::Vec3f_32 & GetPosition() const
The spatial position of the camera in 3D mode.
Definition: Camera.h:298
viskores::rendering::Camera::ViewportTop
viskores::Float32 ViewportTop
Definition: Camera.h:626
viskores::rendering::Camera::Camera3DStruct::Zoom
viskores::Float32 Zoom
Definition: Camera.h:76
viskores::rendering::Camera::GetViewRange2D
void GetViewRange2D(viskores::Float32 &left, viskores::Float32 &right, viskores::Float32 &bottom, viskores::Float32 &top) const
The viewable region in the x-y plane.
Definition: Camera.h:550
viskores::rendering::Camera::Camera2DStruct::Top
viskores::Float32 Top
Definition: Camera.h:106
viskores::rendering::Camera::SetViewUp
void SetViewUp(const viskores::Vec3f_32 &viewUp)
The up orientation of the camera in 3D mode.
Definition: Camera.h:324
viskores::rendering::Camera::Camera
Camera(Mode vtype=Camera::Mode::ThreeD)
Definition: Camera.h:121
viskores::rendering::Camera::SetModeTo2D
void SetModeTo2D()
The mode of the camera (2D or 3D).
Definition: Camera.h:160
viskores::rendering::Camera::Camera2DStruct
Definition: Camera.h:79
viskores::rendering::Camera::Pan
void Pan(viskores::Vec2f_64 direction)
Pans the camera.
Definition: Camera.h:396
viskores::Bounds
Represent an axis-aligned 3D bounds in space.
Definition: Bounds.h:37
viskores::rendering::Camera::Camera2DStruct::Camera2DStruct
Camera2DStruct()
Definition: Camera.h:83
MatrixHelpers.h
viskores::rendering::Camera::GetViewRange2D
viskores::Bounds GetViewRange2D() const
The viewable region in the x-y plane.
Definition: Camera.h:562
viskores::rendering::Camera::Pan
void Pan(viskores::Vec2f_32 direction)
Pans the camera.
Definition: Camera.h:393
viskores::rendering::Camera::GetFieldOfView
viskores::Float32 GetFieldOfView() const
The field of view angle.
Definition: Camera.h:363
viskores::Range::Min
viskores::Float64 Min
The minumum value of the range (inclusive).
Definition: Range.h:42
viskores::rendering::Camera::Camera2D
Camera2DStruct Camera2D
Definition: Camera.h:618
viskores::rendering::Camera::TrackballRotate
void TrackballRotate(viskores::Float64 startX, viskores::Float64 startY, viskores::Float64 endX, viskores::Float64 endY)
Moves the camera as if a point was dragged along a sphere.
Definition: Camera.h:440
viskores::rendering::Camera::ViewportBottom
viskores::Float32 ViewportBottom
Definition: Camera.h:625
viskores::rendering::Camera::SetLookAt
void SetLookAt(const viskores::Vec< Float64, 3 > &lookAt)
The focal point the camera is looking at in 3D mode.
Definition: Camera.h:287
viskores::rendering::Camera::FarPlane
viskores::Float32 FarPlane
Definition: Camera.h:621
viskores::rendering::Camera::GetXScale
viskores::Float32 GetXScale() const
The xscale of the camera.
Definition: Camera.h:340
Matrix.h
viskores::rendering::Camera::SetModeTo3D
void SetModeTo3D()
The mode of the camera (2D or 3D).
Definition: Camera.h:157
viskores::rendering::Camera::SetViewRange2D
void SetViewRange2D(viskores::Float64 left, viskores::Float64 right, viskores::Float64 bottom, viskores::Float64 top)
The viewable region in the x-y plane.
Definition: Camera.h:590
viskores::rendering::Camera::Pan
void Pan(viskores::Float64 dx, viskores::Float64 dy)
Pans the camera.
Definition: Camera.h:387
viskores::rendering::Camera::Camera3D
Camera3DStruct Camera3D
Definition: Camera.h:617
viskores::rendering::Camera::SetViewRange2D
void SetViewRange2D(viskores::Float32 left, viskores::Float32 right, viskores::Float32 bottom, viskores::Float32 top)
The viewable region in the x-y plane.
Definition: Camera.h:573
viskores::rendering::Camera::Azimuth
void Azimuth(viskores::Float64 angleDegrees)
Rotate the camera about the view up vector centered at the focal point.
Definition: Camera.h:496
viskores::rendering::Camera::GetViewport
viskores::Bounds GetViewport() const
The viewport of the projection.
Definition: Camera.h:234
viskores::rendering::Camera::SetFieldOfView
void SetFieldOfView(viskores::Float64 fov)
The field of view angle.
Definition: Camera.h:373
viskores::Range::Max
viskores::Float64 Max
Tha maximum value of the range (inclusive).
Definition: Range.h:44
viskores::rendering::Camera::Camera2DStruct::Zoom
viskores::Float32 Zoom
Definition: Camera.h:110
viskores::rendering::Camera::SetViewport
void SetViewport(viskores::Float64 left, viskores::Float64 right, viskores::Float64 bottom, viskores::Float64 top)
The viewport of the projection.
Definition: Camera.h:253
viskores::rendering::Camera::Camera3DStruct::Camera3DStruct
Camera3DStruct()
Definition: Camera.h:51
VectorAnalysis.h
viskores::rendering::Camera::SetPosition
void SetPosition(const viskores::Vec3f_32 &position)
The spatial position of the camera in 3D mode.
Definition: Camera.h:301
viskores::rendering::Camera::GetZoom
viskores::Float32 GetZoom() const
Zooms the camera in or out.
Definition: Camera.h:422
viskores::rendering::Camera::ModeType
Mode ModeType
Definition: Camera.h:616
viskores::rendering::Camera::Mode::TwoD
@ TwoD
viskores::Id
viskores::Int64 Id
Base type to use to index arrays.
Definition: Types.h:235
viskores::rendering::Camera::SetViewRange2D
void SetViewRange2D(const viskores::Range &xRange, const viskores::Range &yRange)
The viewable region in the x-y plane.
Definition: Camera.h:602
VISKORES_CONT
#define VISKORES_CONT
Definition: ExportMacros.h:65
viskores::rendering::Camera::GetPan
viskores::Vec2f_32 GetPan() const
Pans the camera.
Definition: Camera.h:399
viskores
Groups connected points that have the same field value.
Definition: Atomic.h:27
Bounds.h
Math.h
viskores::rendering::Camera::Camera3DStruct::XPan
viskores::Float32 XPan
Definition: Camera.h:74
viskores::rendering::Camera::SetXScale
void SetXScale(viskores::Float32 xscale)
The xscale of the camera.
Definition: Camera.h:343
viskores::rendering::Camera::GetLookAt
const viskores::Vec3f_32 & GetLookAt() const
The focal point the camera is looking at in 3D mode.
Definition: Camera.h:277
viskores::Float32
float Float32
Base type to use for 32-bit floating-point numbers.
Definition: Types.h:165
viskores::rendering::Camera::SetLookAt
void SetLookAt(const viskores::Vec3f_32 &lookAt)
The focal point the camera is looking at in 3D mode.
Definition: Camera.h:280
viskores::rendering::Camera::SetXScale
void SetXScale(viskores::Float64 xscale)
The xscale of the camera.
Definition: Camera.h:350
viskores::rendering::Camera::SetClippingRange
void SetClippingRange(viskores::Float64 nearPlane, viskores::Float64 farPlane)
The clipping range of the camera.
Definition: Camera.h:189
viskores::rendering::Camera::Camera3DStruct
Definition: Camera.h:47
viskores::Matrix< viskores::Float32, 4, 4 >
viskores::rendering::Camera::Camera2DStruct::XPan
viskores::Float32 XPan
Definition: Camera.h:108
viskores::rendering::Camera::SetViewport
void SetViewport(const viskores::Bounds &viewportBounds)
The viewport of the projection.
Definition: Camera.h:265
Range.h
viskores::rendering::Camera::Elevation
void Elevation(viskores::Float64 angleDegrees)
Rotate the camera vertically around the focal point.
Definition: Camera.h:514
viskores::rendering::Camera::SetPosition
void SetPosition(const viskores::Vec3f_64 &position)
The spatial position of the camera in 3D mode.
Definition: Camera.h:308
viskores::rendering::Camera::Camera3DStruct::ViewUp
viskores::Vec3f_32 ViewUp
Definition: Camera.h:72
viskores::rendering::Camera::Camera3DStruct::Position
viskores::Vec3f_32 Position
Definition: Camera.h:71
viskores::rendering::Camera::GetViewport
void GetViewport(viskores::Float32 &left, viskores::Float32 &right, viskores::Float32 &bottom, viskores::Float32 &top) const
The viewport of the projection.
Definition: Camera.h:210
viskores::rendering::Camera::SetViewport
void SetViewport(viskores::Float32 left, viskores::Float32 right, viskores::Float32 bottom, viskores::Float32 top)
The viewport of the projection.
Definition: Camera.h:241
viskores::rendering::Camera::Camera3DStruct::YPan
viskores::Float32 YPan
Definition: Camera.h:75
viskores::rendering::Camera::SetClippingRange
void SetClippingRange(viskores::Float32 nearPlane, viskores::Float32 farPlane)
The clipping range of the camera.
Definition: Camera.h:182
Transform3D.h
viskores::Range
Represent a continuous scalar range of values.
Definition: Range.h:39
viskores::rendering::Camera
Specifies the viewport for a rendering.
Definition: Camera.h:45
viskores::rendering::Camera::Zoom
void Zoom(viskores::Float64 zoom)
Zooms the camera in or out.
Definition: Camera.h:419
viskores::rendering::Camera::GetViewport
void GetViewport(viskores::Float64 &left, viskores::Float64 &right, viskores::Float64 &bottom, viskores::Float64 &top) const
The viewport of the projection.
Definition: Camera.h:222
viskores::rendering::Camera::SetClippingRange
void SetClippingRange(const viskores::Range &nearFarRange)
The clipping range of the camera.
Definition: Camera.h:196
viskores::Bounds::Y
viskores::Range Y
The range of values in the Y direction.
Definition: Bounds.h:44
viskores::rendering::Camera::SetViewUp
void SetViewUp(const viskores::Vec3f_64 &viewUp)
The up orientation of the camera in 3D mode.
Definition: Camera.h:331
viskores::rendering::Camera::Dolly
void Dolly(viskores::Float64 value)
Move the camera toward or away from the focal point.
Definition: Camera.h:538
viskores::rendering::Camera::Camera2DStruct::Right
viskores::Float32 Right
Definition: Camera.h:104
viskores_rendering_export.h
viskores::rendering::Camera::SetViewRange2D
void SetViewRange2D(const viskores::Bounds &viewRange)
Definition: Camera.h:607
viskores::rendering::Camera::Mode
Mode
Definition: Camera.h:114
viskores::rendering::Camera::NearPlane
viskores::Float32 NearPlane
Definition: Camera.h:620
viskores::Float64
double Float64
Base type to use for 64-bit floating-point numbers.
Definition: Types.h:169
viskores::rendering::Camera::GetClippingRange
viskores::Range GetClippingRange() const
The clipping range of the camera.
Definition: Camera.h:176
viskores::rendering::Camera::Camera2DStruct::Bottom
viskores::Float32 Bottom
Definition: Camera.h:105
viskores::rendering::Camera::SetMode
void SetMode(viskores::rendering::Camera::Mode mode)
The mode of the camera (2D or 3D).
Definition: Camera.h:154
viskores::rendering::Camera::SetFieldOfView
void SetFieldOfView(viskores::Float32 fov)
The field of view angle.
Definition: Camera.h:366
viskores::Vec< viskores::Float32, 3 >
viskores::rendering::Camera::Camera3DStruct::LookAt
viskores::Vec3f_32 LookAt
Definition: Camera.h:70
viskores::rendering::Camera::ViewportRight
viskores::Float32 ViewportRight
Definition: Camera.h:624
viskores::rendering::Camera::Mode::ThreeD
@ ThreeD
viskores::Bounds::X
viskores::Range X
The range of values in the X direction.
Definition: Bounds.h:41
viskores::rendering::Camera::Camera2DStruct::Left
viskores::Float32 Left
Definition: Camera.h:103
viskores::rendering::Camera::Roll
void Roll(viskores::Float64 angleDegrees)
Roll the camera.
Definition: Camera.h:479