conformWindow.h
1 //
2 // Copyright 2016 Pixar
3 //
4 // Licensed under the terms set forth in the LICENSE.txt file available at
5 // https://openusd.org/license.
6 //
7 #ifndef PXR_IMAGING_CAMERA_UTIL_CONFORM_WINDOW_H
8 #define PXR_IMAGING_CAMERA_UTIL_CONFORM_WINDOW_H
9 
10 #include "pxr/pxr.h"
11 #include "pxr/imaging/cameraUtil/api.h"
12 
13 PXR_NAMESPACE_OPEN_SCOPE
14 
15 class GfVec2d;
16 class GfVec4d;
17 class GfMatrix4d;
18 class GfRange2d;
19 class GfCamera;
20 class GfFrustum;
21 
27 enum CameraUtilConformWindowPolicy {
29  CameraUtilMatchVertically,
31  CameraUtilMatchHorizontally,
33  CameraUtilFit,
35  CameraUtilCrop,
37  CameraUtilDontConform
38 };
39 
42 CAMERAUTIL_API
44 CameraUtilConformedWindow(
45  const GfRange2d &window,
46  CameraUtilConformWindowPolicy policy, double targetAspect);
47 
51 CAMERAUTIL_API
52 GfVec4d
53 CameraUtilConformedWindow(
54  const GfVec4d &window,
55  CameraUtilConformWindowPolicy policy, double targetAspect);
56 
60 CAMERAUTIL_API
61 GfVec2d
62 CameraUtilConformedWindow(
63  const GfVec2d &window,
64  CameraUtilConformWindowPolicy policy, double targetAspect);
65 
75 CAMERAUTIL_API
77 CameraUtilConformedWindow(
78  const GfMatrix4d &projectionMatrix,
79  CameraUtilConformWindowPolicy policy, double targetAspect);
80 
83 CAMERAUTIL_API
84 void
85 CameraUtilConformWindow(
86  GfCamera *camera,
87  CameraUtilConformWindowPolicy policy, double targetAspect);
88 
91 CAMERAUTIL_API
92 void
93 CameraUtilConformWindow(
94  GfFrustum *frustum,
95  CameraUtilConformWindowPolicy policy, double targetAspect);
96 
97 
98 PXR_NAMESPACE_CLOSE_SCOPE
99 
100 #endif
Object-based representation of a camera.
Definition: camera.h:32
Basic type for a vector of 4 double components.
Definition: vec4d.h:47
Basic type for a vector of 2 double components.
Definition: vec2d.h:45
Stores a 4x4 matrix of double elements.
Definition: matrix4d.h:70
Basic type: 2-dimensional floating point range.
Definition: range2d.h:46
Basic type: View frustum.
Definition: frustum.h:71