00001
00002
00003 #include "Iguana/Controls/src/IgMatEdModificationAction.h"
00004 #include <Inventor/actions/SoSubAction.h>
00005 #include <Inventor/nodes/SoNode.h>
00006 #include <Inventor/nodes/SoMaterial.h>
00007 #include <classlib/utils/DebugAids.h>
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 SO_ACTION_SOURCE(IgMatEdModificationAction)
00020
00021
00022 IgMatEdModificationAction::IgMatEdModificationAction (void)
00023 {
00024 static bool initialized=false;
00025
00026 if (!initialized)
00027 {
00028 IgMatEdModificationAction::initClass();
00029 initialized=true;
00030 }
00031
00032 SO_ACTION_CONSTRUCTOR(IgMatEdModificationAction);
00033 }
00034
00035 IgMatEdModificationAction::~IgMatEdModificationAction (void)
00036 {
00037 }
00038
00039 void
00040 IgMatEdModificationAction::initClass (void)
00041 {
00042 SO_ACTION_INIT_CLASS(IgMatEdModificationAction, SoAction);
00043 SO_ACTION_ADD_METHOD(SoNode, nullAction);
00044 SO_ACTION_ADD_METHOD(SoMaterial, &modifyMaterial);
00045 }
00046
00047 void
00048 IgMatEdModificationAction::modifyMaterial( SoAction *, SoNode *node)
00049 {
00050 SoMaterial *material = dynamic_cast<SoMaterial *> (node);
00051 ASSERT (material);
00052 material->shininess.setValue (m_shininess);
00053 material->transparency.setValue (m_transparency);
00054 material->ambientColor.setValue (m_ambientColor);
00055 material->diffuseColor.setValue (m_diffuseColor);
00056 material->specularColor.setValue (m_specularColor);
00057 material->emissiveColor.setValue (m_emissiveColor);
00058 }
00059
00060
00061 float IgMatEdModificationAction::m_transparency=0;
00062 float IgMatEdModificationAction::m_shininess=0.2;
00063 float IgMatEdModificationAction::m_diffuseColor[3]={0.8,0.8,0.8};
00064 float IgMatEdModificationAction::m_ambientColor[3]={0.2,0.2,0.2};
00065 float IgMatEdModificationAction::m_specularColor[3]={0,0,0};
00066 float IgMatEdModificationAction::m_emissiveColor[3]={0,0,0};
00067