1/****************************************************************************************
2
3 Copyright (C) 2015 Autodesk, Inc.
4 All rights reserved.
5
6 Use of this software is subject to the terms of the Autodesk license agreement
7 provided at the time of installation or download, or which otherwise accompanies
8 this software in either electronic or hard copy form.
9
10****************************************************************************************/
11
12//! \file fbxcamera.h
13#ifndef _FBXSDK_SCENE_GEOMETRY_CAMERA_H_
14#define _FBXSDK_SCENE_GEOMETRY_CAMERA_H_
15
16#include <fbxsdk/fbxsdk_def.h>
17
18#include <fbxsdk/core/base/fbxstring.h>
19#include <fbxsdk/core/math/fbxvector4.h>
20#include <fbxsdk/scene/geometry/fbxnodeattribute.h>
21
22#include <fbxsdk/fbxsdk_nsbegin.h>
23
24class FbxTexture;
25
26/** This node attribute contains methods for accessing the properties of a camera.
27 * \nosubgrouping
28 * A camera can be set to automatically point at and follow
29 * another node in the hierarchy. To do this, the focus source
30 * must be set to EFocusDistanceSource::eFocusSrcCameraInterest and the
31 * followed node associated with function FbxNode::SetTarget().
32 * \see FbxCameraStereo and FbxCameraSwitcher.
33 */
34class FBXSDK_DLL FbxCamera : public FbxNodeAttribute
35{
36 FBXSDK_OBJECT_DECLARE(FbxCamera,FbxNodeAttribute);
37
38public:
39 //! Return the type of node attribute which is EType::eCamera.
40 virtual FbxNodeAttribute::EType GetAttributeType() const;
41
42 //! Reset the camera to default values.
43 void Reset();
44
45 /** Camera projection types.
46 * \remarks By default, the camera projection type is set to ePerspective.
47 * If the camera projection type is set to eOrthogonal, the following options
48 * are not relevant:
49 * - aperture format
50 * - aperture mode
51 * - aperture width and height
52 * - angle of view/focal length
53 * - squeeze ratio
54 */
55 enum EProjectionType
56 {
57 ePerspective, //!< Perspective projection.
58 eOrthogonal //!< Orthogonal projection.
59 };
60
61 /**
62 * \name Functions to handle the viewing area.
63 */
64 //@{
65 /** Camera formats identifiers.
66 * \remarks This is designed as the same as in MotionBuilder.
67 * \see SetFormat, GetFormat and CameraFormat.
68 */
69 enum EFormat
70 {
71 eCustomFormat, //!< The format's width, height, or pixel ratio has been user-specified, and matches none of the other picture formats.
72 eD1NTSC, //!< Standard format for D1 NTSC (720 by 486).
73 eNTSC, //!< NTSC standard for North American television broadcast (640 by 480).
74 ePAL, //!< PAL standard for European television broadcast (570 by 486).
75 eD1PAL, //!< Standard format for D1 PAL (720 by 576).
76 eHD, //!< HD format(1920 by 1080).
77 e640x480, //!< Recommended computer screen format (640 by 480).
78 e320x200, //!< Recommended format for World Wide Web production(320 by 200).
79 e320x240, //!< Alternate World Wide Web format(320 by 240).
80 e128x128, //!< Format(128 by 128)
81 eFullscreen //!< Full computer screen format (1280 by 1024 pixels).
82 };
83
84 /** Set the camera format.
85 * \param pFormat The camera format identifier.
86 * \remarks Changing the camera format sets the camera aspect
87 * ratio mode to eFixedResolution and modifies the aspect width
88 * size, height size, and pixel ratio accordingly.
89 */
90 void SetFormat(EFormat pFormat);
91
92 /** Get the camera format.
93 * \return The current camera format identifier.
94 */
95 EFormat GetFormat() const;
96
97 /** Camera's aspect ratio modes.
98 * \see SetAspect, GetAspectRatioMode, AspectWidth, AspectHeight and AspectRatioMode.
99 */
100 enum EAspectRatioMode
101 {
102 eWindowSize, //!< Both width and height values aren't relevant.
103 eFixedRatio, //!< The height value is set to 1.0 and the width value is relative to the height value.
104 eFixedResolution, //!< Both width and height values are in pixels.
105 eFixedWidth, //!< The width value is in pixels and the height value is relative to the width value.
106 eFixedHeight //!< The height value is in pixels and the width value is relative to the height value.
107 };
108
109 /** Set the camera's aspect ratio mode.
110 * \param pRatioMode Camera's aspect ratio mode.
111 * \param pWidth Camera's aspect width, must be a positive value.
112 * \param pHeight Camera's aspect height, must be a positive value.
113 * \remarks Changing the camera aspect sets the camera format to eCustomFormat.
114 * \see EAspectRatioMode.
115 */
116 void SetAspect(EAspectRatioMode pRatioMode, double pWidth, double pHeight);
117
118 /** Get the camera aspect ratio mode.
119 * \return The current aspect ratio mode.
120 */
121 EAspectRatioMode GetAspectRatioMode() const;
122
123 /** Set the pixel ratio.
124 * \param pRatio The pixel ratio value.
125 * \remarks The value must be a positive number. Comprised between 0.05 and 20.0. Values
126 * outside these limits will be clamped. Changing the pixel ratio sets the camera format to eCustomFormat.
127 */
128 void SetPixelRatio(double pRatio);
129
130 /** Get the pixel ratio.
131 * \return The current camera's pixel ratio value.
132 */
133 double GetPixelRatio() const;
134
135 /** Set the near plane distance from the camera.
136 * The near plane is the minimum distance to render a scene on the camera display.
137 * A synonym for the near plane is "front clipping plane".
138 * \param pDistance The near plane distance value.
139 * \remarks The near plane value is limited to the range [0.001, 600000.0] and
140 * must be inferior to the far plane value.
141 */
142 void SetNearPlane(double pDistance);
143
144 /** Get the near plane distance from the camera.
145 * The near plane is the minimum distance to render a scene on the camera display.
146 * A synonym for the near plane is "front clipping plane".
147 * \return The near plane value.
148 */
149 double GetNearPlane() const;
150
151 /** Set the far plane distance from camera.
152 * The far plane is the maximum distance to render a scene on the camera display.
153 * A synonym for the far plane is "back clipping plane".
154 * \param pDistance The far plane distance value.
155 * \remarks The far plane value is limited to the range [0.001, 600000.0] and
156 * must be superior to the near plane value.
157 */
158 void SetFarPlane(double pDistance);
159
160 /** Get the far plane distance from camera.
161 * The far plane is the maximum distance to render a scene on the camera display.
162 * A synonym for the far plane is "back clipping plane".
163 * \return The far plane value.
164 */
165 double GetFarPlane() const;
166
167 //@}
168
169 /**
170 * \name Aperture and Film Functions.
171 * In photography, the aperture is the size of hole allowing light from the lens to get through to the film.
172 * The aperture mode determines which values drive the camera aperture. When the aperture mode is \e eHorizAndVert,
173 * \e eHorizontal or \e eVertical, the field of view is used. When the aperture mode is \e eFocalLength, the focal length is used.
174 *
175 * It is possible to convert the aperture mode into field of view or vice versa using functions ComputeFieldOfView and
176 * ComputeFocalLength. These functions use the camera aperture width and height for their computation.
177 */
178 //@{
179
180 /** Camera's aperture formats.
181 * \remarks This is designed as the same as in MotionBuilder.
182 * \see SetApertureFormat, GetApertureFormat, FilmFormat, FilmWidth, FilmHeight, FilmSqueezeRatio and FilmAspectRatio.
183 */
184 enum EApertureFormat
185 {
186 eCustomAperture, //!< The film size, squeeze ratio and aspect ratio has been user-specified, and matches none of the other aperture formats.
187 e16mmTheatrical, //!< Film Size: 0.404, 0.295 inches. Film Squeeze Ratio: 1.0. Film Aspect Ratio: 1.369.
188 eSuper16mm, //!< Film Size: 0.493, 0.292 inches. Film Squeeze Ratio: 1.0. Film Aspect Ratio: 1.688.
189 e35mmAcademy, //!< Film Size: 0.864, 0.630 inches. Film Squeeze Ratio: 1.0. Film Aspect Ratio: 1.371.
190 e35mmTVProjection, //!< Film Size: 0.816, 0.612 inches. Film Squeeze Ratio: 1.0. Film Aspect Ratio: 1.333.
191 e35mmFullAperture, //!< Film Size: 0.980, 0.735 inches. Film Squeeze Ratio: 1.0. Film Aspect Ratio: 1.333.
192 e35mm185Projection, //!< Film Size: 0.825, 0.446 inches. Film Squeeze Ratio: 1.0. Film Aspect Ratio: 1.850.
193 e35mmAnamorphic, //!< Film Size: 0.864, 0.732 inches. Film Squeeze Ratio: 2.0. Film Aspect Ratio:1.180.
194 e70mmProjection, //!< Film Size: 2.066, 0.906 inches. Film Squeeze Ratio: 1.0. Film Aspect Ratio: 2.280.
195 eVistaVision, //!< Film Size: 1.485, 0.991 inches. Film Squeeze Ratio: 1.0. Film Aspect Ratio: 1.498.
196 eDynaVision, //!< Film Size: 2.080, 1.480 inches. Film Squeeze Ratio: 1.0. Film Aspect Ratio: 1.405.
197 eIMAX //!< Film Size: 2.772, 2.072 inches. Film Squeeze Ratio: 1.0. Film Aspect Ratio: 1.338.
198 };
199
200 /** Set the camera aperture format.
201 * \param pFormat The camera aperture format identifier.
202 * \remarks Changing the aperture format modifies the aperture width, height, and squeeze ratio accordingly.
203 */
204 void SetApertureFormat(EApertureFormat pFormat);
205
206 /** Get the camera aperture format.
207 * \return The camera's current aperture format identifier.
208 */
209 EApertureFormat GetApertureFormat() const;
210
211 /** Camera aperture modes.
212 * The aperture mode determines which values drive the camera aperture.
213 * If the aperture mode is \e eHorizAndVert, \e eHorizontal, or \e eVertical, then the field of view is used.
214 * If the aperture mode is \e eFocalLength, then the focal length is used.
215 */
216 enum EApertureMode
217 {
218 eHorizAndVert, //!< Set the angle values for both the horizontal and vertical settings.
219 eHorizontal, //!< Set only the horizontal angle.
220 eVertical, //!< Set only the vertical angle.
221 eFocalLength //!< Use focal length directly.
222 };
223
224 /** Set the camera aperture mode.
225 * \param pMode The camera aperture mode identifier.
226 */
227 void SetApertureMode(EApertureMode pMode);
228
229 /** Get the camera aperture mode.
230 * \return The camera's current aperture mode identifier.
231 */
232 EApertureMode GetApertureMode() const;
233
234 /** Set the camera aperture width in inches.
235 * \param pWidth The aperture width value.
236 * \remarks Must be a positive value. The minimum accepted value is 0.0001.
237 * Changing the aperture width sets the camera aperture format to eCustomFormat.
238 */
239 void SetApertureWidth(double pWidth);
240
241 /** Get the camera aperture width in inches.
242 * \return The camera's current aperture width value in inches.
243 */
244 double GetApertureWidth() const;
245
246 /** Set the camera aperture height in inches.
247 * \param pHeight The aperture height value.
248 * \remarks Must be a positive value. The minimum accepted value is 0.0001.
249 * Changing the aperture height sets the camera aperture format to eCustomFormat.
250 */
251 void SetApertureHeight(double pHeight);
252
253 /** Get the camera aperture height in inches.
254 * \return The camera's current aperture height value in inches.
255 */
256 double GetApertureHeight() const;
257
258 /** Set the squeeze ratio.
259 * \param pRatio The squeeze ratio value.
260 * \remarks Must be a positive value. The minimum accepted value is 0.0001.
261 * Changing the squeeze ratio sets the camera aperture format to eCustomFormat.
262 */
263 void SetSqueezeRatio(double pRatio);
264
265 /** Get the camera squeeze ratio.
266 * \return The camera's current squeeze ratio value.
267 */
268 double GetSqueezeRatio() const;
269
270 /** Camera's gate fit modes.
271 * There are two gates for a camera, film gate and resolution gate.
272 * Film gate is a border indicating the area of the camera's view as a real-world camera records on film.
273 * The dimensions of the film gate represent the dimensions of the camera aperture.
274 * But the film gate does not represent the render region.
275 * It is the resolution gate that represents the rendering resolution.
276 * The gate fit mode controls the size of the resolution gate relative to the film gate.
277 */
278 enum EGateFit
279 {
280 eFitNone, //!< No resolution gate fit.
281 eFitVertical, //!< Fit the resolution gate vertically within the film gate.
282 eFitHorizontal, //!< Fit the resolution gate horizontally within the film gate.
283 eFitFill, //!< Fit the resolution gate within the film gate.
284 eFitOverscan, //!< Fit the film gate within the resolution gate.
285 eFitStretch //!< Fit the resolution gate to the film gate.
286 };
287
288 /** Compute the angle of view based on the given focal length, the aperture width, and aperture height.
289 * \param pFocalLength The focal length in millimeters.
290 * \return The computed angle of view in degrees.
291 * \remark If aperture mode is not vertical, horizontal is assumed.
292 */
293 double ComputeFieldOfView(double pFocalLength) const;
294
295 /** Compute the focal length based on the given angle of view, the aperture width, and aperture height.
296 * \param pAngleOfView The angle of view in degrees.
297 * \return The computed focal length in millimeters.
298 * \remark If aperture mode is not vertical, horizontal is assumed.
299 */
300 double ComputeFocalLength(double pAngleOfView) const;
301
302 /** Specifies how the roll is applied with respect to the pivot value.
303 */
304 enum EFilmRollOrder
305 {
306 eRotateFirst, //!< The film back is first rotated then translated by the pivot point value.
307 eTranslateFirst //!< The film back is first translated then rotated by the film roll value.
308 };
309
310 //@}
311
312 /**
313 * \name Functions to handle BackPlane/FrontPlane and Plate.
314 *
315 * In the FbxSdk terminology, the Back/Front plane is the support of the plate. And the plate is
316 * the support of the texture used for backgrounds/foregrounds. Functions and properties
317 * identified by the "Plate" name are affecting the display of the texture on the plate.
318 * The functions and properties identified with the "Back/FrontPlane" are affecting the plate.
319 *
320 * Typically a client application would place the BackPlate a small distance in front of the
321 * FarPlane and the FrontPlate just behind the NearPlane to avoid them to be hidden by the clipping.
322 * Unless otherwise noted, there are no restrictions on the values stored by the camera object
323 * therefore it is the responsibility of the client application to process the information in a
324 * meaningful way and to maintain consistency between the different properties relationships.
325 */
326 //@{
327
328 /** Set the associated background image file.
329 * \param pFileName The path of the background image file.
330 * \remarks The background image file name must be valid.
331 * \remarks This method is still provided just for legacy files (Fbx version 5.0 and earlier)
332 * and must not be used in any other cases.
333 */
334 void SetBackgroundFileName(const char* pFileName);
335
336 /** Get the background image file name.
337 * \return Pointer to the background filename string or \c NULL if not set.
338 * \remarks This method is still provided just for legacy files (Fbx version 5.0 and earlier)
339 * and must not be used in any other cases.
340 */
341 const char* GetBackgroundFileName() const;
342
343 /** Set the media name associated to the background image file.
344 * \param pFileName The media name of the background image file.
345 * \remarks The media name is a unique name used to identify the background image file.
346 * \remarks This method is still provided just for legacy files (Fbx version 5.0 and earlier)
347 * and must not be used in any other cases.
348 */
349 void SetBackgroundMediaName(const char* pFileName);
350
351 /** Get the media name associated to the background image file.
352 * \return Pointer to the media name string or \c NULL if not set.
353 * \remarks This method is still provided just for legacy files (Fbx version 5.0 and earlier)
354 * and must not be used in any other cases.
355 */
356 const char* GetBackgroundMediaName() const;
357
358 /** Set the associated foreground image file.
359 * \param pFileName The path of the foreground image file.
360 * \remarks The foreground image file name must be valid.
361 * \remarks This method is still provided just for legacy files (Fbx version 5.0 and earlier)
362 * and must not be used in any other cases.
363 */
364 void SetForegroundFileName(const char* pFileName);
365
366 /** Get the foreground image file name.
367 * \return Pointer to the foreground filename string or \c NULL if not set.
368 * \remarks This method is still provided just for legacy files (Fbx version 5.0 and earlier)
369 * and must not be used in any other cases.
370 */
371 const char* GetForegroundFileName() const;
372
373 /** Set the media name associated to the foreground image file.
374 * \param pFileName The media name of the foreground image file.
375 * \remarks The media name is a unique name used to identify the foreground image file.
376 * \remarks This method is still provided just for legacy files (Fbx version 5.0 and earlier)
377 * and must not be used in any other cases.
378 */
379 void SetForegroundMediaName(const char* pFileName);
380
381 /** Get the media name associated to the foreground image file.
382 * \return Pointer to the media name string or \c NULL if not set.
383 * \remarks This method is still provided just for legacy files (Fbx version 5.0 and earlier)
384 * and must not be used in any other cases.
385 */
386 const char* GetForegroundMediaName() const;
387
388
389 /** Image plate drawing modes.
390 */
391 enum EPlateDrawingMode
392 {
393 ePlateBackground, //!< Image is drawn behind models.
394 ePlateForeground, //!< Image is drawn in front of models based on alpha channel.
395 ePlateBackAndFront //!< Image is drawn behind and in front of models depending on alpha channel.
396 };
397
398 /** Set front plate matte threshold.
399 * \param pThreshold Threshold value on a range from 0.0 to 1.0.
400 * \remarks This option is only relevant if the image plate drawing mode is set to ePlateForeground or ePlateBackAndFront.
401 */
402 void SetBackgroundAlphaTreshold(double pThreshold);
403
404 /** Get front plate matte threshold.
405 * \return Threshold value on a range from 0.0 to 1.0.
406 * \remarks This option is only relevant if the image plate drawing mode is set to ePlateForeground or ePlateBackAndFront.
407 */
408 double GetBackgroundAlphaTreshold() const;
409
410 /** Change the back plate fit image flag.
411 * If this flag is on, scale the back plate image to fit on the back plane.
412 * \param pFitImage New value for the BackPlateFitImage property.
413 */
414 void SetBackPlateFitImage(bool pFitImage);
415
416 /** Get the current back plate image flag.
417 * If this flag is on, scale the back plate image to fit on the back plane.
418 * \return The value of the BackPlateFitImage property.
419 */
420 bool GetBackPlateFitImage() const;
421
422 /** Change the back plate crop flag.
423 * If this flag is on, crop the back plate image to fit on the back plane.
424 * If the image is smaller than the plane, this flag has no effect.
425 * \param pCrop New value for the BackPlateCrop property.
426 */
427 void SetBackPlateCrop(bool pCrop);
428
429 /** Get the current back plate crop flag.
430 * If this flag is on, crop the back plate image to fit on the back plane.
431 * If the image is smaller than the plane, this flag has no effect.
432 * \return The value of the BackPlateCrop property.
433 */
434 bool GetBackPlateCrop() const;
435
436 /** Change the back plate center flag.
437 * If this flag is on, center the back plate image on the back plane.
438 * \param pCenter New value for the BackPlateCenter property.
439 */
440 void SetBackPlateCenter(bool pCenter);
441
442 /** Get the current back plate center flag.
443 * If this flag is on, center the back plate image on the back plane.
444 * \return The value of the BackPlateCenter property.
445 */
446 bool GetBackPlateCenter() const;
447
448 /** Change the back plate keep ratio flag.
449 * If this flag is on, keep the aspect ratio of the back plate image.
450 * Turn on both the keep ration flag and the fit image flag to scale the back plate image proportionately.
451 * \param pKeepRatio New value for the BackPlateKeepRatio property.
452 */
453 void SetBackPlateKeepRatio(bool pKeepRatio);
454
455 /** Get the current back plate keep ratio flag.
456 * If this flag is on, keep the aspect ratio of the back plate image.
457 * Turn on both the keep ration flag and the fit image flag to scale the back plate image proportionately.
458 * \return The value of the BackPlateKeepRatio property.
459 */
460 bool GetBackPlateKeepRatio() const;
461
462 /** Enable or disable the display of the texture without the need to disconnect it from its plate.
463 * \param pEnable If \c true the texture is displayed, \c false otherwise.
464 * \remarks It is the responsibility of the client application to perform the required tasks according to the state
465 * of this flag.
466 */
467 void SetShowFrontPlate(bool pEnable);
468
469 /** Get the current state of the flag to display the front plate or not.
470 * \return \c true if show front plate is enabled, otherwise \c false.
471 * \remarks It is the responsibility of the client application to perform the required tasks according to the state
472 * of this flag.
473 */
474 bool GetShowFrontPlate() const;
475
476 /** Change the front plate fit image flag.
477 * If this flag is on, scale the front plate image to fit on the front plane.
478 * \param pFrontPlateFitImage New value for the FrontPlateFitImage property.
479 */
480 void SetFrontPlateFitImage(bool pFrontPlateFitImage);
481
482 /** Get the current front plate fit image flag.
483 * If this flag is on, scale the front plate image to fit on the front plane.
484 * \return The value of the BackPlateFitImage property.
485 */
486 bool GetFrontPlateFitImage() const;
487
488 /** Change the front plate crop flag.
489 * If this flag is on, crop the front plate image to fit on the front plane.
490 * If the image is smaller than the plane, this flag has no effect.
491 * \param pFrontPlateCrop New value for the FrontPlateCrop property.
492 */
493 void SetFrontPlateCrop(bool pFrontPlateCrop);
494
495 /** Get the current front plate crop flag.
496 * If this flag is on, crop the front plate image to fit on the front plane.
497 * If the image is smaller than the plane, this flag has no effect.
498 * \return The value of the FrontPlateCrop property.
499 */
500 bool GetFrontPlateCrop() const;
501
502 /** Change the front plate center flag.
503 * If this flag is on, center the front plate image on the front plane.
504 * \param pFrontPlateCenter New value for the FrontPlateCenter property.
505 */
506 void SetFrontPlateCenter(bool pFrontPlateCenter);
507
508 /** Get the current front plate center flag.
509 * If this flag is on, center the front plate image on the front plane.
510 * \return The value of the FrontPlateCenter property.
511 */
512 bool GetFrontPlateCenter() const;
513
514 /** Change the front plate keep ratio flag.
515 * If this flag is on, keep the aspect ratio of the front plate image.
516 * Turn on both the keep ration flag and the fit image flag to scale the front plate image proportionately.
517 * \param pFrontPlateKeepRatio New value for the FrontPlateKeepRatio property.
518 */
519 void SetFrontPlateKeepRatio(bool pFrontPlateKeepRatio);
520
521 /** Get the current front plate keep ratio flag.
522 * If this flag is on, keep the aspect ratio of the front plate image.
523 * Turn on both the keep ration flag and the fit image flag to scale the front plate image proportionately.
524 * \return The value of the FrontPlateKeepRatio property.
525 */
526 bool GetFrontPlateKeepRatio() const;
527
528 /** Set the front plate opacity value.
529 * \param pOpacity New value for the ForegroundOpacity property.
530 */
531 void SetForegroundOpacity(double pOpacity);
532
533 /** Get the front plate opacity value.
534 * \return The value of the ForegroundOpacity property.
535 */
536 double GetForegroundOpacity() const;
537
538 /** Attach the texture to the front plate.
539 * \param pTexture The pointer to the texture to attach.
540 */
541 void SetForegroundTexture(FbxTexture* pTexture);
542
543 /** Get the texture connected to the front plate.
544 * \return A pointer to the texture attached to front plate.
545 */
546 FbxTexture* GetForegroundTexture() const;
547
548 /** Front and BackPlane distance modes.
549 * \see SetBackPlaneDistanceMode and GetBackPlaneDistanceMode.
550 */
551 enum EFrontBackPlaneDistanceMode
552 {
553 eRelativeToInterest, //!< The back plane distance is measured in relation to the camera interest.
554 eRelativeToCamera //!< The back plane distance is measured in relation to the camera.
555 };
556
557 /** Set the back plane distance mode.
558 * \param pMode The back plane distance mode to set.
559 */
560 void SetBackPlaneDistanceMode(EFrontBackPlaneDistanceMode pMode);
561
562 /** Get the back plane distance mode.
563 * \return Return the back plane distance mode.
564 */
565 EFrontBackPlaneDistanceMode GetBackPlaneDistanceMode() const;
566
567 /** Set the front plane distance from the camera. The the absolute position of the plane must be calculated
568 * by taking into consideration of the FrontPlaneDistanceMode.
569 * \param pDistance The front plane distance value.
570 * \remarks It is the responsibility of the client application to ensure that this plane position is
571 * within the frustum boundaries.
572 */
573 void SetFrontPlaneDistance(double pDistance);
574
575 /** Get the front plane distance value.
576 * \return double The front plane distance value.
577 */
578 double GetFrontPlaneDistance() const;
579
580 /** Set the front plane distance mode.
581 * \param pMode The front plane distance mode to set.
582 */
583 void SetFrontPlaneDistanceMode(EFrontBackPlaneDistanceMode pMode);
584
585 /** Get the front plane distance mode flag.
586 * \return The front plane distance mode.
587 */
588 EFrontBackPlaneDistanceMode GetFrontPlaneDistanceMode() const;
589
590 /** Front/back plane display modes.
591 */
592 enum EFrontBackPlaneDisplayMode
593 {
594 ePlanesDisabled, //!< Disables the front/back plane whether a texture is being projected or not.
595 ePlanesAlways, //!< Always shows the front/back plane, even if no texture has been added.
596 ePlanesWhenMedia //!< Shows the front/back plane only if a texture has been added.
597 };
598
599 /** Set the front plane display mode. This mode can be used by the client application to
600 * decide under which circumstance the front plane should be drawn in the viewport.
601 * \param pMode The front/back plane display mode.
602 */
603 void SetViewFrustumFrontPlaneMode(EFrontBackPlaneDisplayMode pMode);
604
605 /** Get the front plane display mode.
606 * \return The front/back plane display mode.
607 */
608 EFrontBackPlaneDisplayMode GetViewFrustumFrontPlaneMode() const;
609
610 /** Set the back plane display mode. This mode can be used by the client application to
611 * decide under which circumstance the back plane should be drawn in the viewport.
612 * \param pMode The front/back plane display mode.
613 */
614 void SetViewFrustumBackPlaneMode(EFrontBackPlaneDisplayMode pMode);
615
616 /** Get the back plane display mode.
617 * \return The front/back plane display mode.
618 */
619 EFrontBackPlaneDisplayMode GetViewFrustumBackPlaneMode() const;
620
621 //@}
622
623 /**
624 * \name Camera View Functions
625 * It is the responsibility of the client application to perform the required tasks according to the state
626 * of the options that are either set or returned by these methods.
627 */
628 //@{
629
630 /** Change the camera interest visibility flag.
631 * \param pEnable Set to \c true if the camera interest is shown, \c false otherwise.
632 */
633 void SetViewCameraInterest(bool pEnable);
634
635 /** Get current visibility state of the camera interest.
636 * \return \c true if the camera interest is shown, or \c false if hidden.
637 */
638 bool GetViewCameraInterest() const;
639
640 /** Change the camera near and far planes visibility flag.
641 * \param pEnable Set to \c true if the near and far planes are shown, \c false otherwise.
642 */
643 void SetViewNearFarPlanes(bool pEnable);
644
645 /** Get current visibility state of the camera near and far planes.
646 * \return \c true if the near and far planes are shown, \c false otherwise.
647 */
648 bool GetViewNearFarPlanes() const;
649
650 /** Camera safe area display styles.
651 */
652 enum ESafeAreaStyle
653 {
654 eSafeAreaRound, //!< Rounded safe area.
655 eSafeAreaSquare //!< Square safe area.
656 };
657
658 //@}
659
660 /**
661 * \name Render Functions
662 * It is the responsibility of the client application to perform the required tasks according to the state
663 * of the options that are either set or returned by these methods.
664 */
665 //@{
666
667 /** Render options usage time.
668 */
669 enum ERenderOptionsUsageTime
670 {
671 eInteractive, //!< To render in real time.
672 eOnDemand //!< Only render when it is asked.
673 };
674
675 /** Anti-aliasing methods.
676 */
677 enum EAntialiasingMethod
678 {
679 eAAOversampling, //!< To do anti-aliasing by oversampling.
680 eAAHardware //!< To do anti-aliasing by hardware.
681 };
682
683 /** Oversampling types for anti-aliasing.
684 */
685 enum ESamplingType
686 {
687 eSamplingUniform, /*!< The Uniform method samples each pixel at the same location.
688 The pixel is divided into equal parts, and each part is sampled.
689 The number of samples determines the number of times the pixel is divided. */
690 eSamplingStochastic /*!< The Stochastic method randomly samples each pixel.
691 This produces an accurate color using a small number of samples. */
692 };
693
694 /** Camera focus sources, that is the focal point for the depth of field.
695 * \see FocusDistance.
696 */
697 enum EFocusDistanceSource
698 {
699 eFocusSrcCameraInterest, /*!< Base the depth of field on the camera interest. Models at the camera interest are in focus.
700 As you move toward or away from the camera interest, models become increasingly blurred. */
701 eFocusSpecificDistance //!< Base the depth of field on a point defined by a specific distance from the camera interest.
702 };
703
704 //@}
705
706 //! \name Utility Functions.
707 //@{
708 /** Evaluate the camera position (eye).
709 * \param pTime The time at which the camera should be evaluated.
710 * \return The camera position evaluated from property value and animation. */
711 FbxVector4 EvaluatePosition(const FbxTime& pTime=FBXSDK_TIME_ZERO) const;
712
713 /** Evaluate the camera target position (look at).
714 * \param pTime The time at which the camera should be evaluated.
715 * \return The camera target position evaluated from property value and animation. */
716 FbxVector4 EvaluateLookAtPosition(const FbxTime& pTime=FBXSDK_TIME_ZERO) const;
717
718 /** Evaluate the camera up direction, taking target up objects into consideration.
719 * \param pCameraPosition The camera current position. You can retrieve this with FbxCamera::EvaluatePosition().
720 * \param pLookAtPosition The camera target position. you can retrieve this with FbxCamera::EvaluateLookAtPosition().
721 * \param pTime The time at which the camera should be evaluated.
722 * \return The camera up direction vector based on provided information. */
723 FbxVector4 EvaluateUpDirection(const FbxVector4& pCameraPosition, const FbxVector4& pLookAtPosition, const FbxTime& pTime=FBXSDK_TIME_ZERO) const;
724
725 /** Compute the camera projection matrix.
726 * \param pWidth The width of the output frame.
727 * \param pHeight The height of the output frame.
728 * \param pVerticalFOV Calculate FOV vertically (based on height) if true or horizontally (based on width) if false (Note: Only applicable in perspective proj).
729 * \return The camera projection matrix, or the default identity matrix in case of wrong camera parameters. */
730 FbxMatrix ComputeProjectionMatrix(const int pWidth, const int pHeight, const bool pVerticalFOV = true) const;
731
732 /** Determine if the given bounding box is in the camera's view. The input points do not need to be ordered in any particular way.
733 * \param pWorldToScreen The world to screen transformation. Please refer to FbxCamera::ComputeWorldToScreen.
734 * \param pWorldToCamera The world to camera transformation. Inverse of the matrix returned from FbxAnimEvaluator::GetNodeGlobalTransform is suitable.
735 * Please refer to FbxScene::GetEvaluator and FbxAnimEvaluator::GetNodeGlobalTransform.
736 * \param pPoints 8 corners of the bounding box.
737 * \return \c true if any of the given points are in the camera's view, \c false otherwise. */
738 bool IsBoundingBoxInView(const FbxMatrix& pWorldToScreen, const FbxMatrix& pWorldToCamera, const FbxVector4 pPoints[8]) const;
739
740 /** Determine if the given 3d point is in the camera's view.
741 * \param pWorldToScreen The world to screen transformation. Please refer to FbxCamera::ComputeWorldToScreen.
742 * \param pWorldToCamera The world to camera transformation. Inverse of the matrix returned from FbxAnimEvaluator::GetNodeGlobalTransform is suitable.
743 * Please refer to FbxScene::GetEvaluator and FbxAnimEvaluator::GetNodeGlobalTransform.
744 * \param pPoint World-space point to test.
745 * \return \c true if the given point is in the camera's view, \c false otherwise. */
746 bool IsPointInView(const FbxMatrix& pWorldToScreen, const FbxMatrix& pWorldToCamera, const FbxVector4& pPoint) const;
747
748 /** Compute world space to screen space transformation matrix.
749 * \param pPixelHeight The pixel height of the output image.
750 * \param pPixelWidth The pixel height of the output image.
751 * \param pWorldToCamera The world to camera affine transformation matrix.
752 * \return The world to screen space matrix, or the identity matrix on error. */
753 FbxMatrix ComputeWorldToScreen(int pPixelWidth, int pPixelHeight, const FbxAMatrix& pWorldToCamera) const;
754
755 /** Compute screen space to world space ray direction.
756 * \param pX The horizontal screen coordinate.
757 * \param pY The vertical screen coordinate.
758 * \param pWidth The width of the viewport in pixels.
759 * \param pHeight The height of the viewport in pixels.
760 * \param pTime The time to use to evaluate the camera's view matrix.
761 * \return a normalized vector corresponding to the ray direction. */
762 FbxVector4 ComputeScreenToWorld(float pX, float pY, float pWidth, float pHeight, const FbxTime& pTime=FBXSDK_TIME_INFINITE) const;
763 //@}
764
765 //////////////////////////////////////////////////////////////////////////
766 //
767 // Properties
768 //
769 //////////////////////////////////////////////////////////////////////////
770
771 // -----------------------------------------------------------------------
772 // Geometrical
773 // -----------------------------------------------------------------------
774
775 /** This property handles the camera's position (XYZ coordinates).
776 *
777 * To access this property do: Position.Get().
778 * To set this property do: Position.Set(FbxDouble3).
779 *
780 * \remarks Default Value is (0.0, 0.0, 0.0).
781 */
782 FbxPropertyT<FbxDouble3> Position;
783
784 /** This property handles the camera's Up Vector (XYZ coordinates).
785 *
786 * To access this property do: UpVector.Get().
787 * To set this property do: UpVector.Set(FbxDouble3).
788 *
789 * \remarks Default Value is (0.0, 1.0, 0.0).
790 */
791 FbxPropertyT<FbxDouble3> UpVector;
792
793 /** This property handles the default point (XYZ coordinates) the camera is looking at.
794 *
795 * To access this property do: InterestPosition.Get().
796 * To set this property do: InterestPosition.Set(FbxDouble3).
797 *
798 * \remarks During the computations of the camera position
799 * and orientation, this property is overridden by the
800 * position of a valid target in the parent node.
801 *
802 * \remarks Default Value is (0.0, 0.0, 0.0).
803 */
804 FbxPropertyT<FbxDouble3> InterestPosition;
805
806 /** This property handles the camera roll angle in degrees.
807 *
808 * To access this property do: Roll.Get().
809 * To set this property do: Roll.Set(FbxDouble).
810 *
811 * Default value is 0.0.
812 */
813 FbxPropertyT<FbxDouble> Roll;
814
815 /** This property handles the camera optical center X, in pixels.
816 * It sets horizontal offset of the optical center.
817 * When the camera's aperture mode is set to \e eVertical, this property has no effect.
818 *
819 * To access this property do: OpticalCenterX.Get().
820 * To set this property do: OpticalCenterX.Set(FbxDouble).
821 *
822 * Default value is 0.0.
823 */
824 FbxPropertyT<FbxDouble> OpticalCenterX;
825
826 /** This property handles the camera optical center Y, in pixels.
827 * It sets the vertical offset of the optical center.
828 * When the camera's aperture mode is set to \e eHorizontal, this property has no effect.
829 *
830 * To access this property do: OpticalCenterY.Get().
831 * To set this property do: OpticalCenterY.Set(FbxDouble).
832 *
833 * Default value is 0.0.
834 */
835 FbxPropertyT<FbxDouble> OpticalCenterY;
836
837 /** This property handles the RGB values of the camera's background color.
838 *
839 * To access this property do: BackgroundColor.Get().
840 * To set this property do: BackgroundColor.Set(FbxDouble3).
841 *
842 * Default value is black (0, 0, 0)
843 */
844 FbxPropertyT<FbxDouble3> BackgroundColor;
845
846 /** When modeling 3D objects, you often need to review or evaluate your models during the creation process.
847 * You may create a camera with turn table animation to view your models in 360 or certain degrees.
848 * This property handles the camera's turn table angle in degrees.
849 *
850 * To access this property do: TurnTable.Get().
851 * To set this property do: TurnTable.Set(FbxDouble).
852 *
853 * Default value is 0.
854 */
855 FbxPropertyT<FbxDouble> TurnTable;
856
857 /** This property handles a flag that indicates if the camera displays the
858 * Turn Table icon or not.
859 *
860 * To access this property do: DisplayTurnTableIcon.Get().
861 * To set this property do: DisplayTurnTableIcon.Set(FbxBool).
862 *
863 * Default value is false (no display).
864 */
865 FbxPropertyT<FbxBool> DisplayTurnTableIcon;
866
867 // -----------------------------------------------------------------------
868 // Motion Blur
869 // -----------------------------------------------------------------------
870
871 /** This property handles a flag that indicates if the camera uses
872 * motion blur or not.
873 *
874 * To access this property do: UseMotionBlur.Get().
875 * To set this property do: UseMotionBlur.Set(FbxBool).
876 *
877 * Default value is false (do not use motion blur).
878 */
879 FbxPropertyT<FbxBool> UseMotionBlur;
880
881 /** This property handles a flag that indicates if the camera uses
882 * real time motion blur or not.
883 *
884 * To access this property do: UseRealTimeMotionBlur.Get().
885 * To set this property do: UseRealTimeMotionBlur.Set(FbxBool).
886 *
887 * Default value is false (use real time motion blur).
888 */
889 FbxPropertyT<FbxBool> UseRealTimeMotionBlur;
890
891 /** This property handles the camera's motion blur intensity (in pixels).
892 *
893 * To access this property do: MotionBlurIntensity.Get().
894 * To set this property do: MotionBlurIntensity.Set(FbxDouble).
895 *
896 * Default value is 1.0.
897 */
898 FbxPropertyT<FbxDouble> MotionBlurIntensity;
899
900 // -----------------------------------------------------------------------
901 // Optical
902 // -----------------------------------------------------------------------
903
904 /** This property handles the camera's aspect ratio mode.
905 *
906 * \remarks This property is read-only.
907 * \remarks Please use function SetAspect() if you want to change its value.
908 *
909 * Default value is eWindowSize.
910 *
911 */
912 FbxPropertyT<EAspectRatioMode> AspectRatioMode;
913
914 /** This property handles the camera's aspect width.
915 *
916 * \remarks This property is read-only.
917 * \remarks Please use function SetAspect() if you want to change its value.
918 *
919 * Default value is 320.
920 */
921 FbxPropertyT<FbxDouble> AspectWidth;
922
923 /** This property handles the camera's aspect height.
924 *
925 * \remarks This property is read-only.
926 * \remarks Please use function SetAspect() if you want to change its value.
927 *
928 * Default value is 200.
929 */
930 FbxPropertyT<FbxDouble> AspectHeight;
931
932 /** This property handles the pixel aspect ratio.
933 *
934 * \remarks This property is read-only.
935 * \remarks Please use function SetPixelRatio() if you want to change its value.
936 *
937 * Default value is 1.
938 * \remarks Value range is [0.050, 20.0].
939 */
940 FbxPropertyT<FbxDouble> PixelAspectRatio;
941
942 /** This property handles the aperture mode.
943 *
944 * To access this property do: ApertureMode.Get().
945 * To set this property do: ApertureMode.Set(EApertureMode).
946 *
947 * Default value is eVertical.
948 */
949 FbxPropertyT<EApertureMode> ApertureMode;
950
951 /** This property handles the gate fit mode.
952 * To control the size of the resolution gate relative to the film gate.
953 * If the resolution gate and the film gate have the same aspect ratio, then the property has no effect.
954 *
955 * To access this property do: GateFit.Get().
956 * To set this property do: GateFit.Set(EGateFit).
957 *
958 * Default value is eFitNone.
959 */
960 FbxPropertyT<EGateFit> GateFit;
961
962 /** This property handles the field of view in degrees.
963 *
964 * To access this property do: FieldOfView.Get().
965 * To set this property do: FieldOfView.Set(FbxDouble).
966 *
967 * \remarks This property has meaning only when
968 * property ApertureMode equals eHorizontal or eVertical.
969 *
970 * \remarks Default value is 40.
971 * \remarks Value range is [1.0, 179.0].
972 */
973 FbxPropertyT<FbxDouble> FieldOfView;
974
975 /** This property handles the X (horizontal) field of view in degrees.
976 *
977 * To access this property do: FieldOfViewX.Get().
978 * To set this property do: FieldOfViewX.Set(FbxDouble).
979 *
980 * \remarks This property has meaning only when
981 * property ApertureMode equals eHorizAndVert.
982 *
983 * Default value is 1.
984 * \remarks Value range is [1.0, 179.0].
985 */
986 FbxPropertyT<FbxDouble> FieldOfViewX;
987
988 /** This property handles the Y (vertical) field of view in degrees.
989 *
990 * To access this property do: FieldOfViewY.Get().
991 * To set this property do: FieldOfViewY.Set(FbxDouble).
992 *
993 * \remarks This property has meaning only when
994 * property ApertureMode equals eHorizAndVert.
995 *
996 * \remarks Default value is 1.
997 * \remarks Value range is [1.0, 179.0].
998 */
999 FbxPropertyT<FbxDouble> FieldOfViewY;
1000
1001 /** This property handles the focal length (in millimeters).
1002 *
1003 * To access this property do: FocalLength.Get().
1004 * To set this property do: FocalLength.Set(FbxDouble).
1005 *
1006 * Default value is the result of ComputeFocalLength(40.0).
1007 */
1008 FbxPropertyT<FbxDouble> FocalLength;
1009
1010 /** This property handles the camera's format.
1011 *
1012 * To access this property do: CameraFormat.Get().
1013 * To set this property do: CameraFormat.Set(EFormat).
1014 *
1015 * \remarks This property is read-only.
1016 * \remarks Please use function SetFormat() if you want to change its value.
1017 *
1018 * Default value is eCustomFormat.
1019 */
1020 FbxPropertyT<EFormat> CameraFormat;
1021
1022 // -----------------------------------------------------------------------
1023 // Frame
1024 // -----------------------------------------------------------------------
1025
1026 /** This property stores a flag that indicates to draw a border with color around the camera's viewable area or not.
1027 * To access this property do: UseFrameColor.Get().
1028 * To set this property do: UseFrameColor.Set(FbxBool).
1029 *
1030 * Default value is false.
1031 */
1032 FbxPropertyT<FbxBool> UseFrameColor;
1033
1034 /** This property is used to define the color of the border around the camera view.
1035 *
1036 * To access this property do: FrameColor.Get().
1037 * To set this property do: FrameColor.Set(FbxDouble3).
1038 *
1039 * Default value is (0.3, 0.3, 0.3).
1040 */
1041 FbxPropertyT<FbxDouble3> FrameColor;
1042
1043 // -----------------------------------------------------------------------
1044 // On Screen Display
1045 // -----------------------------------------------------------------------
1046
1047 /** This property handles the flag to show the camera's name or not.
1048 *
1049 * To access this property do: ShowName.Get().
1050 * To set this property do: ShowName.Set(FbxBool).
1051 *
1052 * Default value is true.
1053 */
1054 FbxPropertyT<FbxBool> ShowName;
1055
1056 /** This property handles the flag to show info on moving or not.
1057 *
1058 * To access this property do: ShowInfoOnMoving.Get().
1059 * To set this property do: ShowInfoOnMoving.Set(FbxBool).
1060 *
1061 * Default value is true.
1062 */
1063 FbxPropertyT<FbxBool> ShowInfoOnMoving;
1064
1065 /** This property handles the flag to draw floor grid or not.
1066 *
1067 * To access this property do: ShowGrid.Get().
1068 * To set this property do: ShowGrid.Set(FbxBool).
1069 *
1070 * Default value is true.
1071 */
1072 FbxPropertyT<FbxBool> ShowGrid;
1073
1074 /** This property handles the flag to show optical center or not.
1075 *
1076 * To access this property do: ShowOpticalCenter.Get().
1077 * To set this property do: ShowOpticalCenter.Set(FbxBool).
1078 *
1079 * Default value is false.
1080 */
1081 FbxPropertyT<FbxBool> ShowOpticalCenter;
1082
1083 /** This property handles the flag to show the camera's sight line or not.
1084 * When the camera is revolved about the center of interest in the perspective view,
1085 * the angle of a camera's sight line relative to a plane perpendicular to the ground plane is referred to as its azimuth;
1086 * and the angle of a camera's sight line relative to the ground plane is referred to as its elevation;
1087 *
1088 * To access this property do: ShowAzimut.Get().
1089 * To set this property do: ShowAzimut.Set(FbxBool).
1090 *
1091 * Default value is true.
1092 */
1093 FbxPropertyT<FbxBool> ShowAzimut;
1094
1095 /** This property handles the flag to show time code or not.
1096 *
1097 * To access this property do: ShowTimeCode.Get().
1098 * To set this property do: ShowTimeCode.Set(FbxBool).
1099 *
1100 * Default value is true.
1101 */
1102 FbxPropertyT<FbxBool> ShowTimeCode;
1103
1104 /** This property handles the flag to show audio or not.
1105 *
1106 * To access this property do: ShowAudio.Get().
1107 * To set this property do: ShowAudio.Set(FbxBool).
1108 *
1109 * Default value is false.
1110 */
1111 FbxPropertyT<FbxBool> ShowAudio;
1112
1113 /** This property handles audio color.
1114 *
1115 * To access this property do: AudioColor.Get().
1116 * To set this property do: AudioColor.Set(FbxDouble3).
1117 *
1118 * Default value is (0.0, 1.0, 0.0).
1119 */
1120 FbxPropertyT<FbxDouble3> AudioColor;
1121
1122 // -----------------------------------------------------------------------
1123 // Clipping Planes
1124 // -----------------------------------------------------------------------
1125
1126 /** This property handles the near plane distance.
1127 *
1128 * \remarks This property is read-only.
1129 * \remarks Please use function SetNearPlane() if you want to change its value.
1130 *
1131 * Default value is 10.
1132 * \remarks Value range is [0.001, 600000.0].
1133 */
1134 FbxPropertyT<FbxDouble> NearPlane;
1135
1136 /** This property handles the far plane distance.
1137 *
1138 * \remarks This property is read-only.
1139 * \remarks Please use function SetFarPlane() if you want to change its value.
1140 *
1141 * Default value is 4000.
1142 * \remarks Value range is [0.001, 600000.0].
1143 */
1144 FbxPropertyT<FbxDouble> FarPlane;
1145
1146 /** This property indicates that the clip planes should be automatically computed or not.
1147 *
1148 * To access this property do: AutoComputeClipPlanes.Get().
1149 * To set this property do: AutoComputeClipPlanes.Set(FbxBool).
1150 *
1151 * When this property is set to true, the NearPlane and FarPlane values are
1152 * ignored. Note that not all applications support this flag.
1153 */
1154 FbxPropertyT<FbxBool> AutoComputeClipPlanes;
1155
1156
1157 // -----------------------------------------------------------------------
1158 // Camera Film Setting
1159 // -----------------------------------------------------------------------
1160
1161 /** This property handles the film aperture width (in inches).
1162 *
1163 * \remarks This property is read-only.
1164 * \remarks Please use function SetApertureWidth()
1165 * or SetApertureFormat() if you want to change its value.
1166 *
1167 * Default value is 0.8160.
1168 * \remarks Value range is [0.0001, +inf).
1169 */
1170 FbxPropertyT<FbxDouble> FilmWidth;
1171
1172 /** This property handles the film aperture height (in inches).
1173 *
1174 * \remarks This property is read-only.
1175 * \remarks Please use function SetApertureHeight()
1176 * or SetApertureFormat() if you want to change its value.
1177 *
1178 * Default value is 0.6120.
1179 * \remarks Value range is [0.0001, +inf).
1180 */
1181 FbxPropertyT<FbxDouble> FilmHeight;
1182
1183 /** This property handles the film aperture aspect ratio.
1184 *
1185 * \remarks This property is read-only.
1186 * \remarks Please use function SetApertureFormat() if you want to change its value.
1187 *
1188 * Default value is (FilmWidth / FilmHeight).
1189 * \remarks Value range is [0.0001, +inf).
1190 */
1191 FbxPropertyT<FbxDouble> FilmAspectRatio;
1192
1193 /** This property handles the film aperture squeeze ratio.
1194 *
1195 * \remarks This property is read-only.
1196 * \remarks Please use function SetSqueezeRatio()
1197 * or SetApertureFormat() if you want to change its value.
1198 *
1199 * Default value is 1.0.
1200 * \remarks Value range is [0.0001, +inf).
1201 */
1202 FbxPropertyT<FbxDouble> FilmSqueezeRatio;
1203
1204 /** This property handles the film aperture format.
1205 *
1206 * \remarks This property is read-only.
1207 * \remarks Please use function SetApertureFormat()
1208 * if you want to change its value.
1209 *
1210 * Default value is eCustomAperture.
1211 */
1212 FbxPropertyT<EApertureFormat> FilmFormat;
1213
1214 /** This property handles the horizontal offset from the center of the film aperture,
1215 * defined by the film height and film width. The offset is measured in inches.
1216 *
1217 * To access this property do: FilmOffsetX.Get().
1218 * To set this property do: FilmOffsetX.Set(FbxDouble).
1219 *
1220 * Default value is 0.0.
1221 */
1222 FbxPropertyT<FbxDouble> FilmOffsetX;
1223
1224 /** This property handles the vertical offset from the center of the film aperture,
1225 * defined by the film height and film width. The offset is measured
1226 * in inches.
1227 *
1228 * To access this property do: FilmOffsetY.Get().
1229 * To set this property do: FilmOffsetY.Set(FbxDouble).
1230 *
1231 * Default value is 0.0.
1232 */
1233 FbxPropertyT<FbxDouble> FilmOffsetY;
1234
1235 /** This property handles the pre-scale value.
1236 * The value is multiplied against the computed projection matrix.
1237 * It is applied before the film roll.
1238 *
1239 * To access this property do: PreScale.Get().
1240 * To set this property do: PreScale.Set(FbxDouble).
1241 *
1242 * Default value is 1.0.
1243 */
1244 FbxPropertyT<FbxDouble> PreScale;
1245
1246 /** This property handles the horizontal film horizontal translation.
1247 * To access this property do: FilmTranslateX.Get().
1248 * To set this property do: FilmTranslateX.Set(FbxDouble).
1249 * Default value is 0.0
1250 */
1251 FbxPropertyT<FbxDouble> FilmTranslateX;
1252
1253 /** This property handles the vertical film translation.
1254 *
1255 * To access this property do: FilmTranslateY.Get().
1256 * To set this property do: FilmTranslateY.Set(FbxDouble).
1257 *
1258 * Default value is 0.0.
1259 */
1260 FbxPropertyT<FbxDouble> FilmTranslateY;
1261
1262 /** This property handles the horizontal pivot point used for rotating the film back.
1263 *
1264 * To access this property do: FilmRollPivotX.Get().
1265 * To set this property do: FilmRollPivotX.Set(FbxDouble).
1266 *
1267 * Default value is 0.0.
1268 * \remarks FilmRollPivot value is used to compute the film roll matrix, which is a component of the post projection matrix.
1269 */
1270 FbxPropertyT<FbxDouble> FilmRollPivotX;
1271
1272 /** This property handles the vertical pivot point used for rotating the film back.
1273 *
1274 * To access this property do: FilmRollPivotY.Get().
1275 * To set this property do: FilmRollPivotY.Set(FbxDouble).
1276 *
1277 * Default value is 0.0.
1278 * \remarks FilmRollPivot value is used to compute the film roll matrix, which is a component of the post projection matrix.
1279 */
1280 FbxPropertyT<FbxDouble> FilmRollPivotY;
1281
1282 /** This property handles the amount of rotation around the film back.
1283 * The roll value is specified in degrees.
1284 *
1285 * To access this property do: FilmRollValue.Get().
1286 * To set this property do: FilmRollValue.Set(FbxDouble).
1287 *
1288 * Default value is 0.0.
1289 * \remarks The rotation occurs around the specified pivot point,
1290 * this value is used to compute a film roll matrix, which is a component of the post-projection matrix.
1291 */
1292 FbxPropertyT<FbxDouble> FilmRollValue;
1293
1294 /** This property handles how the roll is applied with respect to the pivot value.
1295 * eRotateFirst The film back is first rotated then translated by the pivot point value.
1296 * eTranslateFirst The film back is first translated then rotated by the film roll value.
1297 *
1298 * To access this property do: FilmRollOrder.Get().
1299 * To set this property do: FilmRollOrder.Set(EFilmRollOrder).
1300 *
1301 * Default value is eRotateFirst.
1302 */
1303 FbxPropertyT<EFilmRollOrder> FilmRollOrder ;
1304
1305 // -----------------------------------------------------------------------
1306 // Camera View Widget Option
1307 // -----------------------------------------------------------------------
1308
1309 /** This property handles the camera's look-at flag.
1310 * If this flag is on, the camera will look at the camera interest.
1311 *
1312 * To access this property do: ViewCameraToLookAt.Get().
1313 * To set this property do: ViewCameraToLookAt.Set(FbxBool).
1314 *
1315 * Default value is true.
1316 */
1317 FbxPropertyT<FbxBool> ViewCameraToLookAt;
1318
1319 /** This property handles to display the near and far plane or not.
1320 *
1321 * To access this property do: ViewFrustumNearFarPlane.Get().
1322 * To set this property do: ViewFrustumNearFarPlane.Set(FbxBool).
1323 *
1324 * Default value is false.
1325 */
1326 FbxPropertyT<FbxBool> ViewFrustumNearFarPlane;
1327
1328 /** This property handles the back plane display mode.
1329 *
1330 * To access this property do: ViewFrustumBackPlaneMode.Get().
1331 * To set this property do: ViewFrustumBackPlaneMode.Set(EFrontBackPlaneDisplayMode).
1332 *
1333 * Default value is ePlanesWhenMedia.
1334 */
1335 FbxPropertyT<EFrontBackPlaneDisplayMode> ViewFrustumBackPlaneMode;
1336
1337 /** This property handles the back plane distance.
1338 *
1339 * To access this property do: BackPlaneDistance.Get().
1340 * To set this property do: BackPlaneDistance.Set(FbxDouble).
1341 *
1342 * Default value is 100.0.
1343 */
1344 FbxPropertyT<FbxDouble> BackPlaneDistance;
1345
1346 /** This property handles the back plane distance mode.
1347 *
1348 * To access this property do: BackPlaneDistanceMode.Get().
1349 * To set this property do: BackPlaneDistanceMode.Set(EFrontBackPlaneDistanceMode).
1350 *
1351 * Default value is eRelativeToInterest.
1352 */
1353 FbxPropertyT<EFrontBackPlaneDistanceMode> BackPlaneDistanceMode;
1354
1355 /** This property handles the front plane mode.
1356 *
1357 * To access this property do: ViewFrustumFrontPlaneMode.Get().
1358 * To set this property do: ViewFrustumFrontPlaneMode.Set(EFrontBackPlaneDisplayMode).
1359 *
1360 * Default value is ePlanesWhenMedia.
1361 */
1362 FbxPropertyT<EFrontBackPlaneDisplayMode> ViewFrustumFrontPlaneMode;
1363
1364 /** This property handles the front plane distance.
1365 *
1366 * To access this property do: FrontPlaneDistance.Get().
1367 * To set this property do: FrontPlaneDistance.Set(FbxDouble).
1368 *
1369 * Default value is 100.0.
1370 */
1371 FbxPropertyT<FbxDouble> FrontPlaneDistance;
1372
1373 /** This property handles the front plane distance mode.
1374 *
1375 * To access this property do: FrontPlaneDistanceMode.Get().
1376 * To set this property do: FrontPlaneDistanceMode.Set(EFrontBackPlaneDistanceMode).
1377 *
1378 * Default value is eRelativeToInterest.
1379 */
1380 FbxPropertyT<EFrontBackPlaneDistanceMode> FrontPlaneDistanceMode;
1381
1382 // -----------------------------------------------------------------------
1383 // Camera Lock Mode
1384 // -----------------------------------------------------------------------
1385
1386 /** This property handles the flag to lock the camera's navigation.
1387 * When this flag is on, the camera's view can not be changed anymore.
1388 * To access this property do: LockMode.Get().
1389 * To set this property do: LockMode.Set(FbxBool).
1390 *
1391 * Default value is false.
1392 */
1393 FbxPropertyT<FbxBool> LockMode;
1394
1395 /** This property handles the flag to lock the camera interest's navigation.
1396 * When this flag is one, the position of the camera interest is locked.
1397 * To access this property do: LockInterestNavigation.Get().
1398 * To set this property do: LockInterestNavigation.Set(FbxBool).
1399 *
1400 * Default value is false.
1401 */
1402 FbxPropertyT<FbxBool> LockInterestNavigation;
1403
1404 // -----------------------------------------------------------------------
1405 // Background Image Display Options
1406 // -----------------------------------------------------------------------
1407
1408 /** This property handles the fit image flag of back plane.
1409 *
1410 * To access this property do: BackPlateFitImage.Get().
1411 * To set this property do: BackPlateFitImage.Set(FbxBool).
1412 *
1413 * Default value is false.
1414 * \see SetFitImage and GetFitImage.
1415 */
1416 FbxPropertyT<FbxBool> BackPlateFitImage;
1417
1418 /** This property handles the crop flag of back plane.
1419 *
1420 * To access this property do: BackPlateCrop.Get().
1421 * To set this property do: BackPlateCrop.Set(FbxBool).
1422 *
1423 * Default value is false.
1424 * \see SetCrop and GetCrop.
1425 */
1426 FbxPropertyT<FbxBool> BackPlateCrop;
1427
1428 /** This property handles the center flag of back plane.
1429 *
1430 * To access this property do: BackPlateCenter.Get().
1431 * To set this property do: BackPlateCenter.Set(FbxBool).
1432 *
1433 * Default value is true.
1434 * see SetCenter and GetCenter.
1435 */
1436 FbxPropertyT<FbxBool> BackPlateCenter;
1437
1438 /** This property handles the keep ratio flag of back plane.
1439 *
1440 * To access this property do: BackPlateKeepRatio.Get().
1441 * To set this property do: BackPlateKeepRatio.Set(FbxBool).
1442 *
1443 * Default value is true.
1444 * \see SetKeepRatio and GetKeepRatio.
1445 */
1446 FbxPropertyT<FbxBool> BackPlateKeepRatio;
1447
1448 /** This property handles the background alpha threshold value.
1449 *
1450 * To access this property do: BackgroundAlphaTreshold.Get().
1451 * To set this property do: BackgroundAlphaTreshold.Set(FbxDouble).
1452 *
1453 * Default value is 0.5.
1454 */
1455 FbxPropertyT<FbxDouble> BackgroundAlphaTreshold;
1456
1457 /** This property handles the back plane offset X.
1458 *
1459 * To access this property do: BackPlaneOffsetX.Get().
1460 * To set this property do: BackPlaneOffsetX.Set(FbxDouble).
1461 *
1462 * Default value is 0.0.
1463 */
1464 FbxPropertyT<FbxDouble> BackPlaneOffsetX;
1465
1466 /** This property handles the back plane offset Y.
1467 *
1468 * To access this property do: BackPlaneOffsetY.Get().
1469 * To set this property do: BackPlaneOffsetY.Set(FbxDouble).
1470 *
1471 * Default value is 0.0.
1472 */
1473 FbxPropertyT<FbxDouble> BackPlaneOffsetY;
1474
1475 /** This property handles the back plane rotation.
1476 *
1477 * To access this property do: BackPlaneRotation.Get().
1478 * To set this property do: BackPlaneRotation.Set(FbxDouble).
1479 *
1480 * Default value is 0.0.
1481 */
1482 FbxPropertyT<FbxDouble> BackPlaneRotation;
1483
1484 /** This property handles the back plane scaling X.
1485 *
1486 * To access this property do: BackPlaneScaleX.Get().
1487 * To set this property do: BackPlaneScaleX.Set(FbxDouble).
1488 *
1489 * Default value is 1.0.
1490 * \remarks The application manipulating the camera has to take into consideration of
1491 * the BackPlateKeepRatio value too.
1492 */
1493 FbxPropertyT<FbxDouble> BackPlaneScaleX;
1494
1495 /** This property handles the back plane scaling Y.
1496 *
1497 * To access this property do: BackPlaneScaleY.Get().
1498 * To set this property do: BackPlaneScaleY.Set(FbxDouble).
1499 *
1500 * Default value is 1.0.
1501 * \remarks The application manipulating the camera has to take into consideration of
1502 * the BackPlateKeepRatio value too.
1503 */
1504 FbxPropertyT<FbxDouble> BackPlaneScaleY;
1505
1506 /** This property handles the flag to show back plane or not.
1507 *
1508 * To access this property do: ShowBackPlate.Get().
1509 * To set this property do: ShowBackPlate.Set(FbxBool).
1510 *
1511 * Default value is false.
1512 * \remarks This replaces ForegroundTransparent.
1513 */
1514 FbxPropertyT<FbxBool> ShowBackplate;
1515
1516 /** This property has the background texture connected to it.
1517 *
1518 * To access this property do: BackgroundTexture.Get().
1519 * To set this property do: BackgroundTexture.Set().
1520 *
1521 * \remarks The background texture is connected as source object.
1522 */
1523 FbxPropertyT<FbxReference> BackgroundTexture;
1524
1525
1526 // -----------------------------------------------------------------------
1527 // Foreground Image Display Options
1528 // -----------------------------------------------------------------------
1529
1530 /** This property handles the fit image flag of front plate.
1531 *
1532 * To access this property do: FrontPlateFitImage.Get().
1533 * To set this property do: FrontPlateFitImage.Set(FbxBool).
1534 *
1535 * Default value is false.
1536 */
1537 FbxPropertyT<FbxBool> FrontPlateFitImage;
1538
1539 /** This property handles the crop flag of front plane.
1540 *
1541 * To access this property do: FrontPlateCrop.Get().
1542 * To set this property do: FrontPlateCrop.Set(FbxBool).
1543 *
1544 * Default value is false.
1545 */
1546 FbxPropertyT<FbxBool> FrontPlateCrop;
1547
1548 /** This property handles the center flag of front plane.
1549 *
1550 * To access this property do: FrontPlateCenter.Get().
1551 * To set this property do: FrontPlateCenter.Set(FbxBool).
1552 *
1553 * Default value is true.
1554 */
1555 FbxPropertyT<FbxBool> FrontPlateCenter;
1556
1557 /** This property handles the keep ratio flag of front plane.
1558 *
1559 * To access this property do: FrontPlateKeepRatio.Get().
1560 * To set this property do: FrontPlateKeepRatio.Set(FbxBool).
1561 *
1562 * Default value is true.
1563 */
1564 FbxPropertyT<FbxBool> FrontPlateKeepRatio;
1565
1566
1567 /** This property handles the flag to show front plane or not.
1568 *
1569 * To access this property do: ShowFrontplate.Get().
1570 * To set this property do: ShowFrontplate.Set(FbxBool).
1571 *
1572 * Default value is false.
1573 * \remarks This replaces ForegroundTransparent.
1574 */
1575 FbxPropertyT<FbxBool> ShowFrontplate;
1576
1577 /** This property handles the front plane offset X.
1578 *
1579 * To access this property do: FrontPlaneOffsetX.Get().
1580 * To set this property do: FrontPlaneOffsetX.Set(FbxDouble).
1581 *
1582 * Default value is 0.0.
1583 */
1584 FbxPropertyT<FbxDouble> FrontPlaneOffsetX;
1585
1586 /** This property handles the front plane offset Y.
1587 *
1588 * To access this property do: FrontPlaneOffsetY.Get().
1589 * To set this property do: FrontPlaneOffsetY.Set(FbxDouble).
1590 *
1591 * Default value is 0.0.
1592 */
1593 FbxPropertyT<FbxDouble> FrontPlaneOffsetY;
1594
1595 /** This property handles the front plane rotation.
1596 *
1597 * To access this property do: FrontPlaneRotation.Get().
1598 * To set this property do: FrontPlaneRotation.Set(FbxDouble).
1599 *
1600 * Default value is 0.0.
1601 */
1602 FbxPropertyT<FbxDouble> FrontPlaneRotation;
1603
1604 /** This property handles the front plane scaling X.
1605 *
1606 * To access this property do: FrontPlaneScaleX.Get().
1607 * To set this property do: FrontPlaneScaleX.Set(FbxDouble).
1608 *
1609 * Default value is 1.0.
1610 */
1611 FbxPropertyT<FbxDouble> FrontPlaneScaleX;
1612
1613 /** This property handles the front plane scaling Y.
1614 *
1615 * To access this property do: FrontPlaneScaleY.Get().
1616 * To set this property do: FrontPlaneScaleY.Set(FbxDouble).
1617 *
1618 * Default value is 1.0.
1619 */
1620 FbxPropertyT<FbxDouble> FrontPlaneScaleY;
1621
1622 /** This property has the foreground texture connected to it.
1623 *
1624 * To access this property do: ForegroundTexture.Get().
1625 * To set this property do: ForegroundTexture.Set().
1626 *
1627 * \remarks The foreground texture is connected as source object.
1628 */
1629 FbxPropertyT<FbxReference> ForegroundTexture;
1630
1631 /** This property handles the foreground image opacity value.
1632 *
1633 * To access this property do: ForegroundOpacity.Get().
1634 * To set this property do: ForegroundOpacity.Set(FbxDouble).
1635 *
1636 * Default value is 1.0.
1637 */
1638 FbxPropertyT<FbxDouble> ForegroundOpacity;
1639
1640 // -----------------------------------------------------------------------
1641 // Safe Area
1642 // -----------------------------------------------------------------------
1643
1644 /** This property handles the flag to display safe area or not.
1645 *
1646 * To access this property do: DisplaySafeArea.Get().
1647 * To set this property do: DisplaySafeArea.Set(FbxBool).
1648 *
1649 * Default value is false.
1650 */
1651 FbxPropertyT<FbxBool> DisplaySafeArea;
1652
1653 /** This property handles the flag display safe area on render or not.
1654 *
1655 * To access this property do: DisplaySafeAreaOnRender.Get().
1656 * To set this property do: DisplaySafeAreaOnRender.Set(FbxBool).
1657 *
1658 * Default value is false.
1659 */
1660 FbxPropertyT<FbxBool> DisplaySafeAreaOnRender;
1661
1662 /** This property handles the style to display safe area.
1663 *
1664 * To access this property do: SafeAreaDisplayStyle.Get().
1665 * To set this property do: SafeAreaDisplayStyle.Set(ESafeAreaStyle).
1666 *
1667 * Default value is eSafeAreaSquare.
1668 */
1669 FbxPropertyT<ESafeAreaStyle> SafeAreaDisplayStyle;
1670
1671 /** This property handles the display aspect ratio of safe area.
1672 *
1673 * To access this property do: SafeAreaDisplayStyle.Get().
1674 * To set this property do: SafeAreaAspectRatio.Set(FbxDouble).
1675 *
1676 * Default value is 1.33333333333333.
1677 */
1678 FbxPropertyT<FbxDouble> SafeAreaAspectRatio;
1679
1680 // -----------------------------------------------------------------------
1681 // 2D Magnifier
1682 // -----------------------------------------------------------------------
1683
1684 /** This property handles the flag to use 2d magnifier zoom or not.
1685 * The 2D Magnifier lets you perform a 2D enlargement of the scene using the
1686 * current camera without changing any camera settings.
1687 *
1688 * To access this property do: Use2DMagnifierZoom.Get().
1689 * To set this property do: Use2DMagnifierZoom.Set(FbxBool).
1690 *
1691 * Default value is false.
1692 */
1693 FbxPropertyT<FbxBool> Use2DMagnifierZoom;
1694
1695 /** This property handles the 2d magnifier zoom value.
1696 *
1697 * To access this property do: _2DMagnifierZoom.Get().
1698 * To set this property do: _2DMagnifierZoom.Set(FbxDouble).
1699 *
1700 * Default value is 100.0.
1701 */
1702 FbxPropertyT<FbxDouble> _2DMagnifierZoom;
1703
1704 /** This property handles the 2d magnifier X value.
1705 *
1706 * To access this property do: _2DMagnifierX.Get().
1707 * To set this property do: _2DMagnifierX.Set(FbxDouble).
1708 *
1709 * Default value is 50.0.
1710 */
1711 FbxPropertyT<FbxDouble> _2DMagnifierX;
1712
1713 /** This property handles the 2d magnifier Y value.
1714 *
1715 * To access this property do: _2DMagnifierY.Get().
1716 * To set this property do: _2DMagnifierY.Set(FbxDouble).
1717 *
1718 * Default value is 50.0.
1719 */
1720 FbxPropertyT<FbxDouble> _2DMagnifierY;
1721
1722 // -----------------------------------------------------------------------
1723 // Projection Type: Ortho, Perspective
1724 // -----------------------------------------------------------------------
1725
1726 /** This property handles the projection type.
1727 *
1728 * To access this property do: ProjectionType.Get().
1729 * To set this property do: ProjectionType.Set(EProjectionType).
1730 *
1731 * Default value is ePerspective.
1732 */
1733 FbxPropertyT<EProjectionType> ProjectionType;
1734
1735 /** This property handles the orthographic zoom value.
1736 *
1737 * To access this property do: OrthoZoom.Get().
1738 * To set this property do: OrthoZoom.Set(FbxDouble).
1739 *
1740 * Default value is 1.0.
1741 */
1742 FbxPropertyT<FbxDouble> OrthoZoom;
1743
1744 // -----------------------------------------------------------------------
1745 // Depth Of Field & Anti Aliasing
1746 // -----------------------------------------------------------------------
1747
1748 /** This property handles the flag to use real time Depth of Field and Anti-Aliasing or not.
1749 *
1750 * To access this property do: UseRealTimeDOFAndAA.Get().
1751 * To set this property do: UseRealTimeDOFAndAA.Set(FbxBool).
1752 *
1753 * Default value is false.
1754 */
1755 FbxPropertyT<FbxBool> UseRealTimeDOFAndAA;
1756
1757 /** This property handles the flag to use depth of field or not.
1758 *
1759 * To access this property do: UseDepthOfField.Get().
1760 * To set this property do: UseDepthOfField.Set(FbxBool).
1761 *
1762 * Default value is false.
1763 */
1764 FbxPropertyT<FbxBool> UseDepthOfField;
1765
1766 /** This property handles the focus source.
1767 *
1768 * To access this property do: FocusSource.Get().
1769 * To set this property do: FocusSource.Set(EFocusDistanceSource).
1770 *
1771 * Default value is eFocusSrcCameraInterest.
1772 * \see FocusDistance.
1773 */
1774 FbxPropertyT<EFocusDistanceSource> FocusSource;
1775
1776 /** This property handles the focus angle (in degrees).
1777 *
1778 * To access this property do: FocusAngle.Get().
1779 * To set this property do: FocusAngle.Set(FbxDouble).
1780 *
1781 * Default value is 3.5.
1782 */
1783 FbxPropertyT<FbxDouble> FocusAngle;
1784
1785 /** This property handles the focus distance.
1786 * Focus distance is the distance between the camera and the object on which the camera is focused.
1787 * There are two possible sources for this distance.
1788 * \see EFocusDistanceSource
1789 *
1790 * To access this property do: FocusDistance.Get().
1791 * To set this property do: FocusDistance.Set(FbxDouble).
1792 *
1793 * Default value is 200.0.
1794 */
1795 FbxPropertyT<FbxDouble> FocusDistance;
1796
1797 /** This property handles the flag to use anti aliasing or not.
1798 *
1799 * To access this property do: UseAntialiasing.Get().
1800 * To set this property do: UseAntialiasing.Set(FbxBool).
1801 *
1802 * Default value is false.
1803 */
1804 FbxPropertyT<FbxBool> UseAntialiasing;
1805
1806 /** This property handles the anti aliasing intensity.
1807 *
1808 * To access this property do: AntialiasingIntensity.Get().
1809 * To set this property do: AntialiasingIntensity.Set(FbxDouble).
1810 *
1811 * Default value is 0.77777.
1812 */
1813 FbxPropertyT<FbxDouble> AntialiasingIntensity;
1814
1815 /** This property handles the anti aliasing method.
1816 *
1817 * To access this property do: AntialiasingMethod.Get().
1818 * To set this property do: AntialiasingMethod.Set(EAntialiasingMethod).
1819 *
1820 * Default value is eAAOversampling.
1821 */
1822 FbxPropertyT<EAntialiasingMethod> AntialiasingMethod;
1823
1824 // -----------------------------------------------------------------------
1825 // Accumulation Buffer
1826 // -----------------------------------------------------------------------
1827
1828 /** This property handles the flag to use accumulation buffer or not.
1829 *
1830 * To access this property do: UseAccumulationBuffer.Get().
1831 * To set this property do: UseAccumulationBuffer.Set(FbxBool).
1832 *
1833 * Default value is false.
1834 */
1835 FbxPropertyT<FbxBool> UseAccumulationBuffer;
1836
1837 /** This property handles the frame sampling count.
1838 *
1839 * To access this property do: FrameSamplingCount.Get().
1840 * To set this property do: FrameSamplingCount.Set(FbxInt).
1841 *
1842 * Default value is 7.
1843 */
1844 FbxPropertyT<FbxInt> FrameSamplingCount;
1845
1846 /** This property handles the frame sampling type.
1847 *
1848 * To access this property do: FrameSamplingType.Get().
1849 * To set this property do: FrameSamplingType.Set(ESamplingType).
1850 *
1851 * Default value is eSamplingStochastic.
1852 */
1853 FbxPropertyT<ESamplingType> FrameSamplingType;
1854
1855/*****************************************************************************************************************************
1856** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
1857*****************************************************************************************************************************/
1858#ifndef DOXYGEN_SHOULD_SKIP_THIS
1859 virtual FbxObject& Copy(const FbxObject& pObject);
1860
1861protected:
1862 virtual void ConstructProperties(bool pForceSet);
1863 virtual FbxStringList GetTypeFlags() const;
1864
1865private:
1866 double ComputePixelRatio(FbxUInt pWidth, FbxUInt pHeight, double pScreenRatio = 1.3333333333);
1867
1868 // Background Properties
1869 FbxString mBackgroundMediaName;
1870 FbxString mBackgroundFileName;
1871
1872 // Foreground Properties
1873 FbxString mForegroundMediaName;
1874 FbxString mForegroundFileName;
1875
1876 FbxVector4 mLastUp;
1877#endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
1878};
1879
1880inline EFbxType FbxTypeOf(const FbxCamera::EAntialiasingMethod&){ return eFbxEnum; }
1881inline EFbxType FbxTypeOf(const FbxCamera::EApertureFormat&){ return eFbxEnum; }
1882inline EFbxType FbxTypeOf(const FbxCamera::EApertureMode&){ return eFbxEnum; }
1883inline EFbxType FbxTypeOf(const FbxCamera::EAspectRatioMode&){ return eFbxEnum; }
1884inline EFbxType FbxTypeOf(const FbxCamera::EFrontBackPlaneDisplayMode&){ return eFbxEnum; }
1885inline EFbxType FbxTypeOf(const FbxCamera::EFrontBackPlaneDistanceMode&){ return eFbxEnum; }
1886inline EFbxType FbxTypeOf(const FbxCamera::EPlateDrawingMode&){ return eFbxEnum; }
1887inline EFbxType FbxTypeOf(const FbxCamera::EFocusDistanceSource&){ return eFbxEnum; }
1888inline EFbxType FbxTypeOf(const FbxCamera::EFormat&){ return eFbxEnum; }
1889inline EFbxType FbxTypeOf(const FbxCamera::EGateFit&){ return eFbxEnum; }
1890inline EFbxType FbxTypeOf(const FbxCamera::EProjectionType&){ return eFbxEnum; }
1891inline EFbxType FbxTypeOf(const FbxCamera::ERenderOptionsUsageTime&){ return eFbxEnum; }
1892inline EFbxType FbxTypeOf(const FbxCamera::ESafeAreaStyle&){ return eFbxEnum; }
1893inline EFbxType FbxTypeOf(const FbxCamera::ESamplingType&){ return eFbxEnum; }
1894inline EFbxType FbxTypeOf(const FbxCamera::EFilmRollOrder&){ return eFbxEnum; }
1895
1896#include <fbxsdk/fbxsdk_nsend.h>
1897
1898#endif /* _FBXSDK_SCENE_GEOMETRY_CAMERA_H_ */
1899