Provided by: inventor-doc_2.1.5-10-18_all bug

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)()