HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
freeCameraPrimDataSource.h
Go to the documentation of this file.
1 //
2 // Copyright 2024 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_FREE_CAMERA_DATA_SOURCE_H
8 #define PXR_IMAGING_HDX_FREE_CAMERA_DATA_SOURCE_H
9 
10 #include "pxr/pxr.h"
11 #include "pxr/imaging/hdx/api.h"
12 
15 
16 #include "pxr/base/gf/camera.h"
17 
19 
20 namespace HdxFreeCameraPrimDataSource_Impl {
21 struct _Info;
22 }
23 
24 /// \class HdxFreeCameraPrimDataSource
25 ///
26 /// A data source conforming to the HdCameraSchema and HdXformSchema
27 /// populated from a GfCamera or camera matrices and a window policy.
28 ///
29 /// It is intended to replace the HdxFreeCameraSceneDelegate.
30 ///
32 {
33 public:
35 
36  HDX_API
38 
39  HDX_API
40  void SetCamera(
41  const GfCamera &camera,
42  HdDataSourceLocatorSet * dirtyLocators = nullptr);
43 
44  HDX_API
45  void SetWindowPolicy(
47  HdDataSourceLocatorSet * dirtyLocators = nullptr);
48 
49  HDX_API
51  const GfMatrix4d& viewMatrix,
52  const GfMatrix4d& projectionMatrix,
53  HdDataSourceLocatorSet * dirtyLocators = nullptr);
54 
55  HDX_API
56  void SetClippingPlanes(
57  const std::vector<GfVec4f> &clippingPlanes,
58  HdDataSourceLocatorSet * dirtyLocators = nullptr);
59 
60  HDX_API
61  HdDataSourceBaseHandle Get(const TfToken &name) override;
62 
63  HDX_API
64  TfTokenVector GetNames() override;
65 
66 private:
67  HDX_API
69  const GfCamera &camera = GfCamera(),
71 
72  HDX_API
73  HdxFreeCameraPrimDataSource(
74  const GfMatrix4d& viewMatrix,
75  const GfMatrix4d& projectionMatrix,
77 
78  std::shared_ptr<HdxFreeCameraPrimDataSource_Impl::_Info> const _info;
79 };
80 
82 
83 #endif // PXR_IMAGING_HDX_FREE_CAMERA_DATA_SOURCE_H
HDX_API void SetClippingPlanes(const std::vector< GfVec4f > &clippingPlanes, HdDataSourceLocatorSet *dirtyLocators=nullptr)
HDX_API void SetWindowPolicy(CameraUtilConformWindowPolicy policy, HdDataSourceLocatorSet *dirtyLocators=nullptr)
hboost::math::policies::policy< hboost::math::policies::domain_error< hboost::math::policies::ignore_error >, hboost::math::policies::pole_error< hboost::math::policies::ignore_error >, hboost::math::policies::overflow_error< hboost::math::policies::ignore_error >, hboost::math::policies::underflow_error< hboost::math::policies::ignore_error >, hboost::math::policies::denorm_error< hboost::math::policies::ignore_error >, hboost::math::policies::rounding_error< hboost::math::policies::ignore_error >, hboost::math::policies::evaluation_error< hboost::math::policies::ignore_error >, hboost::math::policies::indeterminate_result_error< hboost::math::policies::ignore_error > > policy
Definition: SYS_MathCbrt.h:35
Object-based representation of a camera.
Definition: camera.h:32
HDX_API HdDataSourceBaseHandle Get(const TfToken &name) override
HD_DECLARE_DATASOURCE(HdxFreeCameraPrimDataSource)
#define HDX_API
Definition: api.h:23
HDX_API void SetCamera(const GfCamera &camera, HdDataSourceLocatorSet *dirtyLocators=nullptr)
Definition: token.h:70
HDX_API ~HdxFreeCameraPrimDataSource() override
HDX_API TfTokenVector GetNames() override
std::vector< TfToken > TfTokenVector
Convenience types.
Definition: token.h:440
GLuint const GLchar * name
Definition: glcorearb.h:786
HDX_API void SetViewAndProjectionMatrix(const GfMatrix4d &viewMatrix, const GfMatrix4d &projectionMatrix, HdDataSourceLocatorSet *dirtyLocators=nullptr)
CameraUtilConformWindowPolicy
Definition: conformWindow.h:27
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
Definition: path.h:1425
#define PXR_NAMESPACE_CLOSE_SCOPE
Definition: pxr.h:74
Increase width or height.
Definition: conformWindow.h:33