18#ifndef PXR_IMAGING_HD_CAMERA_SCHEMA_H
19#define PXR_IMAGING_HD_CAMERA_SCHEMA_H
23#include "pxr/imaging/hd/api.h"
25#include "pxr/imaging/hd/schemaTypeDefs.h"
29#include "pxr/imaging/hd/schema.h"
34PXR_NAMESPACE_OPEN_SCOPE
39#define HD_CAMERA_SCHEMA_TOKENS \
42 (horizontalAperture) \
44 (horizontalApertureOffset) \
45 (verticalApertureOffset) \
57 (exposureResponsivity) \
58 (linearExposureScale) \
63 (namespacedProperties) \
69 HD_CAMERA_SCHEMA_TOKENS);
76class HdCameraSchema :
public HdSchema
82 HdCameraSchema(HdContainerDataSourceHandle container)
91 static HdCameraSchema GetFromParent(
92 const HdContainerDataSourceHandle &fromParentContainer);
103 HdTokenDataSourceHandle GetProjection()
const;
106 HdFloatDataSourceHandle GetHorizontalAperture()
const;
109 HdFloatDataSourceHandle GetVerticalAperture()
const;
112 HdFloatDataSourceHandle GetHorizontalApertureOffset()
const;
115 HdFloatDataSourceHandle GetVerticalApertureOffset()
const;
118 HdFloatDataSourceHandle GetFocalLength()
const;
121 HdVec2fDataSourceHandle GetClippingRange()
const;
124 HdVec4dArrayDataSourceHandle GetClippingPlanes()
const;
127 HdFloatDataSourceHandle GetFStop()
const;
130 HdFloatDataSourceHandle GetFocusDistance()
const;
133 HdDoubleDataSourceHandle GetShutterOpen()
const;
136 HdDoubleDataSourceHandle GetShutterClose()
const;
139 HdFloatDataSourceHandle GetExposure()
const;
142 HdFloatDataSourceHandle GetExposureTime()
const;
145 HdFloatDataSourceHandle GetExposureIso()
const;
148 HdFloatDataSourceHandle GetExposureFStop()
const;
151 HdFloatDataSourceHandle GetExposureResponsivity()
const;
154 HdFloatDataSourceHandle GetLinearExposureScale()
const;
157 HdBoolDataSourceHandle GetFocusOn()
const;
160 HdFloatDataSourceHandle GetDofAspect()
const;
163 HdSplitDiopterSchema GetSplitDiopter()
const;
166 HdLensDistortionSchema GetLensDistortion()
const;
182 static const TfToken &GetSchemaToken();
252 static HdContainerDataSourceHandle
254 const HdTokenDataSourceHandle &projection,
255 const HdFloatDataSourceHandle &horizontalAperture,
256 const HdFloatDataSourceHandle &verticalAperture,
257 const HdFloatDataSourceHandle &horizontalApertureOffset,
258 const HdFloatDataSourceHandle &verticalApertureOffset,
259 const HdFloatDataSourceHandle &focalLength,
260 const HdVec2fDataSourceHandle &clippingRange,
261 const HdVec4dArrayDataSourceHandle &clippingPlanes,
262 const HdFloatDataSourceHandle &fStop,
263 const HdFloatDataSourceHandle &focusDistance,
264 const HdDoubleDataSourceHandle &shutterOpen,
265 const HdDoubleDataSourceHandle &shutterClose,
266 const HdFloatDataSourceHandle &exposure,
267 const HdFloatDataSourceHandle &exposureTime,
268 const HdFloatDataSourceHandle &exposureIso,
269 const HdFloatDataSourceHandle &exposureFStop,
270 const HdFloatDataSourceHandle &exposureResponsivity,
271 const HdFloatDataSourceHandle &linearExposureScale,
272 const HdBoolDataSourceHandle &focusOn,
273 const HdFloatDataSourceHandle &dofAspect,
274 const HdContainerDataSourceHandle &splitDiopter,
275 const HdContainerDataSourceHandle &lensDistortion,
276 const HdContainerDataSourceHandle &namespacedProperties,
277 const HdContainerDataSourceHandle &backPlate
291 const HdTokenDataSourceHandle &projection);
293 Builder &SetHorizontalAperture(
294 const HdFloatDataSourceHandle &horizontalAperture);
297 const HdFloatDataSourceHandle &verticalAperture);
299 Builder &SetHorizontalApertureOffset(
300 const HdFloatDataSourceHandle &horizontalApertureOffset);
302 Builder &SetVerticalApertureOffset(
303 const HdFloatDataSourceHandle &verticalApertureOffset);
306 const HdFloatDataSourceHandle &focalLength);
309 const HdVec2fDataSourceHandle &clippingRange);
312 const HdVec4dArrayDataSourceHandle &clippingPlanes);
315 const HdFloatDataSourceHandle &fStop);
318 const HdFloatDataSourceHandle &focusDistance);
321 const HdDoubleDataSourceHandle &shutterOpen);
324 const HdDoubleDataSourceHandle &shutterClose);
327 const HdFloatDataSourceHandle &exposure);
330 const HdFloatDataSourceHandle &exposureTime);
333 const HdFloatDataSourceHandle &exposureIso);
336 const HdFloatDataSourceHandle &exposureFStop);
338 Builder &SetExposureResponsivity(
339 const HdFloatDataSourceHandle &exposureResponsivity);
341 Builder &SetLinearExposureScale(
342 const HdFloatDataSourceHandle &linearExposureScale);
345 const HdBoolDataSourceHandle &focusOn);
348 const HdFloatDataSourceHandle &dofAspect);
351 const HdContainerDataSourceHandle &splitDiopter);
354 const HdContainerDataSourceHandle &lensDistortion);
356 Builder &SetNamespacedProperties(
357 const HdContainerDataSourceHandle &namespacedProperties);
360 const HdContainerDataSourceHandle &backPlate);
364 HdContainerDataSourceHandle
Build();
367 HdTokenDataSourceHandle _projection;
368 HdFloatDataSourceHandle _horizontalAperture;
369 HdFloatDataSourceHandle _verticalAperture;
370 HdFloatDataSourceHandle _horizontalApertureOffset;
371 HdFloatDataSourceHandle _verticalApertureOffset;
372 HdFloatDataSourceHandle _focalLength;
373 HdVec2fDataSourceHandle _clippingRange;
374 HdVec4dArrayDataSourceHandle _clippingPlanes;
375 HdFloatDataSourceHandle _fStop;
376 HdFloatDataSourceHandle _focusDistance;
377 HdDoubleDataSourceHandle _shutterOpen;
378 HdDoubleDataSourceHandle _shutterClose;
379 HdFloatDataSourceHandle _exposure;
380 HdFloatDataSourceHandle _exposureTime;
381 HdFloatDataSourceHandle _exposureIso;
382 HdFloatDataSourceHandle _exposureFStop;
383 HdFloatDataSourceHandle _exposureResponsivity;
384 HdFloatDataSourceHandle _linearExposureScale;
385 HdBoolDataSourceHandle _focusOn;
386 HdFloatDataSourceHandle _dofAspect;
387 HdContainerDataSourceHandle _splitDiopter;
388 HdContainerDataSourceHandle _lensDistortion;
389 HdContainerDataSourceHandle _namespacedProperties;
390 HdContainerDataSourceHandle _backPlate;
401 static HdTokenDataSourceHandle BuildProjectionDataSource(
407PXR_NAMESPACE_CLOSE_SCOPE
Helper class for storing intermediate results when building a variable expression.
HD_API HdContainerDataSourceHandle Build()
Returns a container data source containing the members set thus far.
Template class for a schema backed by a container whose children have arbitrary names but an expected...
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.