SoQtMaterialEditor Class Reference

VSG extension Component which lets you edit a material interactively. More...

#include <Inventor/Qt/SoQtMaterialEditor.h>

Inheritance diagram for SoQtMaterialEditor:

List of all members.

Public Types

enum  UpdateFrequency {

Public Member Functions

 SoQtMaterialEditor (QWidget *parent=qApp->activeWindow(), const char *name=NULL, SbBool buildInsideParent=TRUE)
 ~SoQtMaterialEditor ()
void attach (SoMaterial *material, int index=0)
void attach (SoVRMLMaterial *material)
void detach ()
SbBool isAttached ()
void addMaterialChangedCallback (SoQtMaterialEditorCB *f, void *userData=NULL)
void removeMaterialChangedCallback (SoQtMaterialEditorCB *f, void *userData=NULL)
void setUpdateFrequency (SoQtMaterialEditor::UpdateFrequency freq)
SoQtMaterialEditor::UpdateFrequency getUpdateFrequency ()
virtual void show ()
virtual void hide ()
void setMaterial (const SoMaterial &mtl)
void setMaterial (const SoVRMLMaterial &mtl)
const SoMaterialgetMaterial () const
SbBool isAttachedVRML ()

Public Attributes

SbBool alwaysOnTop
SoQtMaterialPalette * m_pMaterialPalette

Detailed Description

VSG extension Component which lets you edit a material interactively.

This class is used to edit the material properties of an SoMaterial node. The editor can also directly be used using callbacks instead of attaching it to a node. The component consists of a render area displaying a test sphere, some sliders, a set of radio buttons, and a menu. The sphere displays the current material being edited. There is one slider for each material coefficient. Those fields are ambient, diffuse, specular, emissive (all of which are colors); and transparency and shininess (which are scalar values). A color editor can be opened to edit the color slider base color. A material list displays palettes of predefined materials from which to choose.

The editor can currently be attached to only one material at a time. Attaching two different materials will automatically detach the first one before attaching the second.


SoQtComponent, SoQtDirectionalLightEditor, SoMaterial

Member Enumeration Documentation

Update frequency.

UpdateFrequency is how often new values should be sent to the node or the callback routine.


Send updates with every mouse motion.


Only send updates after user hits accept button.

Constructor & Destructor Documentation

SoQtMaterialEditor::SoQtMaterialEditor ( QWidget *  parent = qApp->activeWindow(),
const char *  name = NULL,
SbBool  buildInsideParent = TRUE 


SoQtMaterialEditor::~SoQtMaterialEditor (  ) 


Member Function Documentation

void SoQtMaterialEditor::addMaterialChangedCallback ( SoQtMaterialEditorCB f,
void *  userData = NULL 
) [inline]

Additional way of using the material editor, by registering a callback which will be called whenever the material changes (check the UpdateFrequency to find when the callbacks will be called).

void SoQtMaterialEditor::attach ( SoVRMLMaterial material  ) 

Attaches the editor to a VRML material node and edits the material.

void SoQtMaterialEditor::attach ( SoMaterial material,
int  index = 0 

Attaches the editor to a material node and edits the material of the given index.

void SoQtMaterialEditor::detach (  ) 

Detaches the editor from the material node.

const SoMaterial& SoQtMaterialEditor::getMaterial (  )  const [inline]

Gets the current material value.

SoQtMaterialEditor::UpdateFrequency SoQtMaterialEditor::getUpdateFrequency (  )  [inline]

Gets the update frequency.

See the UpdateFrequency enum declaration.

virtual void SoQtMaterialEditor::hide (  )  [virtual]

This hides the component.

Reimplemented from SoQtComponent.

SbBool SoQtMaterialEditor::isAttached (  )  [inline]

Returns TRUE if the editor is attached.

SbBool SoQtMaterialEditor::isAttachedVRML (  )  [inline]

Returns TRUE if attached material is a VRML material.

void SoQtMaterialEditor::removeMaterialChangedCallback ( SoQtMaterialEditorCB f,
void *  userData = NULL 
) [inline]

Removes the material changed callback.

void SoQtMaterialEditor::setMaterial ( const SoVRMLMaterial mtl  ) 

Sets a new VRML material value.

void SoQtMaterialEditor::setMaterial ( const SoMaterial mtl  ) 

Sets a new material value.

void SoQtMaterialEditor::setUpdateFrequency ( SoQtMaterialEditor::UpdateFrequency  freq  ) 

Sets the update frequency.

See the UpdateFrequency enum declaration.

virtual void SoQtMaterialEditor::show (  )  [virtual]

This shows the component.

Reimplemented from SoQtComponent.

Member Data Documentation

Boolean indicating if the editor should be always on top of the other windows.

Pointer to a material palette editor.

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

Open Inventor Toolkit reference manual, generated on 15 May 2022
Copyright © Thermo Fisher Scientific All rights reserved.