35#ifndef PXR_IMAGING_HD_CAMERA_SCHEMA_H
36#define PXR_IMAGING_HD_CAMERA_SCHEMA_H
40#include "pxr/imaging/hd/api.h"
41#include "pxr/imaging/hd/schemaTypeDefs.h"
45#include "pxr/imaging/hd/schema.h"
50PXR_NAMESPACE_OPEN_SCOPE
55#define HD_CAMERA_SCHEMA_TOKENS \
58 (horizontalAperture) \
60 (horizontalApertureOffset) \
61 (verticalApertureOffset) \
74 (namespacedProperties) \
79 HD_CAMERA_SCHEMA_TOKENS);
84class HdCameraSchema :
public HdSchema
90 HdCameraSchema(HdContainerDataSourceHandle container)
99 static HdCameraSchema GetFromParent(
100 const HdContainerDataSourceHandle &fromParentContainer);
111 HdTokenDataSourceHandle GetProjection()
const;
114 HdFloatDataSourceHandle GetHorizontalAperture()
const;
117 HdFloatDataSourceHandle GetVerticalAperture()
const;
120 HdFloatDataSourceHandle GetHorizontalApertureOffset()
const;
123 HdFloatDataSourceHandle GetVerticalApertureOffset()
const;
126 HdFloatDataSourceHandle GetFocalLength()
const;
129 HdVec2fDataSourceHandle GetClippingRange()
const;
132 HdVec4dArrayDataSourceHandle GetClippingPlanes()
const;
135 HdFloatDataSourceHandle GetFStop()
const;
138 HdFloatDataSourceHandle GetFocusDistance()
const;
141 HdDoubleDataSourceHandle GetShutterOpen()
const;
144 HdDoubleDataSourceHandle GetShutterClose()
const;
147 HdFloatDataSourceHandle GetExposure()
const;
150 HdBoolDataSourceHandle GetFocusOn()
const;
153 HdFloatDataSourceHandle GetDofAspect()
const;
156 HdSplitDiopterSchema GetSplitDiopter()
const;
159 HdLensDistortionSchema GetLensDistortion()
const;
172 static const TfToken &GetSchemaToken();
214 static HdContainerDataSourceHandle
216 const HdTokenDataSourceHandle &projection,
217 const HdFloatDataSourceHandle &horizontalAperture,
218 const HdFloatDataSourceHandle &verticalAperture,
219 const HdFloatDataSourceHandle &horizontalApertureOffset,
220 const HdFloatDataSourceHandle &verticalApertureOffset,
221 const HdFloatDataSourceHandle &focalLength,
222 const HdVec2fDataSourceHandle &clippingRange,
223 const HdVec4dArrayDataSourceHandle &clippingPlanes,
224 const HdFloatDataSourceHandle &fStop,
225 const HdFloatDataSourceHandle &focusDistance,
226 const HdDoubleDataSourceHandle &shutterOpen,
227 const HdDoubleDataSourceHandle &shutterClose,
228 const HdFloatDataSourceHandle &exposure,
229 const HdBoolDataSourceHandle &focusOn,
230 const HdFloatDataSourceHandle &dofAspect,
231 const HdContainerDataSourceHandle &splitDiopter,
232 const HdContainerDataSourceHandle &lensDistortion,
233 const HdContainerDataSourceHandle &namespacedProperties
247 const HdTokenDataSourceHandle &projection);
249 Builder &SetHorizontalAperture(
250 const HdFloatDataSourceHandle &horizontalAperture);
253 const HdFloatDataSourceHandle &verticalAperture);
255 Builder &SetHorizontalApertureOffset(
256 const HdFloatDataSourceHandle &horizontalApertureOffset);
258 Builder &SetVerticalApertureOffset(
259 const HdFloatDataSourceHandle &verticalApertureOffset);
262 const HdFloatDataSourceHandle &focalLength);
265 const HdVec2fDataSourceHandle &clippingRange);
268 const HdVec4dArrayDataSourceHandle &clippingPlanes);
271 const HdFloatDataSourceHandle &fStop);
274 const HdFloatDataSourceHandle &focusDistance);
277 const HdDoubleDataSourceHandle &shutterOpen);
280 const HdDoubleDataSourceHandle &shutterClose);
283 const HdFloatDataSourceHandle &exposure);
286 const HdBoolDataSourceHandle &focusOn);
289 const HdFloatDataSourceHandle &dofAspect);
292 const HdContainerDataSourceHandle &splitDiopter);
295 const HdContainerDataSourceHandle &lensDistortion);
297 Builder &SetNamespacedProperties(
298 const HdContainerDataSourceHandle &namespacedProperties);
302 HdContainerDataSourceHandle
Build();
305 HdTokenDataSourceHandle _projection;
306 HdFloatDataSourceHandle _horizontalAperture;
307 HdFloatDataSourceHandle _verticalAperture;
308 HdFloatDataSourceHandle _horizontalApertureOffset;
309 HdFloatDataSourceHandle _verticalApertureOffset;
310 HdFloatDataSourceHandle _focalLength;
311 HdVec2fDataSourceHandle _clippingRange;
312 HdVec4dArrayDataSourceHandle _clippingPlanes;
313 HdFloatDataSourceHandle _fStop;
314 HdFloatDataSourceHandle _focusDistance;
315 HdDoubleDataSourceHandle _shutterOpen;
316 HdDoubleDataSourceHandle _shutterClose;
317 HdFloatDataSourceHandle _exposure;
318 HdBoolDataSourceHandle _focusOn;
319 HdFloatDataSourceHandle _dofAspect;
320 HdContainerDataSourceHandle _splitDiopter;
321 HdContainerDataSourceHandle _lensDistortion;
322 HdContainerDataSourceHandle _namespacedProperties;
333 static HdTokenDataSourceHandle BuildProjectionDataSource(
339PXR_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.