Scroll to navigation

SoXtMaterialEditor(3IV)() SoXtMaterialEditor(3IV)()

NAME

SoXtMaterialEditor — Component which lets you edit a material interactively

INHERITS FROM

SoXtComponent > SoXtMaterialEditor

SYNOPSIS

#include <Inventor/Xt/SoXtMaterialEditor.h>
 

typedef void SoXtMaterialEditorCB(void *userData, const SoMaterial *mtl)
 

enum UpdateFrequency {

SoXtMaterialEditor::CONTINUOUS send updates with every mouse motion
 

SoXtMaterialEditor::AFTER_ACCEPT only send updates after user hits accept button
 

}
 

Methods from class SoXtMaterialEditor:
 

SoXtMaterialEditor(Widget parent = NULL, const char *name = NULL, SbBool buildInsideParent = TRUE)
 

~SoXtMaterialEditor()
 

void attach(SoMaterial *material, int index = 0)
 

void detach()
 

SbBool isAttached()
 

void addMaterialChangedCallback(SoXtMaterialEditorCB *f, void *userData = NULL)
 

void removeMaterialChangedCallback(SoXtMaterialEditorCB *f, void *userData = NULL)
 

void setUpdateFrequency(SoXtMaterialEditor::UpdateFrequency freq)
 

SoXtMaterialEditor::UpdateFrequency getUpdateFrequency ()
 

void setMaterial(const SoMaterial &mtl)
 

const SoMaterial & getMaterial() const
 

Methods from class SoXtComponent:
 

virtual void show()
 

virtual void hide()
 

SbBool isVisible()
 

Widget getWidget() const
 

SbBool isTopLevelShell() const
 

Widget getShellWidget() const
 

Widget getParentWidget() const
 

void setSize(const SbVec2s &size)
 

SbVec2s getSize()
 

Display * getDisplay()
 

void setTitle(const char *newTitle)
 

const char * getTitle() const
 

void setIconTitle(const char *newIconTitle)
 

const char * getIconTitle() const
 

void setWindowCloseCallback(SoXtComponentCB *func, void *data = NULL)
 

static SoXtComponent * getComponent(Widget w)
 

const char * getWidgetName() const
 

const char * getClassName() const
 

DESCRIPTION

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.

METHODS


SoXtMaterialEditor(Widget parent = NULL, const char *name = NULL, SbBool buildInsideParent = TRUE)
 

~SoXtMaterialEditor()
 

Constructor and destructor.
 


void attach(SoMaterial *material, int index = 0)
 

void detach()
 

Attach/detach the editor to a material node and edit the material of the given index.
 


SbBool isAttached()
 

Returns TRUE if the editor is attached.
 


void addMaterialChangedCallback(SoXtMaterialEditorCB *f, void *userData = NULL)
 

void removeMaterialChangedCallback(SoXtMaterialEditorCB *f, void *userData = NULL)
 

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 setUpdateFrequency(SoXtMaterialEditor::UpdateFrequency freq)
 

SoXtMaterialEditor::UpdateFrequency getUpdateFrequency ()
 

Sets/gets the update frequency. See the UpdateFrequency enum declaration.
 


void setMaterial(const SoMaterial &mtl)
 

const SoMaterial & getMaterial() const
 

Set a new material value, and get the current material value.
 

RESOURCES


*SoXtMaterialEditor.tile1Color: #4c4c4c (color name or hex value) *SoXtMaterialEditor.tile2Color: #999999 (color name or hex value) *SoXtMaterialEditor.light1Color: white (color name or hex value) *SoXtMaterialEditor.light2Color: white (color name or hex value) *SoXtMaterialEditor.updateFrequency: continuous (continuous | manual)

 

SEE ALSO

SoXtComponent, SoXtMaterialList, SoXtDirLightEditor, SoMaterial