Provided by: inventor-doc_2.1.5-10-18_all
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 SoXtMaterialEditor(3IV)()