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