Provided by: inventor-doc_2.1.6+ds-2_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)()