Loading...
Searching...
No Matches
shadowMatrixComputation.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_HDX_SHADOW_MATRIX_COMPUTATION_H
8#define PXR_IMAGING_HDX_SHADOW_MATRIX_COMPUTATION_H
9
10#include "pxr/pxr.h"
11#include "pxr/imaging/hdx/api.h"
12#include "pxr/imaging/hdx/version.h"
13#include "pxr/imaging/cameraUtil/conformWindow.h"
15
16PXR_NAMESPACE_OPEN_SCOPE
17
19
20// Interface class for computing the shadow matrix
21// for a given viewport.
22class HdxShadowMatrixComputation
23{
24public:
25 // For legacy clients using viewport, will be removed eventually.
26 virtual std::vector<GfMatrix4d> Compute(const GfVec4f &viewport, CameraUtilConformWindowPolicy policy) = 0;
27
28 // For modern clients using camera framing API.
29 virtual std::vector<GfMatrix4d> Compute(const CameraUtilFraming &framing, CameraUtilConformWindowPolicy policy) = 0;
30
31protected:
32 HdxShadowMatrixComputation() = default;
33 virtual ~HdxShadowMatrixComputation() = default;
34
35private:
36 HdxShadowMatrixComputation(const HdxShadowMatrixComputation &) = delete;
37 HdxShadowMatrixComputation &operator =(const HdxShadowMatrixComputation &) = delete;
38};
39
40
41PXR_NAMESPACE_CLOSE_SCOPE
42
43#endif // PXR_IMAGING_HDX_SHADOW_MATRIX_COMPUTATION_H
Framing information.
Definition: framing.h:63
Basic type for a vector of 4 float components.
Definition: vec4f.h:46