18#ifndef PXR_IMAGING_HD_CAMERA_SCHEMA_H
19#define PXR_IMAGING_HD_CAMERA_SCHEMA_H
23#include "pxr/imaging/hd/api.h"
24#include "pxr/imaging/hd/schemaTypeDefs.h"
28#include "pxr/imaging/hd/schema.h"
33PXR_NAMESPACE_OPEN_SCOPE
38#define HD_CAMERA_SCHEMA_TOKENS \
41 (horizontalAperture) \
43 (horizontalApertureOffset) \
44 (verticalApertureOffset) \
56 (exposureResponsivity) \
57 (linearExposureScale) \
62 (namespacedProperties) \
67 HD_CAMERA_SCHEMA_TOKENS);
72class HdCameraSchema :
public HdSchema
78 HdCameraSchema(HdContainerDataSourceHandle container)
87 static HdCameraSchema GetFromParent(
88 const HdContainerDataSourceHandle &fromParentContainer);
99 HdTokenDataSourceHandle GetProjection()
const;
102 HdFloatDataSourceHandle GetHorizontalAperture()
const;
105 HdFloatDataSourceHandle GetVerticalAperture()
const;
108 HdFloatDataSourceHandle GetHorizontalApertureOffset()
const;
111 HdFloatDataSourceHandle GetVerticalApertureOffset()
const;
114 HdFloatDataSourceHandle GetFocalLength()
const;
117 HdVec2fDataSourceHandle GetClippingRange()
const;
120 HdVec4dArrayDataSourceHandle GetClippingPlanes()
const;
123 HdFloatDataSourceHandle GetFStop()
const;
126 HdFloatDataSourceHandle GetFocusDistance()
const;
129 HdDoubleDataSourceHandle GetShutterOpen()
const;
132 HdDoubleDataSourceHandle GetShutterClose()
const;
135 HdFloatDataSourceHandle GetExposure()
const;
138 HdFloatDataSourceHandle GetExposureTime()
const;
141 HdFloatDataSourceHandle GetExposureIso()
const;
144 HdFloatDataSourceHandle GetExposureFStop()
const;
147 HdFloatDataSourceHandle GetExposureResponsivity()
const;
150 HdFloatDataSourceHandle GetLinearExposureScale()
const;
153 HdBoolDataSourceHandle GetFocusOn()
const;
156 HdFloatDataSourceHandle GetDofAspect()
const;
159 HdSplitDiopterSchema GetSplitDiopter()
const;
162 HdLensDistortionSchema GetLensDistortion()
const;
175 static const TfToken &GetSchemaToken();
241 static HdContainerDataSourceHandle
243 const HdTokenDataSourceHandle &projection,
244 const HdFloatDataSourceHandle &horizontalAperture,
245 const HdFloatDataSourceHandle &verticalAperture,
246 const HdFloatDataSourceHandle &horizontalApertureOffset,
247 const HdFloatDataSourceHandle &verticalApertureOffset,
248 const HdFloatDataSourceHandle &focalLength,
249 const HdVec2fDataSourceHandle &clippingRange,
250 const HdVec4dArrayDataSourceHandle &clippingPlanes,
251 const HdFloatDataSourceHandle &fStop,
252 const HdFloatDataSourceHandle &focusDistance,
253 const HdDoubleDataSourceHandle &shutterOpen,
254 const HdDoubleDataSourceHandle &shutterClose,
255 const HdFloatDataSourceHandle &exposure,
256 const HdFloatDataSourceHandle &exposureTime,
257 const HdFloatDataSourceHandle &exposureIso,
258 const HdFloatDataSourceHandle &exposureFStop,
259 const HdFloatDataSourceHandle &exposureResponsivity,
260 const HdFloatDataSourceHandle &linearExposureScale,
261 const HdBoolDataSourceHandle &focusOn,
262 const HdFloatDataSourceHandle &dofAspect,
263 const HdContainerDataSourceHandle &splitDiopter,
264 const HdContainerDataSourceHandle &lensDistortion,
265 const HdContainerDataSourceHandle &namespacedProperties
279 const HdTokenDataSourceHandle &projection);
281 Builder &SetHorizontalAperture(
282 const HdFloatDataSourceHandle &horizontalAperture);
285 const HdFloatDataSourceHandle &verticalAperture);
287 Builder &SetHorizontalApertureOffset(
288 const HdFloatDataSourceHandle &horizontalApertureOffset);
290 Builder &SetVerticalApertureOffset(
291 const HdFloatDataSourceHandle &verticalApertureOffset);
294 const HdFloatDataSourceHandle &focalLength);
297 const HdVec2fDataSourceHandle &clippingRange);
300 const HdVec4dArrayDataSourceHandle &clippingPlanes);
303 const HdFloatDataSourceHandle &fStop);
306 const HdFloatDataSourceHandle &focusDistance);
309 const HdDoubleDataSourceHandle &shutterOpen);
312 const HdDoubleDataSourceHandle &shutterClose);
315 const HdFloatDataSourceHandle &exposure);
318 const HdFloatDataSourceHandle &exposureTime);
321 const HdFloatDataSourceHandle &exposureIso);
324 const HdFloatDataSourceHandle &exposureFStop);
326 Builder &SetExposureResponsivity(
327 const HdFloatDataSourceHandle &exposureResponsivity);
329 Builder &SetLinearExposureScale(
330 const HdFloatDataSourceHandle &linearExposureScale);
333 const HdBoolDataSourceHandle &focusOn);
336 const HdFloatDataSourceHandle &dofAspect);
339 const HdContainerDataSourceHandle &splitDiopter);
342 const HdContainerDataSourceHandle &lensDistortion);
344 Builder &SetNamespacedProperties(
345 const HdContainerDataSourceHandle &namespacedProperties);
349 HdContainerDataSourceHandle
Build();
352 HdTokenDataSourceHandle _projection;
353 HdFloatDataSourceHandle _horizontalAperture;
354 HdFloatDataSourceHandle _verticalAperture;
355 HdFloatDataSourceHandle _horizontalApertureOffset;
356 HdFloatDataSourceHandle _verticalApertureOffset;
357 HdFloatDataSourceHandle _focalLength;
358 HdVec2fDataSourceHandle _clippingRange;
359 HdVec4dArrayDataSourceHandle _clippingPlanes;
360 HdFloatDataSourceHandle _fStop;
361 HdFloatDataSourceHandle _focusDistance;
362 HdDoubleDataSourceHandle _shutterOpen;
363 HdDoubleDataSourceHandle _shutterClose;
364 HdFloatDataSourceHandle _exposure;
365 HdFloatDataSourceHandle _exposureTime;
366 HdFloatDataSourceHandle _exposureIso;
367 HdFloatDataSourceHandle _exposureFStop;
368 HdFloatDataSourceHandle _exposureResponsivity;
369 HdFloatDataSourceHandle _linearExposureScale;
370 HdBoolDataSourceHandle _focusOn;
371 HdFloatDataSourceHandle _dofAspect;
372 HdContainerDataSourceHandle _splitDiopter;
373 HdContainerDataSourceHandle _lensDistortion;
374 HdContainerDataSourceHandle _namespacedProperties;
385 static HdTokenDataSourceHandle BuildProjectionDataSource(
391PXR_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.
Template class for a schema backed by a container whose children have arbitrary names but an expected...
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.