SoXtMaterialEditor(3IV)() | SoXtMaterialEditor(3IV)() |
SoXtMaterialEditor — Component which lets you edit a material interactively
SoXtComponent > SoXtMaterialEditor
#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
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.
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.
*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)
SoXtComponent, SoXtMaterialList, SoXtDirLightEditor, SoMaterial