SoXtMaterialEditor(3IV)

SoXtMaterialEditor (SoXtMtlEd) - Component which lets you edit a material interactively

Showing IRIX 6.5.30 (default release). Added in IRIX 6.5.22.

NAME
     SoXtMaterialEditor (SoXtMtlEd) - Component which lets you edit a material
     interactively

INHERITS FROM
     SoXtComponent > SoXtMaterialEditor

SYNOPSIS
     #include <Inventor_c/Xt/SoXtMaterialEditor.h>

     typedef void                SoXtMaterialEditorCB(void *userData, const
                                      SoMaterial *mtl)
     typedef SoXtMaterialEditor  SoXtMtlEd

     enum SoXtMaterialEditorUpdateFrequency {
          SO_XT_MTL_ED_CONTINUOUS    send updates with every mouse motion
          SO_XT_MTL_ED_AFTER_ACCEPT  only send updates after user hits accept
                                          button
     }

          Functions from class SoXtMaterialEditor:

     SoXtMaterialEditor *  SoXtMtlEdCreate(Widget parent = NULL, const char
                                *name = NULL, SbBool buildInsideParent = TRUE)
     void                  SoXtMtlEdDelete(SoXtMtlEd *this)
     void                  SoXtMtlEdAttach(SoXtMtlEd *this, SoMaterial
                                *material, int index = 0)
     void                  SoXtMtlEdDetach(SoXtMtlEd *this)
     SbBool                SoXtMtlEdIsAttached(SoXtMtlEd *this)
     void                  SoXtMtlEdAddMtlChangedCB(SoXtMtlEd *this,
                                SoXtMaterialEditorCB *f, void *userData =
                                NULL)
     void                  SoXtMtlEdRemoveMtlChangedCB(SoXtMtlEd *this,
                                SoXtMaterialEditorCB *f, void *userData =
                                NULL)
     void                  SoXtMtlEdSetUpdateFreq(SoXtMtlEd *this,
                                SoXtMaterialEditor::UpdateFrequency freq)
     SoXtMaterialEditor::UpdateFrequency
                           SoXtMtlEdGetUpdateFreq(SoXtMtlEd *this)
     void                  SoXtMtlEdSetMtl(SoXtMtlEd *this, const SoMaterial
                                *mtl)
     const SoMaterial *    SoXtMtlEdGetMtl(const SoXtMtlEd *this)

          Functions from class SoXtComponent:

     void                SoXtMtlEdShow(SoXtMtlEd *this)
     void                SoXtMtlEdHide(SoXtMtlEd *this)
     SbBool              SoXtMtlEdIsVisible(SoXtMtlEd *this)
     Widget              SoXtMtlEdGetWidget(const SoXtMtlEd *this)
     SbBool              SoXtMtlEdIsTopLevelShell(const SoXtMtlEd *this)
     Widget              SoXtMtlEdGetShellWidget(const SoXtMtlEd *this)

     Widget              SoXtMtlEdGetParentWidget(const SoXtMtlEd *this)
     void                SoXtMtlEdSetSize(SoXtMtlEd *this, const SbVec2s
                              *size)
     SbVec2s             SoXtMtlEdGetSize(SoXtMtlEd *this)
     Display *           SoXtMtlEdGetDisplay(SoXtMtlEd *this)
     void                SoXtMtlEdSetTitle(SoXtMtlEd *this, const char
                              *newTitle)
     const char *        SoXtMtlEdGetTitle(const SoXtMtlEd *this)
     void                SoXtMtlEdSetIconTitle(SoXtMtlEd *this, const char
                              *newIconTitle)
     const char *        SoXtMtlEdGetIconTitle(const SoXtMtlEd *this)
     void                SoXtMtlEdSetWinCloseCB(SoXtMtlEd *this,
                              SoXtComponentCB *func, void *data = NULL)
     SoXtComponent *     SoXtMtlEdGetComp(Widget w)
     const char *        SoXtMtlEdGetWidgetName(const SoXtMtlEd *this)
     const char *        SoXtMtlEdGetClassName(const SoXtMtlEd *this)


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.

FUNCTIONS
     SoXtMaterialEditor *  SoXtMtlEdCreate(Widget parent = NULL, const char
                                *name = NULL, SbBool buildInsideParent = TRUE)
     void                  SoXtMtlEdDelete(SoXtMtlEd *this)
          Constructor and destructor.

     void                  SoXtMtlEdAttach(SoXtMtlEd *this, SoMaterial
                                *material, int index = 0)
     void                  SoXtMtlEdDetach(SoXtMtlEd *this)
          Attach/detach the editor to a material node and edit the material of
          the given index.

     SbBool                SoXtMtlEdIsAttached(SoXtMtlEd *this)
          Returns TRUE if the editor is attached.

     void                  SoXtMtlEdAddMtlChangedCB(SoXtMtlEd *this,
                                SoXtMaterialEditorCB *f, void *userData =
                                NULL)
     void                  SoXtMtlEdRemoveMtlChangedCB(SoXtMtlEd *this,
                                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                  SoXtMtlEdSetUpdateFreq(SoXtMtlEd *this,
                                SoXtMaterialEditor::UpdateFrequency freq)
     SoXtMaterialEditor::UpdateFrequency
                           SoXtMtlEdGetUpdateFreq(SoXtMtlEd *this)
          Sets/gets the update frequency. See the UpdateFrequency enum
          declaration.

     void                  SoXtMtlEdSetMtl(SoXtMtlEd *this, const SoMaterial
                                *mtl)
     const SoMaterial *    SoXtMtlEdGetMtl(const SoXtMtlEd *this)
          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