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 | |
24 | class 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 | */ |
34 | class FBXSDK_DLL FbxCamera : public FbxNodeAttribute |
35 | { |
36 | FBXSDK_OBJECT_DECLARE(FbxCamera,FbxNodeAttribute); |
37 | |
38 | public: |
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 | |
1861 | protected: |
1862 | virtual void ConstructProperties(bool pForceSet); |
1863 | virtual FbxStringList GetTypeFlags() const; |
1864 | |
1865 | private: |
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 | |
1880 | inline EFbxType FbxTypeOf(const FbxCamera::EAntialiasingMethod&){ return eFbxEnum; } |
1881 | inline EFbxType FbxTypeOf(const FbxCamera::EApertureFormat&){ return eFbxEnum; } |
1882 | inline EFbxType FbxTypeOf(const FbxCamera::EApertureMode&){ return eFbxEnum; } |
1883 | inline EFbxType FbxTypeOf(const FbxCamera::EAspectRatioMode&){ return eFbxEnum; } |
1884 | inline EFbxType FbxTypeOf(const FbxCamera::EFrontBackPlaneDisplayMode&){ return eFbxEnum; } |
1885 | inline EFbxType FbxTypeOf(const FbxCamera::EFrontBackPlaneDistanceMode&){ return eFbxEnum; } |
1886 | inline EFbxType FbxTypeOf(const FbxCamera::EPlateDrawingMode&){ return eFbxEnum; } |
1887 | inline EFbxType FbxTypeOf(const FbxCamera::EFocusDistanceSource&){ return eFbxEnum; } |
1888 | inline EFbxType FbxTypeOf(const FbxCamera::EFormat&){ return eFbxEnum; } |
1889 | inline EFbxType FbxTypeOf(const FbxCamera::EGateFit&){ return eFbxEnum; } |
1890 | inline EFbxType FbxTypeOf(const FbxCamera::EProjectionType&){ return eFbxEnum; } |
1891 | inline EFbxType FbxTypeOf(const FbxCamera::ERenderOptionsUsageTime&){ return eFbxEnum; } |
1892 | inline EFbxType FbxTypeOf(const FbxCamera::ESafeAreaStyle&){ return eFbxEnum; } |
1893 | inline EFbxType FbxTypeOf(const FbxCamera::ESamplingType&){ return eFbxEnum; } |
1894 | inline EFbxType FbxTypeOf(const FbxCamera::EFilmRollOrder&){ return eFbxEnum; } |
1895 | |
1896 | #include <fbxsdk/fbxsdk_nsend.h> |
1897 | |
1898 | #endif /* _FBXSDK_SCENE_GEOMETRY_CAMERA_H_ */ |
1899 | |