Changeset View
Changeset View
Standalone View
Standalone View
source/gameengine/Ketsji/KX_Light.cpp
| Show First 20 Lines • Show All 140 Lines • ▼ Show 20 Lines | PyTypeObject KX_LightObject::Type = { | ||||
| 0, | 0, | ||||
| 0, | 0, | ||||
| &KX_GameObject::Type, | &KX_GameObject::Type, | ||||
| 0,0,0,0,0,0, | 0,0,0,0,0,0, | ||||
| py_base_new | py_base_new | ||||
| }; | }; | ||||
| PyMethodDef KX_LightObject::Methods[] = { | PyMethodDef KX_LightObject::Methods[] = { | ||||
| KX_PYMETHODTABLE_NOARGS(KX_LightObject, updateShadow), | |||||
| {NULL,NULL} //Sentinel | {NULL,NULL} //Sentinel | ||||
| }; | }; | ||||
| PyAttributeDef KX_LightObject::Attributes[] = { | PyAttributeDef KX_LightObject::Attributes[] = { | ||||
| KX_PYATTRIBUTE_RW_FUNCTION("layer", KX_LightObject, pyattr_get_layer, pyattr_set_layer), | KX_PYATTRIBUTE_RW_FUNCTION("layer", KX_LightObject, pyattr_get_layer, pyattr_set_layer), | ||||
| KX_PYATTRIBUTE_RW_FUNCTION("energy", KX_LightObject, pyattr_get_energy, pyattr_set_energy), | KX_PYATTRIBUTE_RW_FUNCTION("energy", KX_LightObject, pyattr_get_energy, pyattr_set_energy), | ||||
| KX_PYATTRIBUTE_RW_FUNCTION("distance", KX_LightObject, pyattr_get_distance, pyattr_set_distance), | KX_PYATTRIBUTE_RW_FUNCTION("distance", KX_LightObject, pyattr_get_distance, pyattr_set_distance), | ||||
| KX_PYATTRIBUTE_RW_FUNCTION("color", KX_LightObject, pyattr_get_color, pyattr_set_color), | KX_PYATTRIBUTE_RW_FUNCTION("color", KX_LightObject, pyattr_get_color, pyattr_set_color), | ||||
| KX_PYATTRIBUTE_RW_FUNCTION("lin_attenuation", KX_LightObject, pyattr_get_lin_attenuation, pyattr_set_lin_attenuation), | KX_PYATTRIBUTE_RW_FUNCTION("lin_attenuation", KX_LightObject, pyattr_get_lin_attenuation, pyattr_set_lin_attenuation), | ||||
| KX_PYATTRIBUTE_RW_FUNCTION("quad_attenuation", KX_LightObject, pyattr_get_quad_attenuation, pyattr_set_quad_attenuation), | KX_PYATTRIBUTE_RW_FUNCTION("quad_attenuation", KX_LightObject, pyattr_get_quad_attenuation, pyattr_set_quad_attenuation), | ||||
| KX_PYATTRIBUTE_RW_FUNCTION("spotsize", KX_LightObject, pyattr_get_spotsize, pyattr_set_spotsize), | KX_PYATTRIBUTE_RW_FUNCTION("spotsize", KX_LightObject, pyattr_get_spotsize, pyattr_set_spotsize), | ||||
| KX_PYATTRIBUTE_RW_FUNCTION("spotblend", KX_LightObject, pyattr_get_spotblend, pyattr_set_spotblend), | KX_PYATTRIBUTE_RW_FUNCTION("spotblend", KX_LightObject, pyattr_get_spotblend, pyattr_set_spotblend), | ||||
| KX_PYATTRIBUTE_RO_FUNCTION("SPOT", KX_LightObject, pyattr_get_typeconst), | KX_PYATTRIBUTE_RO_FUNCTION("SPOT", KX_LightObject, pyattr_get_typeconst), | ||||
| KX_PYATTRIBUTE_RO_FUNCTION("SUN", KX_LightObject, pyattr_get_typeconst), | KX_PYATTRIBUTE_RO_FUNCTION("SUN", KX_LightObject, pyattr_get_typeconst), | ||||
| KX_PYATTRIBUTE_RO_FUNCTION("NORMAL", KX_LightObject, pyattr_get_typeconst), | KX_PYATTRIBUTE_RO_FUNCTION("NORMAL", KX_LightObject, pyattr_get_typeconst), | ||||
| KX_PYATTRIBUTE_RW_FUNCTION("type", KX_LightObject, pyattr_get_type, pyattr_set_type), | KX_PYATTRIBUTE_RW_FUNCTION("type", KX_LightObject, pyattr_get_type, pyattr_set_type), | ||||
| KX_PYATTRIBUTE_RW_FUNCTION("staticShadow", KX_LightObject, pyattr_get_static_shadow, pyattr_set_static_shadow), | |||||
| { NULL } //Sentinel | { NULL } //Sentinel | ||||
| }; | }; | ||||
| KX_PYMETHODDEF_DOC_NOARGS(KX_LightObject, updateShadow, "updateShadow(): Set the shadow to be updated next frame if the lamp uses a static shadow.\n") | |||||
Matpi: I'd rather say "updateShadow(): Set the shadow to be updated next frame if the lamp uses a… | |||||
| { | |||||
| m_lightobj->RequestShadowUpdate(); | |||||
| Py_RETURN_NONE; | |||||
| } | |||||
| PyObject *KX_LightObject::pyattr_get_layer(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) | PyObject *KX_LightObject::pyattr_get_layer(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) | ||||
| { | { | ||||
| KX_LightObject *self = static_cast<KX_LightObject *>(self_v); | KX_LightObject *self = static_cast<KX_LightObject *>(self_v); | ||||
| return PyLong_FromLong(self->m_lightobj->m_layer); | return PyLong_FromLong(self->m_lightobj->m_layer); | ||||
| } | } | ||||
| int KX_LightObject::pyattr_set_layer(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) | int KX_LightObject::pyattr_set_layer(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) | ||||
| { | { | ||||
| ▲ Show 20 Lines • Show All 234 Lines • ▼ Show 20 Lines | case 1: | ||||
| break; | break; | ||||
| case 2: | case 2: | ||||
| self->m_lightobj->m_type = self->m_lightobj->LIGHT_NORMAL; | self->m_lightobj->m_type = self->m_lightobj->LIGHT_NORMAL; | ||||
| break; | break; | ||||
| } | } | ||||
| return PY_SET_ATTR_SUCCESS; | return PY_SET_ATTR_SUCCESS; | ||||
| } | } | ||||
| PyObject *KX_LightObject::pyattr_get_static_shadow(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef) | |||||
| { | |||||
| KX_LightObject* self = static_cast<KX_LightObject*>(self_v); | |||||
| return PyBool_FromLong(self->m_lightobj->GetStaticShadow()); | |||||
| } | |||||
| int KX_LightObject::pyattr_set_static_shadow(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) | |||||
| { | |||||
| KX_LightObject* self = static_cast<KX_LightObject*>(self_v); | |||||
| int param = PyObject_IsTrue(value); | |||||
| if (param == -1) { | |||||
| PyErr_SetString(PyExc_AttributeError, "light.staticShadow = val: KX_LightObject, expected True or False"); | |||||
Done Inline ActionsTypo: light Matpi: Typo: light
I would not use the keyword "bool", as it is special in Python; rather use "val" as… | |||||
| return PY_SET_ATTR_FAIL; | |||||
| } | |||||
| self->m_lightobj->SetStaticShadow(param); | |||||
| return PY_SET_ATTR_SUCCESS; | |||||
| } | |||||
| #endif // WITH_PYTHON | #endif // WITH_PYTHON | ||||
I'd rather say "updateShadow(): Set the shadow to be updated next frame if the lamp uses a static shadow.\n"