* added some display options to the ArmatureType class
authorJoseph Gilbert <ascotan@gmail.com>
Mon, 21 Nov 2005 20:54:29 +0000 (20:54 +0000)
committerJoseph Gilbert <ascotan@gmail.com>
Mon, 21 Nov 2005 20:54:29 +0000 (20:54 +0000)
source/blender/python/api2_2x/Armature.c
source/blender/python/api2_2x/doc/Armature.py

index 5ac5172d81984c24db131667b000640e87f2660c..efe559507fe72d037db41e31f4697faf09f2002d 100644 (file)
@@ -519,6 +519,120 @@ static PyObject *Armature_saveChanges(BPy_Armature *self)
        return EXPP_incr_ret(Py_None);
 }
 //------------------ATTRIBUTE IMPLEMENTATION---------------------------
+//------------------------Armature.ghostStep (getter)
+static PyObject *Armature_getStep(BPy_Armature *self, void *closure)
+{
+       return PyInt_FromLong((long)self->armature->ghostsize);
+}
+//------------------------Armature.ghostStep (setter)
+static int Armature_setStep(BPy_Armature *self, PyObject *value, void *closure)
+{
+       long numerical_value;
+
+       if(value){
+               if(PyInt_Check(value)){
+                       numerical_value = PyInt_AS_LONG(value);
+                       if (numerical_value > 20.0f || numerical_value < 1.0f)
+                               goto ValueError;
+                       self->armature->ghostsize = (short)numerical_value;
+                       return 0;
+               }
+       }
+       goto AttributeError;
+
+AttributeError:
+       return EXPP_intError(PyExc_AttributeError, "%s%s", 
+               sArmatureBadArgs, "Expects Integer");
+
+ValueError:
+       return EXPP_intError(PyExc_AttributeError, "%s%s", 
+               sArmatureBadArgs, "Argument must fall within 1-20");
+}
+//------------------------Armature.ghost (getter)
+static PyObject *Armature_getGhost(BPy_Armature *self, void *closure)
+{
+       return PyInt_FromLong((long)self->armature->ghostep);
+}
+//------------------------Armature.ghost (setter)
+static int Armature_setGhost(BPy_Armature *self, PyObject *value, void *closure)
+{
+       long numerical_value;
+
+       if(value){
+               if(PyInt_Check(value)){
+                       numerical_value = PyInt_AS_LONG(value);
+                       if (numerical_value > 30.0f || numerical_value < 0.0f)
+                               goto ValueError;
+                       self->armature->ghostep = (short)numerical_value;
+                       return 0;
+               }
+       }
+       goto AttributeError;
+
+AttributeError:
+       return EXPP_intError(PyExc_AttributeError, "%s%s", 
+               sArmatureBadArgs, "Expects Integer");
+
+ValueError:
+       return EXPP_intError(PyExc_AttributeError, "%s%s", 
+               sArmatureBadArgs, "Argument must fall within 0-30");
+}
+//------------------------Armature.drawNames (getter)
+static PyObject *Armature_getDrawNames(BPy_Armature *self, void *closure)
+{
+       if (self->armature->flag & ARM_DRAWNAMES)
+               Py_RETURN_TRUE;
+       else
+               Py_RETURN_FALSE;
+}
+//------------------------Armature.drawNames (setter)
+static int Armature_setDrawNames(BPy_Armature *self, PyObject *value, void *closure)
+{
+       if(value){
+               if(PyBool_Check(value)){
+                       if (value == Py_True){
+                               self->armature->flag |= ARM_DRAWNAMES;
+                               return 0;
+                       }else if (value == Py_False){
+                               self->armature->flag &= ~ARM_DRAWNAMES;
+                               return 0;
+                       }
+               }
+       }
+       goto AttributeError;
+
+AttributeError:
+       return EXPP_intError(PyExc_AttributeError, "%s%s", 
+               sArmatureBadArgs, "Expects True or False");
+}
+//------------------------Armature.drawAxes (getter)
+static PyObject *Armature_getDrawAxes(BPy_Armature *self, void *closure)
+{
+       if (self->armature->flag & ARM_DRAWAXES)
+               Py_RETURN_TRUE;
+       else
+               Py_RETURN_FALSE;
+}
+//------------------------Armature.drawAxes (setter)
+static int Armature_setDrawAxes(BPy_Armature *self, PyObject *value, void *closure)
+{
+       if(value){
+               if(PyBool_Check(value)){
+                       if (value == Py_True){
+                               self->armature->flag |= ARM_DRAWAXES;
+                               return 0;
+                       }else if (value == Py_False){
+                               self->armature->flag &= ~ARM_DRAWAXES;
+                               return 0;
+                       }
+               }
+       }
+       goto AttributeError;
+
+AttributeError:
+       return EXPP_intError(PyExc_AttributeError, "%s%s", 
+               sArmatureBadArgs, "Expects True or False");
+}
 //------------------------Armature.delayDeform (getter)
 static PyObject *Armature_getDelayDeform(BPy_Armature *self, void *closure)
 {
@@ -706,6 +820,14 @@ static PyGetSetDef BPy_Armature_getset[] = {
                "Show armature rest position - disables posing", NULL},
        {"delayDeform", (getter)Armature_getDelayDeform, (setter)Armature_setDelayDeform, 
                "Don't deform children when manipulating bones in pose mode", NULL},
+       {"drawAxes", (getter)Armature_getDrawAxes, (setter)Armature_setDrawAxes, 
+               "Enable/Disable  drawing  the bone axes", NULL},
+       {"drawNames", (getter)Armature_getDrawNames, (setter)Armature_setDrawNames, 
+               "Enable/Disable  drawing the bone names", NULL},
+       {"ghost", (getter)Armature_getGhost, (setter)Armature_setGhost, 
+               "Draw a number of ghosts around the current frame for current Action", NULL},
+       {"ghostStep", (getter)Armature_getStep, (setter)Armature_setStep, 
+               "The number of frames between ghost instances", NULL},
        {NULL}
 };
 //------------------------tp_new
index b821984b8e402d92a21557ff233bb72290d953a2..1ef069283cafeb862b37a4480b3ab0fdc3ad7000 100644 (file)
@@ -45,6 +45,10 @@ class ArmatureType:
   @ivar envelopes: (bool) Whether bone envelopes define deformation
   @ivar restPosition: (bool) Show rest position (no posing possible)
   @ivar delayDeform: (bool) Dont deform children when manipulating bones
+  @ivar drawAxes: (bool) Draw bone axes
+  @ivar drawNames: (bool) Draw bone names
+  @ivar ghost: Draw ghosts around frame for current Action
+  @ivar ghostStep: Number of frames between ghosts
   """
 
   def __init__(name = 'myArmature'):