Blender  V2.93
Macros | Functions | Variables
mathutils_Color.c File Reference
#include <Python.h>
#include "mathutils.h"
#include "BLI_math.h"
#include "BLI_utildefines.h"
#include "../generic/py_capi_utils.h"
#include "../generic/python_utildefines.h"
#include "BLI_dynstr.h"

Go to the source code of this file.

Macros

#define COLOR_SIZE   3
 

Functions

static PyObject * Color_new (PyTypeObject *type, PyObject *args, PyObject *kwds)
 
static PyObject * Color_ToTupleExt (ColorObject *self, int ndigits)
 
 PyDoc_STRVAR (Color_copy_doc, ".. function:: copy()\n" "\n" " Returns a copy of this color.\n" "\n" " :return: A copy of the color.\n" " :rtype: :class:`Color`\n" "\n" " .. note:: use this to get a copy of a wrapped color with\n" " no reference to the original data.\n")
 
static PyObject * Color_copy (ColorObject *self)
 
static PyObject * Color_deepcopy (ColorObject *self, PyObject *args)
 
static PyObject * Color_repr (ColorObject *self)
 
static PyObject * Color_str (ColorObject *self)
 
static PyObject * Color_richcmpr (PyObject *a, PyObject *b, int op)
 
static Py_hash_t Color_hash (ColorObject *self)
 
static int Color_len (ColorObject *UNUSED(self))
 
static PyObject * Color_item (ColorObject *self, int i)
 
static int Color_ass_item (ColorObject *self, int i, PyObject *value)
 
static PyObject * Color_slice (ColorObject *self, int begin, int end)
 
static int Color_ass_slice (ColorObject *self, int begin, int end, PyObject *seq)
 
static PyObject * Color_subscript (ColorObject *self, PyObject *item)
 
static int Color_ass_subscript (ColorObject *self, PyObject *item, PyObject *value)
 
static PyObject * Color_add (PyObject *v1, PyObject *v2)
 
static PyObject * Color_iadd (PyObject *v1, PyObject *v2)
 
static PyObject * Color_sub (PyObject *v1, PyObject *v2)
 
static PyObject * Color_isub (PyObject *v1, PyObject *v2)
 
static PyObject * color_mul_float (ColorObject *color, const float scalar)
 
static PyObject * Color_mul (PyObject *v1, PyObject *v2)
 
static PyObject * Color_div (PyObject *v1, PyObject *v2)
 
static PyObject * Color_imul (PyObject *v1, PyObject *v2)
 
static PyObject * Color_idiv (PyObject *v1, PyObject *v2)
 
static PyObject * Color_neg (ColorObject *self)
 
 PyDoc_STRVAR (Color_channel_r_doc, "Red color channel.\n\n:type: float")
 
 PyDoc_STRVAR (Color_channel_g_doc, "Green color channel.\n\n:type: float")
 
 PyDoc_STRVAR (Color_channel_b_doc, "Blue color channel.\n\n:type: float")
 
static PyObject * Color_channel_get (ColorObject *self, void *type)
 
static int Color_channel_set (ColorObject *self, PyObject *value, void *type)
 
 PyDoc_STRVAR (Color_channel_hsv_h_doc, "HSV Hue component in [0, 1].\n\n:type: float")
 
 PyDoc_STRVAR (Color_channel_hsv_s_doc, "HSV Saturation component in [0, 1].\n\n:type: float")
 
 PyDoc_STRVAR (Color_channel_hsv_v_doc, "HSV Value component in [0, 1].\n\n:type: float")
 
static PyObject * Color_channel_hsv_get (ColorObject *self, void *type)
 
static int Color_channel_hsv_set (ColorObject *self, PyObject *value, void *type)
 
 PyDoc_STRVAR (Color_hsv_doc, "HSV Values in [0, 1].\n\n:type: float triplet")
 
static PyObject * Color_hsv_get (ColorObject *self, void *UNUSED(closure))
 
static int Color_hsv_set (ColorObject *self, PyObject *value, void *UNUSED(closure))
 
 PyDoc_STRVAR (color_doc, ".. class:: Color(rgb)\n" "\n" " This object gives access to Colors in Blender.\n" "\n" " :param rgb: (r, g, b) color values\n" " :type rgb: 3d vector\n")
 
PyObject * Color_CreatePyObject (const float col[3], PyTypeObject *base_type)
 
PyObject * Color_CreatePyObject_wrap (float col[3], PyTypeObject *base_type)
 
PyObject * Color_CreatePyObject_cb (PyObject *cb_user, uchar cb_type, uchar cb_subtype)
 

Variables

static PySequenceMethods Color_SeqMethods
 
static PyMappingMethods Color_AsMapping
 
static PyNumberMethods Color_NumMethods
 
static PyGetSetDef Color_getseters []
 
static struct PyMethodDef Color_methods []
 
PyTypeObject color_Type
 

Macro Definition Documentation

◆ COLOR_SIZE

#define COLOR_SIZE   3

Definition at line 35 of file mathutils_Color.c.

Function Documentation

◆ Color_add()

static PyObject* Color_add ( PyObject *  v1,
PyObject *  v2 
)
static

◆ Color_ass_item()

static int Color_ass_item ( ColorObject self,
int  i,
PyObject *  value 
)
static

◆ Color_ass_slice()

static int Color_ass_slice ( ColorObject self,
int  begin,
int  end,
PyObject *  seq 
)
static

◆ Color_ass_subscript()

static int Color_ass_subscript ( ColorObject self,
PyObject *  item,
PyObject *  value 
)
static

Definition at line 373 of file mathutils_Color.c.

References Color_ass_item(), Color_ass_slice(), and COLOR_SIZE.

◆ Color_channel_get()

static PyObject* Color_channel_get ( ColorObject self,
void *  type 
)
static

Definition at line 734 of file mathutils_Color.c.

References Color_item(), POINTER_AS_INT, and type.

◆ Color_channel_hsv_get()

static PyObject* Color_channel_hsv_get ( ColorObject self,
void *  type 
)
static

Definition at line 749 of file mathutils_Color.c.

References BaseMath_ReadCallback, NULL, POINTER_AS_INT, rgb_to_hsv(), self, and type.

◆ Color_channel_hsv_set()

static int Color_channel_hsv_set ( ColorObject self,
PyObject *  value,
void *  type 
)
static

◆ Color_channel_set()

static int Color_channel_set ( ColorObject self,
PyObject *  value,
void *  type 
)
static

Definition at line 739 of file mathutils_Color.c.

References Color_ass_item(), POINTER_AS_INT, and type.

◆ Color_copy()

static PyObject* Color_copy ( ColorObject self)
static

Definition at line 103 of file mathutils_Color.c.

References BaseMath_ReadCallback, Color_CreatePyObject(), NULL, and self.

Referenced by Color_deepcopy().

◆ Color_CreatePyObject()

PyObject* Color_CreatePyObject ( const float  col[3],
PyTypeObject *  base_type 
)

◆ Color_CreatePyObject_cb()

PyObject* Color_CreatePyObject_cb ( PyObject *  cb_user,
uchar  cb_type,
uchar  cb_subtype 
)

Definition at line 1000 of file mathutils_Color.c.

References Color_CreatePyObject(), and NULL.

Referenced by pyrna_math_object_from_array(), and StrokeAttribute_color_get().

◆ Color_CreatePyObject_wrap()

PyObject* Color_CreatePyObject_wrap ( float  col[3],
PyTypeObject *  base_type 
)

◆ Color_deepcopy()

static PyObject* Color_deepcopy ( ColorObject self,
PyObject *  args 
)
static

Definition at line 111 of file mathutils_Color.c.

References Color_copy(), NULL, and PyC_CheckArgs_DeepCopy().

◆ Color_div()

static PyObject* Color_div ( PyObject *  v1,
PyObject *  v2 
)
static

Definition at line 584 of file mathutils_Color.c.

References BaseMath_ReadCallback, color_mul_float(), ColorObject_Check, NULL, v1, and v2.

◆ Color_hash()

static Py_hash_t Color_hash ( ColorObject self)
static

◆ Color_hsv_get()

static PyObject* Color_hsv_get ( ColorObject self,
void *  UNUSEDclosure 
)
static

Definition at line 794 of file mathutils_Color.c.

References BaseMath_ReadCallback, NULL, PyTuple_SET_ITEMS, ret, rgb_to_hsv(), and self.

◆ Color_hsv_set()

static int Color_hsv_set ( ColorObject self,
PyObject *  value,
void *  UNUSEDclosure 
)
static

◆ Color_iadd()

static PyObject* Color_iadd ( PyObject *  v1,
PyObject *  v2 
)
static

◆ Color_idiv()

static PyObject* Color_idiv ( PyObject *  v1,
PyObject *  v2 
)
static

◆ Color_imul()

static PyObject* Color_imul ( PyObject *  v1,
PyObject *  v2 
)
static

◆ Color_isub()

static PyObject* Color_isub ( PyObject *  v1,
PyObject *  v2 
)
static

◆ Color_item()

static PyObject* Color_item ( ColorObject self,
int  i 
)
static

Definition at line 218 of file mathutils_Color.c.

References BaseMath_ReadIndexCallback, COLOR_SIZE, NULL, and self.

Referenced by Color_channel_get(), and Color_subscript().

◆ Color_len()

static int Color_len ( ColorObject UNUSEDself)
static

Definition at line 212 of file mathutils_Color.c.

References COLOR_SIZE.

◆ Color_mul()

static PyObject* Color_mul ( PyObject *  v1,
PyObject *  v2 
)
static

◆ color_mul_float()

static PyObject* color_mul_float ( ColorObject color,
const float  scalar 
)
static

Definition at line 533 of file mathutils_Color.c.

References Color_CreatePyObject(), COLOR_SIZE, and mul_vn_vn_fl().

Referenced by Color_div(), and Color_mul().

◆ Color_neg()

static PyObject* Color_neg ( ColorObject self)
static

◆ Color_new()

static PyObject* Color_new ( PyTypeObject *  type,
PyObject *  args,
PyObject *  kwds 
)
static

Definition at line 39 of file mathutils_Color.c.

References col, Color_CreatePyObject(), COLOR_SIZE, mathutils_array_parse(), NULL, and type.

◆ Color_repr()

static PyObject* Color_repr ( ColorObject self)
static

Definition at line 122 of file mathutils_Color.c.

References BaseMath_ReadCallback, Color_ToTupleExt(), NULL, and ret.

◆ Color_richcmpr()

static PyObject* Color_richcmpr ( PyObject *  a,
PyObject *  b,
int  op 
)
static

◆ Color_slice()

static PyObject* Color_slice ( ColorObject self,
int  begin,
int  end 
)
static

Definition at line 276 of file mathutils_Color.c.

References BaseMath_ReadCallback, CLAMP, COLOR_SIZE, count, MIN2, NULL, and self.

Referenced by Color_subscript().

◆ Color_str()

static PyObject* Color_str ( ColorObject self)
static

◆ Color_sub()

static PyObject* Color_sub ( PyObject *  v1,
PyObject *  v2 
)
static

◆ Color_subscript()

static PyObject* Color_subscript ( ColorObject self,
PyObject *  item 
)
static

Definition at line 337 of file mathutils_Color.c.

References Color_item(), COLOR_SIZE, Color_slice(), and NULL.

◆ Color_ToTupleExt()

static PyObject* Color_ToTupleExt ( ColorObject self,
int  ndigits 
)
static

Definition at line 72 of file mathutils_Color.c.

References COLOR_SIZE, double_round(), ret, and self.

Referenced by Color_repr().

◆ PyDoc_STRVAR() [1/9]

PyDoc_STRVAR ( Color_channel_b_doc  ,
"Blue color channel.\n\n:type: float  
)

◆ PyDoc_STRVAR() [2/9]

PyDoc_STRVAR ( Color_channel_g_doc  ,
"Green color channel.\n\n:type: float  
)

◆ PyDoc_STRVAR() [3/9]

PyDoc_STRVAR ( Color_channel_hsv_h_doc  ,
"HSV Hue component in .\n\n:type: float [0, 1] 
)

◆ PyDoc_STRVAR() [4/9]

PyDoc_STRVAR ( Color_channel_hsv_s_doc  ,
"HSV Saturation component in .\n\n:type: float [0, 1] 
)

◆ PyDoc_STRVAR() [5/9]

PyDoc_STRVAR ( Color_channel_hsv_v_doc  ,
"HSV Value component in .\n\n:type: float [0, 1] 
)

◆ PyDoc_STRVAR() [6/9]

PyDoc_STRVAR ( Color_channel_r_doc  ,
"Red color channel.\n\n:type: float  
)

◆ PyDoc_STRVAR() [7/9]

PyDoc_STRVAR ( Color_copy_doc  ,
".. function:: copy()\n" "\n" " Returns a copy of this color.\n" "\n" " :return: A copy of the color.\n" " :rtype: :class:`Color`\n" "\n" " .. note:: use this to get a copy of a wrapped color with\n" " no reference to the original data.\n"   
)

◆ PyDoc_STRVAR() [8/9]

PyDoc_STRVAR ( color_doc  ,
".. class:: Color(rgb)\n" "\n" " This object gives access to Colors in Blender.\n" "\n" " :param rgb: (r, g, b) color values\n" " :type rgb: 3d vector\n"   
)

◆ PyDoc_STRVAR() [9/9]

PyDoc_STRVAR ( Color_hsv_doc  ,
"HSV Values in .\n\n:type: float triplet"  [0, 1] 
)

Variable Documentation

◆ Color_AsMapping

PyMappingMethods Color_AsMapping
static
Initial value:
= {
(lenfunc)Color_len,
(binaryfunc)Color_subscript,
(objobjargproc)Color_ass_subscript,
}
static PyObject * Color_subscript(ColorObject *self, PyObject *item)
static int Color_ass_subscript(ColorObject *self, PyObject *item, PyObject *value)
static int Color_len(ColorObject *UNUSED(self))

Definition at line 419 of file mathutils_Color.c.

◆ Color_getseters

PyGetSetDef Color_getseters[]
static

Definition at line 836 of file mathutils_Color.c.

◆ Color_methods

struct PyMethodDef Color_methods[]
static
Initial value:
= {
{"copy", (PyCFunction)Color_copy, METH_NOARGS, Color_copy_doc},
{"__copy__", (PyCFunction)Color_copy, METH_NOARGS, Color_copy_doc},
{"__deepcopy__", (PyCFunction)Color_deepcopy, METH_VARARGS, Color_copy_doc},
{"freeze", (PyCFunction)BaseMathObject_freeze, METH_NOARGS, BaseMathObject_freeze_doc},
{NULL, NULL, 0, NULL},
}
PyObject * BaseMathObject_freeze(BaseMathObject *self)
Definition: mathutils.c:698
char BaseMathObject_freeze_doc[]
Definition: mathutils.c:690
static PyObject * Color_copy(ColorObject *self)
static PyObject * Color_deepcopy(ColorObject *self, PyObject *args)

Definition at line 836 of file mathutils_Color.c.

◆ Color_NumMethods

PyNumberMethods Color_NumMethods
static

Definition at line 692 of file mathutils_Color.c.

◆ Color_SeqMethods

PySequenceMethods Color_SeqMethods
static
Initial value:
= {
(lenfunc)Color_len,
(binaryfunc)NULL,
(ssizeargfunc)NULL,
(ssizeargfunc)Color_item,
NULL,
(ssizeobjargproc)Color_ass_item,
NULL,
(objobjproc)NULL,
(binaryfunc)NULL,
(ssizeargfunc)NULL,
}
static PyObject * Color_item(ColorObject *self, int i)
static int Color_ass_item(ColorObject *self, int i, PyObject *value)

Definition at line 406 of file mathutils_Color.c.

◆ color_Type

PyTypeObject color_Type