35#ifndef PXR_IMAGING_HD_CAMERA_SCHEMA_H
36#define PXR_IMAGING_HD_CAMERA_SCHEMA_H
40#include "pxr/imaging/hd/api.h"
44#include "pxr/imaging/hd/schema.h"
49PXR_NAMESPACE_OPEN_SCOPE
54#define HD_CAMERA_SCHEMA_TOKENS \
57 (horizontalAperture) \
59 (horizontalApertureOffset) \
60 (verticalApertureOffset) \
77 HD_CAMERA_SCHEMA_TOKENS);
82class HdCameraSchema :
public HdSchema
88 HdCameraSchema(HdContainerDataSourceHandle container)
97 static HdCameraSchema GetFromParent(
98 const HdContainerDataSourceHandle &fromParentContainer);
109 HdTokenDataSourceHandle GetProjection()
const;
112 HdFloatDataSourceHandle GetHorizontalAperture()
const;
115 HdFloatDataSourceHandle GetVerticalAperture()
const;
118 HdFloatDataSourceHandle GetHorizontalApertureOffset()
const;
121 HdFloatDataSourceHandle GetVerticalApertureOffset()
const;
124 HdFloatDataSourceHandle GetFocalLength()
const;
127 HdVec2fDataSourceHandle GetClippingRange()
const;
130 HdVec4dArrayDataSourceHandle GetClippingPlanes()
const;
133 HdFloatDataSourceHandle GetFStop()
const;
136 HdFloatDataSourceHandle GetFocusDistance()
const;
139 HdDoubleDataSourceHandle GetShutterOpen()
const;
142 HdDoubleDataSourceHandle GetShutterClose()
const;
145 HdFloatDataSourceHandle GetExposure()
const;
148 HdBoolDataSourceHandle GetFocusOn()
const;
151 HdFloatDataSourceHandle GetDofAspect()
const;
154 HdSplitDiopterSchema GetSplitDiopter()
const;
157 HdLensDistortionSchema GetLensDistortion()
const;
167 static const TfToken &GetSchemaToken();
205 static HdContainerDataSourceHandle
207 const HdTokenDataSourceHandle &projection,
208 const HdFloatDataSourceHandle &horizontalAperture,
209 const HdFloatDataSourceHandle &verticalAperture,
210 const HdFloatDataSourceHandle &horizontalApertureOffset,
211 const HdFloatDataSourceHandle &verticalApertureOffset,
212 const HdFloatDataSourceHandle &focalLength,
213 const HdVec2fDataSourceHandle &clippingRange,
214 const HdVec4dArrayDataSourceHandle &clippingPlanes,
215 const HdFloatDataSourceHandle &fStop,
216 const HdFloatDataSourceHandle &focusDistance,
217 const HdDoubleDataSourceHandle &shutterOpen,
218 const HdDoubleDataSourceHandle &shutterClose,
219 const HdFloatDataSourceHandle &exposure,
220 const HdBoolDataSourceHandle &focusOn,
221 const HdFloatDataSourceHandle &dofAspect,
222 const HdContainerDataSourceHandle &splitDiopter,
223 const HdContainerDataSourceHandle &lensDistortion
237 const HdTokenDataSourceHandle &projection);
239 Builder &SetHorizontalAperture(
240 const HdFloatDataSourceHandle &horizontalAperture);
243 const HdFloatDataSourceHandle &verticalAperture);
245 Builder &SetHorizontalApertureOffset(
246 const HdFloatDataSourceHandle &horizontalApertureOffset);
248 Builder &SetVerticalApertureOffset(
249 const HdFloatDataSourceHandle &verticalApertureOffset);
252 const HdFloatDataSourceHandle &focalLength);
255 const HdVec2fDataSourceHandle &clippingRange);
258 const HdVec4dArrayDataSourceHandle &clippingPlanes);
261 const HdFloatDataSourceHandle &fStop);
264 const HdFloatDataSourceHandle &focusDistance);
267 const HdDoubleDataSourceHandle &shutterOpen);
270 const HdDoubleDataSourceHandle &shutterClose);
273 const HdFloatDataSourceHandle &exposure);
276 const HdBoolDataSourceHandle &focusOn);
279 const HdFloatDataSourceHandle &dofAspect);
282 const HdContainerDataSourceHandle &splitDiopter);
285 const HdContainerDataSourceHandle &lensDistortion);
289 HdContainerDataSourceHandle
Build();
292 HdTokenDataSourceHandle _projection;
293 HdFloatDataSourceHandle _horizontalAperture;
294 HdFloatDataSourceHandle _verticalAperture;
295 HdFloatDataSourceHandle _horizontalApertureOffset;
296 HdFloatDataSourceHandle _verticalApertureOffset;
297 HdFloatDataSourceHandle _focalLength;
298 HdVec2fDataSourceHandle _clippingRange;
299 HdVec4dArrayDataSourceHandle _clippingPlanes;
300 HdFloatDataSourceHandle _fStop;
301 HdFloatDataSourceHandle _focusDistance;
302 HdDoubleDataSourceHandle _shutterOpen;
303 HdDoubleDataSourceHandle _shutterClose;
304 HdFloatDataSourceHandle _exposure;
305 HdBoolDataSourceHandle _focusOn;
306 HdFloatDataSourceHandle _dofAspect;
307 HdContainerDataSourceHandle _splitDiopter;
308 HdContainerDataSourceHandle _lensDistortion;
319 static HdTokenDataSourceHandle BuildProjectionDataSource(
325PXR_NAMESPACE_CLOSE_SCOPE
Utility class for setting sparse sets of child data source fields to be filled as arguments into Buil...
HD_API HdContainerDataSourceHandle Build()
Returns a container data source containing the members set thus far.
Represents an object that can identify the location of a data source.
Schema classes represent a structured view of the inherently unstructured container data source passe...
Token for efficient comparison, assignment, and hashing of known strings.
#define TF_DECLARE_PUBLIC_TOKENS(...)
Macro to define public tokens.