Blender  V3.3
hydra/camera.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: Apache-2.0
2  * Copyright 2022 NVIDIA Corporation
3  * Copyright 2022 Blender Foundation */
4 
5 #pragma once
6 
7 #include "hydra/config.h"
8 
9 #include <pxr/base/gf/camera.h>
10 #include <pxr/imaging/hd/camera.h>
11 #include <pxr/imaging/hd/timeSampleArray.h>
12 
14 
15 class HdCyclesCamera final : public PXR_NS::HdCamera {
16  public:
17  HdCyclesCamera(const PXR_NS::SdfPath &sprimId);
18  ~HdCyclesCamera() override;
19 
20  void ApplyCameraSettings(PXR_NS::HdRenderParam *renderParam, CCL_NS::Camera *targetCamera) const;
21 
22  static void ApplyCameraSettings(PXR_NS::HdRenderParam *renderParam,
23  const PXR_NS::GfCamera &cameraData,
24  PXR_NS::CameraUtilConformWindowPolicy windowPolicy,
25  CCL_NS::Camera *targetCamera);
26  static void ApplyCameraSettings(PXR_NS::HdRenderParam *renderParam,
27  const PXR_NS::GfMatrix4d &worldToViewMatrix,
28  const PXR_NS::GfMatrix4d &projectionMatrix,
29  const std::vector<PXR_NS::GfVec4d> &clipPlanes,
30  CCL_NS::Camera *targetCamera);
31 
32  PXR_NS::HdDirtyBits GetInitialDirtyBitsMask() const override;
33 
34  void Sync(PXR_NS::HdSceneDelegate *sceneDelegate,
35  PXR_NS::HdRenderParam *renderParam,
36  PXR_NS::HdDirtyBits *dirtyBits) override;
37 
38  void Finalize(PXR_NS::HdRenderParam *renderParam) override;
39 
40  private:
41  PXR_NS::GfCamera _data;
42  PXR_NS::HdTimeSampleArray<PXR_NS::GfMatrix4d, 2> _transformSamples;
43 };
44 
#define final(a, b, c)
Definition: BLI_hash.h:21
struct Camera Camera
void ApplyCameraSettings(PXR_NS::HdRenderParam *renderParam, CCL_NS::Camera *targetCamera) const
static void ApplyCameraSettings(PXR_NS::HdRenderParam *renderParam, const PXR_NS::GfCamera &cameraData, PXR_NS::CameraUtilConformWindowPolicy windowPolicy, CCL_NS::Camera *targetCamera)
PXR_NS::HdDirtyBits GetInitialDirtyBitsMask() const override
void Sync(PXR_NS::HdSceneDelegate *sceneDelegate, PXR_NS::HdRenderParam *renderParam, PXR_NS::HdDirtyBits *dirtyBits) override
HdCyclesCamera(const PXR_NS::SdfPath &sprimId)
void Finalize(PXR_NS::HdRenderParam *renderParam) override
~HdCyclesCamera() override
static void ApplyCameraSettings(PXR_NS::HdRenderParam *renderParam, const PXR_NS::GfMatrix4d &worldToViewMatrix, const PXR_NS::GfMatrix4d &projectionMatrix, const std::vector< PXR_NS::GfVec4d > &clipPlanes, CCL_NS::Camera *targetCamera)
#define HDCYCLES_NAMESPACE_CLOSE_SCOPE
Definition: hydra/config.h:17