Open Reality Reference Guide
fbrenderer.h
Go to the documentation of this file.
1 #ifndef __FBRENDERER_H__
2 #define __FBRENDERER_H__
3 /**************************************************************************
4 Copyright (c) 1994 - 2009 Autodesk, Inc. and/or its licensors.
5 All Rights Reserved.
6 
7 The coded instructions, statements, computer programs, and/or related
8 material (collectively the "Data") in these files contain unpublished
9 information proprietary to Autodesk, Inc. and/or its licensors, which is
10 protected by Canada and United States of America federal copyright law
11 and by international treaties.
12 
13 The Data may not be disclosed or distributed to third parties, in whole
14 or in part, without the prior written consent of Autodesk, Inc.
15 ("Autodesk").
16 
17 THE DATA IS PROVIDED "AS IS" AND WITHOUT WARRANTY.
18 ALL WARRANTIES ARE EXPRESSLY EXCLUDED AND DISCLAIMED. AUTODESK MAKES NO
19 WARRANTY OF ANY KIND WITH RESPECT TO THE DATA, EXPRESS, IMPLIED OR
20 ARISING BY CUSTOM OR TRADE USAGE, AND DISCLAIMS ANY IMPLIED WARRANTIES
21 OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
22 PURPOSE OR USE. WITHOUT LIMITING THE FOREGOING, AUTODESK DOES NOT
23 WARRANT THAT THE OPERATION OF THE DATA WILL BE UNINTERRUPTED OR ERROR
24 FREE.
25 
26 IN NO EVENT SHALL AUTODESK, ITS AFFILIATES, PARENT COMPANIES, LICENSORS
27 OR SUPPLIERS ("AUTODESK GROUP") BE LIABLE FOR ANY LOSSES, DAMAGES OR
28 EXPENSES OF ANY KIND (INCLUDING WITHOUT LIMITATION PUNITIVE OR MULTIPLE
29 DAMAGES OR OTHER SPECIAL, DIRECT, INDIRECT, EXEMPLARY, INCIDENTAL, LOSS
30 OF PROFITS, REVENUE OR DATA, COST OF COVER OR CONSEQUENTIAL LOSSES OR
31 DAMAGES OF ANY KIND), HOWEVER CAUSED, AND REGARDLESS OF THE THEORY OF
32 LIABILITY, WHETHER DERIVED FROM CONTRACT, TORT (INCLUDING, BUT NOT
33 LIMITED TO, NEGLIGENCE), OR OTHERWISE, ARISING OUT OF OR RELATING TO THE
34 DATA OR ITS USE OR ANY OTHER PERFORMANCE, WHETHER OR NOT AUTODESK HAS
35 BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS OR DAMAGE.
36 
37 **************************************************************************/
38 
43 #include <kaydaradef.h>
44 #ifndef FBSDK_DLL
48 #define FBSDK_DLL K_DLLIMPORT
49 #endif
50 
51 #if !defined(K_NO_MANIPULATOR)
52 #include <fbsdk/fbmanipulator.h>
53 #endif
54 
55 #include <fbsdk/fbcomponent.h>
56 #include <fbsdk/fbmodel.h>
57 #include <fbsdk/fbcamera.h>
58 #include <fbsdk/fblight.h>
59 #include <fbsdk/fbshader.h>
60 #include <fbcontrols/fbcontrols.h> // FBInputType
61 
62 #ifdef FBSDKUseNamespace
63 namespace FBSDKNamespace {
64 #endif
65 
68 
69  FB_FORWARD( FBView );
70 
71  FB_DEFINE_COMPONENT( FBSDK_DLL, Renderer );
72 
74 
83  };
84 
87  enum FBArrangeMode {
90  };
91 
93  {
105  };
106 
108 
113  kFBDisplayNull = (1 << 0),
114  kFBDisplayMarker = (1 << 1),
115  kFBDisplaySkeleton = (1 << 2),
116  kFBDisplayCenter = (1 << 3),
117  kFBDisplayLight = (1 << 4),
118  kFBDisplayCamera = (1 << 5),
119  kFBDisplay3dIcon = (1 << 6),
120  kFBDisplayAll = 0xff
121  };
122 
124 
130  };
131 
133 
167  kFBDKeyF12
168  };
169 
170  FB_DEFINE_ENUM( FBSDK_DLL, DeviceKeyboardKey );
171 
176  {
177  public:
181 
186 
191 
195  int& DisplayWhat();
196 
201 
204  bool& ShowTimeCode();
205 
208  bool& ShowSafeArea();
209 
213 
217 
221 
224  unsigned int RenderCallbackPrefIndex() const;
225 
229  int PaneIndex() const;
230 
231  private:
234  FBViewingOptions & operator =(const FBViewingOptions &);
235  };
236 
237 
239  // FBPickInfos
241 
270  struct FBPickInfos
271  {
278  FBPickInfos( FBModel* pModel, FBVector3d pPoint, FBVector3d pNormal, int pSubItemIndex )
279  : mModel( pModel ), mPoint( pPoint ), mNormal (pNormal), mSubItemIndex(pSubItemIndex) {};
280 
285  };
286 
287  bool operator==( const FBPickInfos& pLhs, const FBPickInfos& pRhs );
288 
291 
299 
304 
306  // FBRendererCallback
308 
311  {
312  //--- Open Reality declaration.
314  public:
315 
318  FBRendererCallback(const char* pName);
319 
323  virtual const char* GetCallbackName() const = 0;
324 
329  virtual const char* GetCallbackDesc() const = 0;
330 
336  virtual unsigned int GetCallbackPrefCount() const;
337 
341  virtual const char* GetCallbackPrefName(unsigned int pIndex) const;
342 
346  virtual void Render(FBRenderOptions* pRenderOptions);
347 
351  virtual void Attach();
352 
356  virtual void Detach();
357 
363  virtual void DetachDisplayContext(FBViewingOptions* pViewOption);
364 
370  };
371 
372  FB_DEFINE_COMPONENT ( FBSDK_DLL, RendererCallback );
373 
381 #define FBRegisterRendererCallback( UniqueNameStr, ClassName, Label, Description, IconFilename ) \
382  HIObject CreateRendererCallback##ClassName( HIObject /*pOwner*/,const char* pName,void * /*pData*/) \
383  { \
384  ClassName *Class = new ClassName( pName ); \
385  if (Class->FBCreate()) { \
386  return Class->GetHIObject(); \
387  } else { \
388  delete Class; \
389  return NULL; \
390  } \
391  } \
392  FBLibraryModule( ClassName ) \
393  { \
394  FBRegisterObject( ClassName##R1,"renderer/callback/ogl",Label,Description,CreateRendererCallback##ClassName,true, IconFilename ); \
395  }
396 
401 #define FBRendererCallbackDeclare( ClassName, Parent ) \
402  FBClassDeclare( ClassName,Parent); \
403 public: \
404  ClassName(const char* pName):Parent(pName) { FBClassInit; } \
405 private:
406 
410 #define FBRendererCallbackImplementation( ThisComponent ) \
411  FBClassImplementation( ThisComponent )
412 
413 
415  // FBPropertyListRendererCallback
418 
420  {
421  public:
429  virtual int Add( FBRendererCallback* pItem );
435 
436  private:
437  inline virtual int Add ( FBComponent* pItem ) { return Add((FBRendererCallback*)pItem); }
438  };
439 
441  // FBRenderer
443 
446  {
447  //--- Open Reality declaration.
449  public:
455  FBRenderer(HIObject pObject);
456 
457  //--- Rendering manipulation
465  void SetViewport(int pX,int pY,int pW,int pH);
466 
476  bool RenderBegin(int pX,int pY,int pW,int pH);
477 
483  bool RenderEnd(FBView* pView=NULL);
484 
497  bool PreRender(int pLayer = -1);
498 
503  bool Render(int pLayer = -1);
504 
508  void OGLSetupSceneLights(FBRenderOptions& pRenderOptions);
509 
515  void OGLModelDisplay(FBRenderOptions& pRenderOptions, FBModel& pModel);
516 
521 
526 
532 
535 
541 
546 
555  bool GetSchematicNodesBoundingBox( bool pConsiderCollapsedNodes, int& pTop, int& pLeft, int& pBottom, int& pRight );
556 
566  bool GetSchematicNodesBoundingBoxFromModel( FBModel* pModel, bool pConsiderCollapsedNodes, int& pTop, int& pLeft, int& pBottom, int& pRight );
567 
572 
576  const char* GetCurrentSchematicBookmarkName() const;
577 
582 
587  bool CreateSchematicBookmark(const char* pBookmarkName);
588 
593  bool DeleteSchematicBookmark(const char* pBookmarkName);
594 
600  bool RenameSchematicBookmark(const char* pOldBookmarkName, const char* pNewBookmarkName);
601 
606  bool SelectSchematicBookmark(const char* pBookmarkName);
607 
612 
613  //--- \internal Camera manipulation, Manipulators
624  bool MouseInput(int pX,int pY,FBInputType pInputType,int pButtonKey,FBInputModifier pModifier,int pWheelDeltaValue=0,int pLayer = -1);
625 
637  bool MouseInputNormalized(float pX,float pY,FBInputType pInputType,int pButtonKey,FBInputModifier pModifier,int pWheelDeltaValue, int pLayer = -1, int pPaneId = -1);
638 
646  bool Pick(int pX, int pY, FBPickInfosList& pPickInfosList, bool pNeedIntersectPosition = false );
647 
656  bool PickNormalized(float pX, float pY, FBPickInfosList& pPickInfosList, bool pNeedIntersectPosition = false, int pPaneId = -1);
657 
665  bool RectPick(int pX1, int pY1, int pX2, int pY2, FBPickInfosList& pPickInfosList);
666 
675  bool RectPickNormalized(float pX1, float pY1, float pX2, float pY2, FBPickInfosList& pPickInfosList, int pPaneId = -1);
676 
681  int GetLastPickInfoList(FBPickInfosList& pPickInfosList);
682 
688  void KeyboardInput(FBDeviceKeyboardKey pKeyIndex, bool pKeyState, bool pIsTrigger = false);
689 
696 
703 
713  const FBModelList& GetDisplayableGeometryInCameraFrustum(FBModelList* pModelList = NULL, FBCamera* pCamera = NULL);
714 
723  bool IsModelInsideCameraFrustum(FBModel* pGeometry, FBCamera* pCamera = NULL);
724 
725  // Properties
726  FBPropertyCamera CurrentCamera;
728 
729 #if !defined(K_NO_MANIPULATOR)
730  FBPropertyManipulatorTransform ManipulatorTransform;
732 #endif
733 
734  FBPropertyScene Scene;
759 
764 
777 
783 
787  void CloneViewAdd(FBView* pView);
788 
792  void CloneViewRemove(FBView* pView);
793 
798  void CloneViewRender(int pWidth, int pHeight);
799 
815  void SetCameraInPane( FBCamera* pCamera, unsigned int pPaneIndex );
816 
829  FBCamera* GetCameraInPane( unsigned int pPaneIndex );
830 
834  void SetPaneCount( unsigned int pPaneCount );
835 
839  unsigned int GetPaneCount();
840 
845  bool SetSelectedPaneIndex( unsigned int pPaneIndex );
846 
850  unsigned int GetSelectedPaneIndex() const;
851 
858  void SetSchematicViewInPane( unsigned int pPaneIndex, bool pActive );
859 
864 
872  void SetCameraSwitcherInPane( unsigned int pPaneIndex, bool pActive );
873 
880  bool IsCameraSwitcherInPane( unsigned int pPaneIndex );
881  };
882 
883 #ifdef FBSDKUseNamespace
884 }
885 #endif
886 #endif /* this must be the last line of this file */
Template class to contain an array of items.
Definition: fbarray.h:78
Creates custom cameras and manages system cameras.
Definition: fbcamera.h:206
MotionBuilder SDK base class.
Definition: fbcomponent.h:651
Light class.
Definition: fblight.h:86
Model class.
Definition: fbmodel.h:274
PropertyList: Concrete class for PropertyList of component
Definition: fbcomponent.h:536
PropertyList: Manipulator.
PropertyList: Texture
Definition: fbrenderer.h:420
virtual int Add(FBRendererCallback *pItem)
Add a RendererCallback to the property list.
FBRendererCallback * operator[](int pIndex)
Get the texture at a specific index.
Open Reality renderer callback interface.
Definition: fbrenderer.h:311
virtual const char * GetCallbackDesc() const =0
Return Callback Desc Name.
FBPropertyBool DefaultLightGroundProjectionRendering
Read write Property: Set true to use default light ground projection rendering; set false to disable ...
Definition: fbrenderer.h:368
virtual void Attach()
Callback when attach RendererCallback This callback occurs when attach this renderer callback instanc...
virtual const char * GetCallbackPrefName(unsigned int pIndex) const
Return Callback Preference Name.
FBPropertyBool DefaultCameraFrontPlateRendering
Read write Property: Set true to use default camera front plate rendering; set false to disable it.
Definition: fbrenderer.h:366
virtual const char * GetCallbackName() const =0
Return Callback Name.
FBRendererCallback(const char *pName)
Constructor.
virtual void Render(FBRenderOptions *pRenderOptions)
Callback for rendering.
FBPropertyBool DefaultCameraBackPlateRendering
Read write Property: Set true to use default camera back plate rendering; set false to disable it.
Definition: fbrenderer.h:367
FBPropertyBool SupportIDBufferPicking
Read write Property: Can this Renderer Callback support IDBuffer Picking.
Definition: fbrenderer.h:365
virtual void Detach()
Callback when detach RendererCallback This callback occurs when detach this renderer callback instanc...
virtual void DetachDisplayContext(FBViewingOptions *pViewOption)
Callback to ask invalidate GL resources.
FBPropertyBool DefaultLightVolumeRendering
Read write Property: Set true to use default light volume rendering; set false to disable it.
Definition: fbrenderer.h:369
virtual unsigned int GetCallbackPrefCount() const
Return Callback Preference Count, For adjust render settings, quality, performance and etc....
Open Reality renderer interface.
Definition: fbrenderer.h:446
const char * GetCurrentSchematicBookmarkName() const
Return the current bookmark name used by the Schematic View.
bool Render(int pLayer=-1)
Renders one frame.
bool SelectSchematicBookmark(const char *pBookmarkName)
Select an existing bookmark in the Schematic View and use it as the current bookmark.
bool PreRender(int pLayer=-1)
PreRenders one frame (needed for some shaders) This functions destroys the frame buffer content and m...
FBPropertyInt CurrentPaneCallbackPrefIndex
Read Write Property: Current Pane's Renderer Callback Preference Index.
Definition: fbrenderer.h:756
FBPropertyInt RegisteredCallbackCount
Read Only Property: Registered Renderer Callback Count.
Definition: fbrenderer.h:754
FBPropertyBool SelectionForceSnapPointsDisplay
Read write Property: Force show all feature points (pivots and etc) on selected models if true,...
Definition: fbrenderer.h:748
void SetSchematicViewInPane(unsigned int pPaneIndex, bool pActive)
Set/Remove the Schematic View in the given pane index.
bool UpdateCurrentSchematicBookmark()
Update the current bookmark in the Schematic View.
bool RectPickNormalized(float pX1, float pY1, float pX2, float pY2, FBPickInfosList &pPickInfosList, int pPaneId=-1)
Object rectangle selection.
void CloneViewAdd(FBView *pView)
Add a new clone view to call when rendering main viewer.
bool FrameCurrentCameraWithModels(bool pAll)
Frame the current camera either with all models or with the currently selected models.
void SetViewport(int pX, int pY, int pW, int pH)
Must be called before inputing if the same renderer is used on multiple views/cameras in the same app...
unsigned int GetSelectedPaneIndex() const
Return the pane index associated with the selected pane in the active viewer's layout.
FBPropertyBool Background
Read Write Property: The renderer.
Definition: fbrenderer.h:737
FBPropertyBool HideManipulatorsOnManip
Read Write Property: Hide manipulators UI elements while manipulating.
Definition: fbrenderer.h:757
FBPropertyBool FrustumCulling
Read Write Property: Turn on/off the early frustum culling optimization.
Definition: fbrenderer.h:739
bool GetSchematicNodesBoundingBox(bool pConsiderCollapsedNodes, int &pTop, int &pLeft, int &pBottom, int &pRight)
Returns the bounding box (top, left, bottom, right) used by all the Schematic View nodes.
FBPropertyManipulatorTransform ManipulatorTransform
Read Only Property: Manipulator responsible of moving objects
Definition: fbrenderer.h:730
void OGLSetupSceneLights(FBRenderOptions &pRenderOptions)
Setup the scene lights in OpenGL.
void SetPaneCount(unsigned int pPaneCount)
Set the number of panes to display in the viewer's layout.
int GetLastPickInfoList(FBPickInfosList &pPickInfosList)
Return the last picking info list in the current view pane.
bool CreateSchematicBookmark(const char *pBookmarkName)
Create a new bookmark in the Schematic View.
FBPropertyInt DisplayableGeometryCount
Read Only Property: Displayable geometry count.
Definition: fbrenderer.h:751
const FBModelList & GetDisplayableGeometryInCameraFrustum(FBModelList *pModelList=NULL, FBCamera *pCamera=NULL)
Get a list of displayable geometry inside given camera's frustum.
FBPropertyBool AdvancedLightingMode
Read write Property: Turn on/off advanced lighting setting UI widgets.
Definition: fbrenderer.h:776
FBPropertyDouble SelectionOverrideTransparency
Read write Property: Selection override layer transparency.
Definition: fbrenderer.h:746
FBPropertyBool IDBufferDisplay
Read write Property: Render Model's unique Color ID into color Buffer (used for picking)
Definition: fbrenderer.h:744
bool DeleteSchematicBookmark(const char *pBookmarkName)
Delete a bookmark from the Schematic View.
FBPropertyCamera CurrentCamera
Definition: fbrenderer.h:726
bool MouseInputNormalized(float pX, float pY, FBInputType pInputType, int pButtonKey, FBInputModifier pModifier, int pWheelDeltaValue, int pLayer=-1, int pPaneId=-1)
Mouse input.
FBPropertyColor SelectionOverrideColor
Read write Property: Selection override layer color.
Definition: fbrenderer.h:747
bool IsCurrentSchematicBookmarkDirty() const
Return if the current bookmark used by the Schematic View is dirty or not.
bool GetSchematicNodesBoundingBoxFromModel(FBModel *pModel, bool pConsiderCollapsedNodes, int &pTop, int &pLeft, int &pBottom, int &pRight)
Returns the bounding box (top, left, bottom, right) of a node's tree in the Schematic View,...
FBPropertyInt DisplayableLightCount
Read Only Property: Displayable light count.
Definition: fbrenderer.h:752
FBPropertyInt DisplaySetUpdateId
Read Only Property: Current DisplaySet Update Id. Add/Delete models, Show/Hide models will affect Dis...
Definition: fbrenderer.h:749
FBPropertyBool IDBufferPicking
Read write Property: Use ID (Color) Buffer for picking, instead of OpenGl selection buffer picking.
Definition: fbrenderer.h:742
bool IsCameraSwitcherInPane(unsigned int pPaneIndex)
Return the Camera Switcher activeness in the given pane index.
void CloneViewRender(int pWidth, int pHeight)
Viewer texture Id.
bool SetViewingOptions(FBViewingOptions &pOptions)
Set the viewing options.
void SetCameraSwitcherInPane(unsigned int pPaneIndex, bool pActive)
Set/Remove the Camera Switcher in the given pane index.
void KeyboardInput(FBDeviceKeyboardKey pKeyIndex, bool pKeyState, bool pIsTrigger=false)
Keyboard input.
FBPropertyListManipulator Manipulators
List: of manipulators.
Definition: fbrenderer.h:731
bool Pick(int pX, int pY, FBPickInfosList &pPickInfosList, bool pNeedIntersectPosition=false)
Object picking selection.
bool RectPick(int pX1, int pY1, int pX2, int pY2, FBPickInfosList &pPickInfosList)
Object rectangle selection.
FBPropertyBool AdvancedMaterialMode
Read write Property: Turn on/off advanced material setting UI widgets.
Definition: fbrenderer.h:763
FBCamera * GetCameraInPane(unsigned int pPaneIndex)
Return the camera displayed in the given pane index.
void SetCameraInPane(FBCamera *pCamera, unsigned int pPaneIndex)
Set the camera to display in the given pane index.
void ArrangeAllInSchematic(FBArrangeMode pMode)
Request to arrange all objects in schematic view .
FBPropertyInt CurrentPaneCallbackIndex
Read Write Property: Current Pane's Renderer Callback Index.
Definition: fbrenderer.h:755
bool RenderBegin(int pX, int pY, int pW, int pH)
RenderBegin.
FBPropertyBool HideManipulatorsOnPlayback
Read Write Property: Hide manipulators UI elements during playback.
Definition: fbrenderer.h:758
FBPropertyBool SelectionOverride
Read write Property: Add transparent color override layer on selected models if true.
Definition: fbrenderer.h:745
void ArrangeSelectedObjectsInSchematic()
Request to arrange selected objects in schematic view .
FBPropertyInt RendererUpdateId
Read Only Property: Current Render Update Id. DisplaySet update, material change, texture changes and...
Definition: fbrenderer.h:750
FBPropertyBool AutoEvaluate
Read Write Property: Indicate if a call to RenderBegin will also cause a re-evaluation of the scene.
Definition: fbrenderer.h:735
FBPropertyBool ShowStats
Read Write Property: Show the stats about FPS, Evaluation rate ... like when using Shift-F in main vi...
Definition: fbrenderer.h:738
bool SetSelectedPaneIndex(unsigned int pPaneIndex)
Select the pane associated with the given pane index in the active viewer's layout.
int GetViewerTextureId()
Viewer texture Id.
FBLight * GetDisplayableLight(int pIndex)
Get the displayable light.
FBPropertyBool PickingEnabled
Read Write Property: Is picking in the viewer enabled?
Definition: fbrenderer.h:741
bool RenderEnd(FBView *pView=NULL)
RenderEnd.
void CloneViewRemove(FBView *pView)
Remove a new clone view to call when rendering main viewer.
FBStringList GetSchematicBookmarkNames() const
Return the bookmark names available in the Schematic View.
FBRenderer(HIObject pObject)
Constructor.
bool RenameSchematicBookmark(const char *pOldBookmarkName, const char *pNewBookmarkName)
Rename a bookmark in the Schematic View.
FBPropertyBool DisplayNormals
Read Write Property: Display model normals in main viewer.
Definition: fbrenderer.h:740
FBPropertyScene Scene
Read Write Property: Scene that the renderer will use/draw
Definition: fbrenderer.h:734
bool ArrangeObjectsInSchematicFromModel(const FBModel &pModel)
Request to arrange a node's tree in the Schematic View, given a starting node.
FBPropertyBool EvaluateMode
Read Write Property: When true (default), call to Render will perform evaluation. Useful when renderi...
Definition: fbrenderer.h:736
FBPropertyListRendererCallback RendererCallbacks
List: Renderer Callbacks attached.
Definition: fbrenderer.h:753
bool MouseInput(int pX, int pY, FBInputType pInputType, int pButtonKey, FBInputModifier pModifier, int pWheelDeltaValue=0, int pLayer=-1)
Mouse input.
bool IsModelInsideCameraFrustum(FBModel *pGeometry, FBCamera *pCamera=NULL)
To tell if given model is located inside camera's frustum.
bool PickNormalized(float pX, float pY, FBPickInfosList &pPickInfosList, bool pNeedIntersectPosition=false, int pPaneId=-1)
Object picking selection.
FBPropertyDouble IDBufferPickingAlpha
Read write Property: Those Semi-transparent (Alpha Blend) geometry(region) contribute less than this ...
Definition: fbrenderer.h:743
FBModel * GetDisplayableGeometry(int pIndex)
Get the displayable geometry model.
FBViewingOptions * GetViewingOptions()
Obtain the current viewing options.
FBPropertyBool UseCameraSwitcher
Definition: fbrenderer.h:727
int GetSchematicViewPaneIndex()
Return the pane index of the pane displaying the Schematic View.
unsigned int GetPaneCount()
Return the number of panes displayed in the viewer's layout.
String list.
Definition: fbstring.h:208
Generic view.
Definition: fbcontrols.h:1905
Viewing options for rendering.
Definition: fbrenderer.h:176
FBCamera * GetViewingCamera()
Get a reference to the current viewing camera.
FBPickingMode & PickingMode()
Get a reference to the picking mode.
FBStereoDisplayMode & StereoDisplayMode()
Get a reference to the stereo display mode.
unsigned int RenderCallbackPrefIndex() const
Current Render callback Settings Index.
FBModelShadingMode & ShadingMode()
Get a reference to the display mode.
bool IsInSelectionBufferPicking() const
Is the rendering routine during picking status with GL selection buffer method.
bool IsInColorBufferPicking() const
Is the rendering routine during picking status with GL color buffer method.
bool & ShowCameraLabel()
Show Camera Label when rendering.
bool & ShowSafeArea()
Show Safe Area when rendering.
int PaneIndex() const
Current Viewer Pane being rendered.
bool & ShowTimeCode()
Show Time Code when rendering.
int & DisplayWhat()
Get a reference to the display mask.
class K_DLLIMPORT FBArrayTemplate< FBModel * > FBModelList
typedef class FBSDK_DLL FBArrayTemplate<FBModel*> FBModelList;
Definition: fbcharacter.h:597
Basic class definitions.
#define __FBClassDeclare(Name, Parent)
For internal use only.
Definition: fbcomponent.h:131
Contains the user interface components for the SDK.
FBInputModifier
Input Modifiers (Ctrl, Alt, Shift).
Definition: fbcontrols.h:141
FBInputType
Types of input events.
Definition: fbcontrols.h:123
FB_DEFINE_COMPONENT(K_DLLIMPORT, AnimationNode)
Animation node class.
Create new manipulators using the FBManipulator class.
Base class for Cameras.
FBModelShadingMode
Modes for model shading.
Definition: fbmodel.h:181
class K_DLLIMPORT FBPropertyBase< int, kFBPT_int > FBPropertyInt
Property: int
class K_DLLIMPORT FBPropertyBase< bool, kFBPT_bool > FBPropertyBool
Property: bool
#define FB_DEFINE_ENUM(DllTag, Type)
Define an enum and give it the ability to be a property.
Definition: fbproperties.h:150
class K_DLLIMPORT FBPropertyBase< FBColor, kFBPT_ColorRGB > FBPropertyColor
FBPropertyColor type definition.
class K_DLLIMPORT FBPropertyBase< double, kFBPT_double > FBPropertyDouble
Property: double
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
Definition: fbrenderer.h:48
class K_DLLIMPORT FBArrayTemplate< FBPickInfos > FBPickInfosList
typedef class FBSDK_DLL FBArrayTemplate<FBPickInfos> FBPickInfosList
Definition: fbrenderer.h:290
FBArrangeMode
Modes for arranging objects in schematic view.
Definition: fbrenderer.h:87
@ kVerticalMode
Arrange all objects vertically.
Definition: fbrenderer.h:89
@ kHorizontalMode
Arrange all objects horizontally.
Definition: fbrenderer.h:88
K_DLLIMPORT FBPickInfosList * FBCreatePickInfosList()
Create a FBPickInfosList object.
FBDeviceKeyboardKey
Keyboard keys (for input).
Definition: fbrenderer.h:134
@ kFBDKey3
'3'.
Definition: fbrenderer.h:148
@ kFBDKey6
'6'.
Definition: fbrenderer.h:151
@ kFBDKey9
'9'.
Definition: fbrenderer.h:154
@ kFBDKey4
'4'.
Definition: fbrenderer.h:149
@ kFBDKeyHome
Home.
Definition: fbrenderer.h:138
@ kFBDKeyF5
'F5'
Definition: fbrenderer.h:160
@ kFBDKeyEscape
Escape.
Definition: fbrenderer.h:144
@ kFBDKeyF4
'F4'.
Definition: fbrenderer.h:159
@ kFBDKey7
'7'.
Definition: fbrenderer.h:152
@ kFBDKeyF12
'F12'.
Definition: fbrenderer.h:167
@ kFBDKey5
'5'.
Definition: fbrenderer.h:150
@ kFBDKeyPageUp
Page Up.
Definition: fbrenderer.h:135
@ kFBDKey2
'2'.
Definition: fbrenderer.h:147
@ kFBDKeyF6
'F6'.
Definition: fbrenderer.h:161
@ kFBDKeyF8
'F8'.
Definition: fbrenderer.h:163
@ kFBDKey1
'1'.
Definition: fbrenderer.h:146
@ kFBDKeyArrowUp
Up.
Definition: fbrenderer.h:140
@ kFBDKey0
'0'.
Definition: fbrenderer.h:155
@ kFBDKeyF10
'F10'.
Definition: fbrenderer.h:165
@ kFBDKeyArrowLeft
Left.
Definition: fbrenderer.h:139
@ kFBDKeyF7
'F7'.
Definition: fbrenderer.h:162
@ kFBDKeyArrowRight
Right.
Definition: fbrenderer.h:141
@ kFBDKeyF9
'F9'.
Definition: fbrenderer.h:164
@ kFBDKeySpace
Space bar.
Definition: fbrenderer.h:145
@ kFBDKeyF2
'F2'.
Definition: fbrenderer.h:157
@ kFBDKeyF11
'F11'.
Definition: fbrenderer.h:166
@ kFBDKeyPageDown
Page Down.
Definition: fbrenderer.h:136
@ kFBDKeyF3
'F3'.
Definition: fbrenderer.h:158
@ kFBDKey8
'8'.
Definition: fbrenderer.h:153
@ kFBDKeyReturn
Return.
Definition: fbrenderer.h:143
@ kFBDKeyArrowDown
Down.
Definition: fbrenderer.h:142
@ kFBDKeyEnd
End.
Definition: fbrenderer.h:137
@ kFBDKeyF1
'F1'.
Definition: fbrenderer.h:156
K_DLLIMPORT void FBDestroyPickInfosList(FBPickInfosList *pPickInfosList)
Delete a FBPickInfosList object.
FBStereoDisplayMode
Definition: fbrenderer.h:93
@ kFBStereoDisplayAnaglyph
Display in Analygh stereo mode.
Definition: fbrenderer.h:100
@ kFBStereoDisplayActive
Display in active mode. User must enable OpenGL quad stereo buffer, and choose approriate stereo mode...
Definition: fbrenderer.h:97
@ kFBStereoDisplayRightEye
Display in Right Eye Caerma, No Stereo effect.
Definition: fbrenderer.h:96
@ kFBStereoDisplayHorizontalInterlace
Display in Horizontal Interlace stereo mode.
Definition: fbrenderer.h:98
@ kFBStereoDisplayAnaglyphLuminance
Display in Luminance Analygh stereo mode.
Definition: fbrenderer.h:101
@ kFBStereoDisplayFreeviewCrossed
Display in crossed free view stereo mode.
Definition: fbrenderer.h:103
@ kFBStereoDisplayCheckerboard
Display in Checkboard Interlace stereo mode.
Definition: fbrenderer.h:99
@ kFBStereoDisplayCenterEye
Display in Center Eye Camera, No Stereo effect.
Definition: fbrenderer.h:94
@ kFBStereoDisplayModeCount
update this count value when add new mode
Definition: fbrenderer.h:104
@ kFBStereoDisplayFreeviewParallel
Display in parallel free view stereo mode.
Definition: fbrenderer.h:102
@ kFBStereoDisplayLeftEye
Display in Left Eye Caerma, No Stereo effect.
Definition: fbrenderer.h:95
FBDisplayMode
Model display options.
Definition: fbrenderer.h:76
@ kFBDisplayModeHardShade
Hard shading.
Definition: fbrenderer.h:79
@ kFBDisplayModeTexture
Textures are displayed.
Definition: fbrenderer.h:78
@ kFBDisplayModeFlatShade
Flat shading.
Definition: fbrenderer.h:80
@ kFBDisplayModeWireFrame
Wire-frame rendering.
Definition: fbrenderer.h:81
@ kFBDisplayModeDefault
Use default display mode.
Definition: fbrenderer.h:77
@ kFBDisplayModeCount
End of enum, this value indicates the number of display modes available.
Definition: fbrenderer.h:82
FBPickingMode
3D picking mode.
Definition: fbrenderer.h:125
@ kFBPickingModeStandard
Standard picking mode.
Definition: fbrenderer.h:126
@ kFBPickingModeCount
End of enum, this valued indicates the number of picking modes available.
Definition: fbrenderer.h:129
@ kFBPickingModeXRay
X-Ray picking mode (obstructed models are displayed in overlay).
Definition: fbrenderer.h:127
@ kFBPickingModeModelsOnly
Models-only mode (no nulls or skeletons are displayed).
Definition: fbrenderer.h:128
FBDisplayWhat
Model display mask This mask determines what types of models are displayed by the renderer.
Definition: fbrenderer.h:111
@ kFBDisplayCamera
Cameras are displayed.
Definition: fbrenderer.h:118
@ kFBDisplayMarker
Markers are displayed.
Definition: fbrenderer.h:114
@ kFBDisplayNull
Null models are displayed.
Definition: fbrenderer.h:113
@ kFBDisplayCenter
Centers are displayed.
Definition: fbrenderer.h:116
@ kFBDisplaySkeleton
Skeletons and bones are displayed.
Definition: fbrenderer.h:115
@ kFBDisplayLight
Lights are displayed.
Definition: fbrenderer.h:117
@ kFBDisplayAll
Everything is displayed.
Definition: fbrenderer.h:120
@ kFBDisplay3dIcon
3D icons are displayed (3D icons are 3D elements that do not exist in the scene).
Definition: fbrenderer.h:119
@ kFBDisplayNone
Nothing is displayed.
Definition: fbrenderer.h:112
Declaration for the classes FBShaderManager, FBShader, FBPropertyListShader and other subclasses.
#define FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Definition: fbtypes.h:62
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Definition: fbtypes.h:68
class K_DLLIMPORT FBVector3< double > FBVector3d
3D vector.
Definition: fbtypes.h:438
Picking information structure.
Definition: fbrenderer.h:271
int mSubItemIndex
Picked sub item index, -1 for whole object.
Definition: fbrenderer.h:284
FBVector3d mNormal
Normal of the pick on the model's surface in world space.
Definition: fbrenderer.h:283
FBVector3d mPoint
Location of the pick on the model's surface in world space.
Definition: fbrenderer.h:282
FBPickInfos(FBModel *pModel, FBVector3d pPoint, FBVector3d pNormal, int pSubItemIndex)
FBPickInfos.
Definition: fbrenderer.h:278
FBModel * mModel
Model picked.
Definition: fbrenderer.h:279