# I3DEditorHostPart Struct Reference
[Shell Interfaces]

Inheritance diagram for I3DEditorHostPart:

List of all members.

## Public Member Functions
virtual void MCCOMAPI | InitEditorHost (real32 sceneMagnitude)=0
virtual void MCCOMAPI | SetPaneExtension (IDType paneExtension)=0
virtual EPaneConfig MCCOMAPI | GetPaneConfig ()=0
virtual void MCCOMAPI | SetPaneConfig (EPaneConfig config)=0
virtual void MCCOMAPI | SetPaneArrayDimensions (uint32 x, uint32 y)=0
virtual void MCCOMAPI | SetDefaultPaneCameraConfig ()=0
virtual void MCCOMAPI | GetPanes (TMCCountedPtrArray< I3DEditorHostPanePart > &panes)=0
virtual void MCCOMAPI | ShowSideToolbar (boolean doShowPaneModes, boolean doShowDisplayModes)=0
virtual void MCCOMAPI | SetActionResponder (IMFResponder *responder)=0
virtual void MCCOMAPI | AllocatePanes (uint32 numPanes)=0
virtual void MCCOMAPI | GetWorkingBox (IWorkingBox **workingBox)=0
| Deprecated.
virtual IWorkingBox *MCCOMAPI | GetWorkingBox () const =0
| Returns the working box that is associated with the part.
virtual void MCCOMAPI | MapDrawingPlanes (boolean value)=0
virtual boolean MCCOMAPI | AreDrawingPlanesMapped ()=0
virtual boolean MCCOMAPI | IsCanonicalCamera (const I3DShCamera *camera)=0
virtual void MCCOMAPI | GetCanonicalCameras (TMCCountedPtrArray< I3DShCamera > &canonicalCameras)=0
virtual void MCCOMAPI | SetCanonicalCameras (const TMCCountedPtrArray< I3DShCamera > &inCameras)=0
virtual void MCCOMAPI | GetClientCameras (TMCCountedPtrArray< I3DShCamera > &clientCameras)=0
virtual void MCCOMAPI | SetClientCameras (const TMCCountedPtrArray< I3DShCamera > &inCameras)=0
virtual void MCCOMAPI | GetCameraToolBar (IMFToolbarPart **outToolBar)=0
virtual real MCCOMAPI | GetDefault2DZoom ()=0
virtual void MCCOMAPI | SetDefault2DZoom (real default2DZoom)=0
virtual void MCCOMAPI | GetDefaultSpeeds (real32 &outMovSpeed, real32 &outRotSpeed) const =0
virtual void MCCOMAPI | SetDefaultSpeeds (real32 inMovSpeed, real32 inRotSpeed)=0
virtual real32 MCCOMAPI | GetGeneralSize () const =0
virtual void MCCOMAPI | SetGeneralSize (real32 inSize)=0
virtual void MCCOMAPI | SetTopLeftPopup (IMFMenu *popup)=0
virtual void MCCOMAPI | EnableTrackingOptimizations (boolean inEnable)=0
virtual boolean MCCOMAPI | IsGroundPlaneActivated ()=0
virtual void MCCOMAPI | ActivateGroundPlane (boolean activate)=0
virtual void MCCOMAPI | ToggleWorkingBoxPlane (int32 planeindex, boolean doInvalidate=true, boolean forceState=false, boolean shown=true)=0
virtual void MCCOMAPI | ActivateWorkingBoxPlane (int32 planeindex)=0
virtual void MCCOMAPI | BuildMenuBar ()=0
virtual void MCCOMAPI | SetImmediateMode (boolean on)=0
virtual void MCCOMAPI | SetCurrentCameraToDirectorCamera (int32 paneIndex)=0
virtual void MCCOMAPI | GetAllPanes (TMCCountedPtrArray< I3DEditorHostPanePart > &panes)=0
virtual void MCCOMAPI | GetCustomPositions (TMCArray< TSavedPosition > &customPositions)=0
virtual void MCCOMAPI | SetCustomPositions (TMCArray< TSavedPosition > &customPositions)=0
virtual void MCCOMAPI | SetInteractiveRendererToPane (const int32 paneIndex, I3DExRendererBox *newRenderer)=0
virtual void MCCOMAPI | SetZoomValuesFromWorkingBoxSize (real32 maxSize)=0
virtual void MCCOMAPI | RegisterListener (IChangeListener *listener)=0
virtual void MCCOMAPI | UnregisterListener (IChangeListener *listener)=0
virtual boolean MCCOMAPI | IsWorkingBoxPlaneShown (int32 planeindex)=0
virtual void MCCOMAPI | UpdateWorkingBoxImages ()=0
virtual void MCCOMAPI | SetExtraToolPart (IMFPart *inPart)=0
virtual void MCCOMAPI | AddCamera (I3DShCamera *inCamera, boolean inIsCanonical, boolean inRebuildMenu)=0
virtual void MCCOMAPI | RemoveCamera (I3DShCamera *inCamera, boolean inIsCanonical, boolean inRebuildMenu)=0

## Detailed Description

Interface of the part that embeds interactive renderers. The 3D Editor Host is designed to deal with the camera tools and encapsulate a 3D view. It deals with multiple panes. You can implement your own pane part in a modeler so that you can control what it contains.

-Note: to use a local camera toolbar, in MCSketch:

- add the extra token tbId followed by the id of your toolbar.
- add the extra token DadY followed by the id of the parent that contains both the host and your toolbar.

If you create a modeler, you can use the 3DEditorHostPart in your windows. To include it, you must add a NodePart with the part extension '3dHO'. When you load the window (or dialog) from the resource, a 3DEditorHostPart will be created. You can then search that part by ID (usually the 'host' ID is used) and set the type of pane extension you want to use.

The initialisation code of your modeler could look like this:

     void CreateWindows()
     {
       void* oldResources = NULL;
       gResourceUtilities->SetupComponentResources('modu',myModelerID, &oldResources);

       fModule->CreateWindowByResource(&fWindow,myWindowsResID,true);
       ThrowIfNil(fWindow);

       TMCCountedPtr<IMFPart> hostPart;
       fWindow->FindChildPartByID(&hostPart, 'host');
       ThrowIfNil(hostPart);

       TMCCountedPtr<I3DEditorHostPart> my3DEditorHostPart;
       hostPart->QueryInterface(IID_I3DEditorHostPart, (void **)&my3DEditorHostPart);
       ThrowIfNil(my3DEditorHostPart);

       TMCCountedPtr<IMFResponder> actionResponder;
       fDocument->QueryInterface(IID_IMFResponder, (void**)&actionResponder);
       f3DEditorHostPart->SetActionResponder(actionResponder);

       my3DEditorHostPart->SetPaneExtension('xxxx');

       ...  //(allocate the panes...)
     }

## Member Function Documentation

virtual void MCCOMAPI I3DEditorHostPart::ActivateGroundPlane | ( | boolean | activate | ) | `[pure virtual]`

Deprecated:
  Activate/Deactivate the ground plane.

Parameters:

  | activate | True if the ground plane should be activated.

virtual void MCCOMAPI I3DEditorHostPart::ActivateWorkingBoxPlane | ( | int32 | planeindex | ) | `[pure virtual]`

Change the active plane of the working box.

Parameters:

  | planeindex | Index of the plane that should be active.

virtual void MCCOMAPI I3DEditorHostPart::AddCamera | ( | I3DShCamera * | inCamera,
|  | boolean | inIsCanonical,
|  | boolean | inRebuildMenu |
| ) |  |  | `[pure virtual]`

virtual void MCCOMAPI I3DEditorHostPart::AllocatePanes | ( | uint32 | numPanes | ) | `[pure virtual]`

Allocates the total number of panes that can be used with the 3DEditorHost. (Usually 4). Note that depending on the pane configuration (see SetPaneConfig()) they will not all be visible at the same time.

Parameters:

  | numPanes | Total number of pane parts.

virtual boolean MCCOMAPI I3DEditorHostPart::AreDrawingPlanesMapped | ( |  | ) | `[pure virtual]`

Returns true if the custom drawing planes are used instead of the working box ones.

See also:
  MapDrawingPlanes()

virtual void MCCOMAPI I3DEditorHostPart::BuildMenuBar | ( |  | ) | `[pure virtual]`

Build the menu bar.

virtual void MCCOMAPI I3DEditorHostPart::EnableTrackingOptimizations | ( | boolean | inEnable | ) | `[pure virtual]`

Enable/Disable the tracking optimizations. When the optimizations are enabled the 3DEditorHost is not redrawed while the user is resizing the Window.

Parameters:

  | inEnable | True if the optimizations are enabled.

virtual void MCCOMAPI I3DEditorHostPart::GetAllPanes | ( | TMCCountedPtrArray< I3DEditorHostPanePart > & | panes | ) | `[pure virtual]`

Fill an array with the panes of the editor host.

Parameters:

  | panes | The array to be filled

virtual void MCCOMAPI I3DEditorHostPart::GetCameraToolBar | ( | IMFToolbarPart ** | outToolBar | ) | `[pure virtual]`

Returns a pointer to the toolbar that contains the camera tools (rotate, track...) It is identical to GetCameraToolWindow() except that it does an extra QueryInterface().

Parameters:

  | outToolBar | A pointer to the toolbar.

virtual void MCCOMAPI I3DEditorHostPart::GetCanonicalCameras | ( | TMCCountedPtrArray< I3DShCamera > & | canonicalCameras | ) | `[pure virtual]`

Returns the list of all the canonical cameras (director, top, left, front, ...)

Parameters:

  | canonicalCameras | The list of canonical cameras that is returned.

virtual void MCCOMAPI I3DEditorHostPart::GetClientCameras | ( | TMCCountedPtrArray< I3DShCamera > & | clientCameras | ) | `[pure virtual]`

Returns the list of all the client cameras. The client camera are all the cameras except the canonical cameras (see GetCanonicalCameras()).

Parameters:

  | clientCameras | The list of all the client cameras.

virtual void MCCOMAPI I3DEditorHostPart::GetCustomPositions | ( | TMCArray< TSavedPosition > & | customPositions | ) | `[pure virtual]`

Gets the saved position of the custom camera positions.

Parameters:

  | customPositions | The list of camera positions.

virtual real MCCOMAPI I3DEditorHostPart::GetDefault2DZoom | ( |  | ) | `[pure virtual]`

Returns the default 2D zoom.

virtual void MCCOMAPI I3DEditorHostPart::GetDefaultSpeeds | ( | real32 & | outMovSpeed,
|  | real32 & | outRotSpeed |
| ) |  |  | const`[pure virtual]`

Returns the default movement speed for the camera trackers

Parameters:

  | outMovSpeed | The value of the movement speed
  | outRotSpeed | The value of the rotation speed

virtual real32 MCCOMAPI I3DEditorHostPart::GetGeneralSize | ( |  | ) | const`[pure virtual]`

Returns the general size (order of magnitude) of what is displayed

virtual EPaneConfig MCCOMAPI I3DEditorHostPart::GetPaneConfig | ( |  | ) | `[pure virtual]`

Returns the current pane configuration. See EPaneConfig for more info.

virtual void MCCOMAPI I3DEditorHostPart::GetPanes | ( | TMCCountedPtrArray< I3DEditorHostPanePart > & | panes | ) | `[pure virtual]`

Returns the list of visible panes. To get all the panes of the editorHostPart, use GetAllPanes(...)

Parameters:

  | panes | The list of the visible panes that is returned.

virtual IWorkingBox* MCCOMAPI I3DEditorHostPart::GetWorkingBox | ( |  | ) | const`[pure virtual]`

Returns the working box that is associated with the part.

virtual void MCCOMAPI I3DEditorHostPart::GetWorkingBox | ( | IWorkingBox ** | workingBox | ) | `[pure virtual]`

Deprecated.

virtual void MCCOMAPI I3DEditorHostPart::InitEditorHost | ( | real32 | sceneMagnitude | ) | `[pure virtual]`

Sets the working scale

Parameters:

  | sceneMagnitude | The scale of the scene

virtual boolean MCCOMAPI I3DEditorHostPart::IsCanonicalCamera | ( | const I3DShCamera * | camera | ) | `[pure virtual]`

Returns true if the camera is one of the default camera (director, top, left, front, ...)

Parameters:

  | camera | The camera that is tested.

virtual boolean MCCOMAPI I3DEditorHostPart::IsGroundPlaneActivated | ( |  | ) | `[pure virtual]`

Deprecated:
  Returns true if the ground plane is activated.

virtual boolean MCCOMAPI I3DEditorHostPart::IsWorkingBoxPlaneShown | ( | int32 | planeindex | ) | `[pure virtual]`

Returns true if the given plane is shown

Parameters:

  | planeindex | The index of the plane.

virtual void MCCOMAPI I3DEditorHostPart::MapDrawingPlanes | ( | boolean | value | ) | `[pure virtual]`

Set to true to use a custom drawing plane instead of the working box ones.

Parameters:

  | value | The state of the drawing.

virtual void MCCOMAPI I3DEditorHostPart::RegisterListener | ( | IChangeListener * | listener | ) | `[pure virtual]`

Register a listener. See messages above. Note : there is no channels, just 1 listener is stored.

Parameters:

  | listener | The listener that is registered.

virtual void MCCOMAPI I3DEditorHostPart::RemoveCamera | ( | I3DShCamera * | inCamera,
|  | boolean | inIsCanonical,
|  | boolean | inRebuildMenu |
| ) |  |  | `[pure virtual]`

virtual void MCCOMAPI I3DEditorHostPart::SetActionResponder | ( | IMFResponder * | responder | ) | `[pure virtual]`

Sets the action responder on the part. In the case of a modeler (or module) the action responder is usually the document associated with the module. You must call this function after creating a 3DEditorHost part to set the action responder for Undo/Redo (normally the document's responder)

Parameters:

  | responder | The action responder.

virtual void MCCOMAPI I3DEditorHostPart::SetCanonicalCameras | ( | const TMCCountedPtrArray< I3DShCamera > & | inCameras | ) | `[pure virtual]`

Sets the list of all the canonical cameras (director, top, left, front, ...)

Parameters:

  | inCameras | The list of canonical cameras.

virtual void MCCOMAPI I3DEditorHostPart::SetClientCameras | ( | const TMCCountedPtrArray< I3DShCamera > & | inCameras | ) | `[pure virtual]`

Sets the client cameras. (by opposition to canonical cameras).

Parameters:

  | inCameras | The list of all the client cameras.

virtual void MCCOMAPI I3DEditorHostPart::SetCurrentCameraToDirectorCamera | ( | int32 | paneIndex | ) | `[pure virtual]`

Use the director camera as the current camera.

Parameters:

  | paneIndex | The index of the pane in which the camera is changed.

virtual void MCCOMAPI I3DEditorHostPart::SetCustomPositions | ( | TMCArray< TSavedPosition > & | customPositions | ) | `[pure virtual]`

Set the saved position of the custom camera positions.

Parameters:

  | customPositions | The array of custom positions.

virtual void MCCOMAPI I3DEditorHostPart::SetDefault2DZoom | ( | real | default2DZoom | ) | `[pure virtual]`

Sets the default 2D Zoom

Parameters:

  | default2DZoom | The value of zoom.

virtual void MCCOMAPI I3DEditorHostPart::SetDefaultPaneCameraConfig | ( |  | ) | `[pure virtual]`

Sets the default camera on the current panes.

virtual void MCCOMAPI I3DEditorHostPart::SetDefaultSpeeds | ( | real32 | inMovSpeed,
|  | real32 | inRotSpeed |
| ) |  |  | `[pure virtual]`

Sets the default speeds for the camera trackers

Parameters:

  | inMovSpeed | The value of the movement speed (1.0 is the default)
  | inRotSpeed | The value of the rotation speed (1.0 is the default)

virtual void MCCOMAPI I3DEditorHostPart::SetExtraToolPart | ( | IMFPart * | inPart | ) | `[pure virtual]`

Adds an extra part to the side of the window (under the regular toolbars)

Parameters:

  | inPart | A pointer to the extra tool part.

virtual void MCCOMAPI I3DEditorHostPart::SetGeneralSize | ( | real32 | inSize | ) | `[pure virtual]`

Sets the general size of what will be displayed in this host part. It is used as the scene's order of magnitude when there is no scene (previews, modelers...), in order to correctly set parameters related to the cameras.

Parameters:

  | inSize | The size, in inches (1.0 is the default)

virtual void MCCOMAPI I3DEditorHostPart::SetImmediateMode | ( | boolean | on | ) | `[pure virtual]`

Turn on/off the immediate mode. The immediate mode is used for interactive manipulations by the user. When it is on, the rendering is blit directly to the screen without going through the back buffer.

Parameters:

  | on | True if the immediate mode should be on.

virtual void MCCOMAPI I3DEditorHostPart::SetInteractiveRendererToPane | ( | const int32 | paneIndex,
|  | I3DExRendererBox * | newRenderer |
| ) |  |  | `[pure virtual]`

Sets a renderer to a particular pane.

Parameters:

  | paneIndex | The index of the pane in the pane array of the editorHost.
  | newRenderer | The new renderer for the pane.

virtual void MCCOMAPI I3DEditorHostPart::SetPaneArrayDimensions | ( | uint32 | x,
|  | uint32 | y |
| ) |  |  | `[pure virtual]`

Sets the number of panes in the window rect.

Parameters:

  | x | Number of panes horizontally.
  | y | Number of panes vertically.

virtual void MCCOMAPI I3DEditorHostPart::SetPaneConfig | ( | EPaneConfig | config | ) | `[pure virtual]`

Sets the current pane configuration. See EPaneConfig for more info.

Parameters:

  | config | The configuration of the panes.

virtual void MCCOMAPI I3DEditorHostPart::SetPaneExtension | ( | IDType | paneExtension | ) | `[pure virtual]`

Sets the ID of the part extension that is used as pane part. This part should implement the interface I3DEditorHostPanePart.

Parameters:

  | paneExtension | The class ID of the part extension.

virtual void MCCOMAPI I3DEditorHostPart::SetTopLeftPopup | ( | IMFMenu * | popup | ) | `[pure virtual]`

Sets the menu that is used at the top of left of each pane.

Parameters:

  | popup | A pointer to menu.

virtual void MCCOMAPI I3DEditorHostPart::SetZoomValuesFromWorkingBoxSize | ( | real32 | maxSize | ) | `[pure virtual]`

Sets the defaultZoom value of the 3D view so the working box will fit in the view when the zoom is set to 100%.

Parameters:

  | maxSize | The max dimension of the working box.

virtual void MCCOMAPI I3DEditorHostPart::ShowSideToolbar | ( | boolean | doShowPaneModes,
|  | boolean | doShowDisplayModes |
| ) |  |  | `[pure virtual]`

Sets the visibility status of the tool bar on the side of the window (The toolbar that contains the part configurations and the rendering modes).

Parameters:

  | doShowPaneModes | True if the panes configurations icons should be visible.
  | doShowDisplayModes | True if the rendering modes icons should be visible.

virtual void MCCOMAPI I3DEditorHostPart::ToggleWorkingBoxPlane | ( | int32 | planeindex,
|  | boolean | doInvalidate = `true`,
|  | boolean | forceState = `false`,
|  | boolean | shown = `true` |
| ) |  |  | `[pure virtual]`

Change the state of a plane of the working box.

Parameters:

  | planeindex | The index of the plane.
  | doInvalidate | True if the views should be rerendered.
  | forceState | True if the state should be changed.
  | shown | True if the plane is visible.

virtual void MCCOMAPI I3DEditorHostPart::UnregisterListener | ( | IChangeListener * | listener | ) | `[pure virtual]`

Unegister a listener.

Parameters:

  | listener | The listener that is unregistered.

virtual void MCCOMAPI I3DEditorHostPart::UpdateWorkingBoxImages | ( |  | ) | `[pure virtual]`

Update the rendering of the images attached to the working box

The documentation for this struct was generated from the following file:

- I3DEditorHostPart.h