Loading...
Searching...
No Matches
framing.h
1//
2// Copyright 2020 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_FRAMING_H
8#define PXR_IMAGING_CAMERA_UTIL_FRAMING_H
9
10#include "pxr/pxr.h"
11#include "pxr/imaging/cameraUtil/api.h"
12
13#include "pxr/imaging/cameraUtil/conformWindow.h"
14
15#include "pxr/base/gf/rect2i.h"
16#include "pxr/base/gf/range2f.h"
17
18PXR_NAMESPACE_OPEN_SCOPE
19
63{
64public:
67 CAMERAUTIL_API
69
73 CAMERAUTIL_API
76 const GfRect2i &dataWindow,
77 float pixelAspectRatio = 1.0);
78
82 CAMERAUTIL_API
84 const GfRect2i &dataWindow);
85
87 CAMERAUTIL_API
88 bool IsValid() const;
89
90 CAMERAUTIL_API
91 bool operator==(const CameraUtilFraming& other) const;
92
93 CAMERAUTIL_API
94 bool operator!=(const CameraUtilFraming& other) const;
95
112 CAMERAUTIL_API
114 float cameraAspectRatio,
115 CameraUtilConformWindowPolicy windowPolicy) const;
116
122 CAMERAUTIL_API
124 const GfMatrix4d &projectionMatrix,
125 CameraUtilConformWindowPolicy windowPolicy) const;
126
129
133
137};
138
139PXR_NAMESPACE_CLOSE_SCOPE
140
141#endif
Framing information.
Definition: framing.h:63
CAMERAUTIL_API GfRange2f ComputeFilmbackWindow(float cameraAspectRatio, CameraUtilConformWindowPolicy windowPolicy) const
The filmback window is the rectangle in pixel space corresponding to the filmback plane.
CAMERAUTIL_API CameraUtilFraming()
Creates an invalid framing, i.e., with empty display and data window.
CAMERAUTIL_API CameraUtilFraming(const GfRect2i &dataWindow)
Creates a framing with equal display and data window (and assuming square pixels).
GfRange2f displayWindow
The display window.
Definition: framing.h:128
CAMERAUTIL_API bool IsValid() const
Is display and data window non-empty.
float pixelAspectRatio
The ratio of the width to the height of a pixel - same as OpenEXR.
Definition: framing.h:136
CAMERAUTIL_API CameraUtilFraming(const GfRange2f &displayWindow, const GfRect2i &dataWindow, float pixelAspectRatio=1.0)
Creates a framing with given display and data window and pixel aspect ratio.
GfRect2i dataWindow
The data window.
Definition: framing.h:132
CAMERAUTIL_API GfMatrix4d ApplyToProjectionMatrix(const GfMatrix4d &projectionMatrix, CameraUtilConformWindowPolicy windowPolicy) const
Given the projectionMatrix computed from a camera, applies the framing.
Stores a 4x4 matrix of double elements.
Definition: matrix4d.h:71
Basic type: 2-dimensional floating point range.
Definition: range2f.h:47
A 2D rectangle with integer coordinates.
Definition: rect2i.h:43