svn merge ^/trunk/blender -r48749:48754
This commit is contained in:
@@ -378,10 +378,19 @@ void BVH::pack_instances(size_t nodes_size)
|
||||
int mesh_tri_offset = mesh->tri_offset;
|
||||
|
||||
/* fill in node indexes for instances */
|
||||
if(bvh->pack.is_leaf[0])
|
||||
if(
|
||||
/* XXX, brecht. check this is needed!. it could be a bug elsewhere
|
||||
* /mango/pro/scenes/04_2e/04_2e.blend r2158. on Ian's system 192.168.3.27 - campbell */
|
||||
(bvh->pack.is_leaf.size() != 0) &&
|
||||
|
||||
/* previously only checked this */
|
||||
bvh->pack.is_leaf[0])
|
||||
{
|
||||
pack.object_node[object_offset++] = -noffset-1;
|
||||
else
|
||||
}
|
||||
else {
|
||||
pack.object_node[object_offset++] = noffset;
|
||||
}
|
||||
|
||||
mesh_map[mesh] = pack.object_node[object_offset-1];
|
||||
|
||||
|
||||
@@ -1326,6 +1326,31 @@ void BKE_imbuf_to_image_format(struct ImageFormatData *im_format, const ImBuf *i
|
||||
|
||||
}
|
||||
|
||||
static void timecode_simple_string(char *text, size_t text_size, const int cfra, int const frs_sec)
|
||||
{
|
||||
int f = (int)(cfra % frs_sec);
|
||||
int s = (int)(cfra / frs_sec);
|
||||
int h = 0;
|
||||
int m = 0;
|
||||
|
||||
if (s) {
|
||||
m = (int)(s / 60);
|
||||
s %= 60;
|
||||
|
||||
if (m) {
|
||||
h = (int)(m / 60);
|
||||
m %= 60;
|
||||
}
|
||||
}
|
||||
|
||||
if (frs_sec < 100) {
|
||||
BLI_snprintf(text, text_size, "%02d:%02d:%02d.%02d", h, m, s, f);
|
||||
}
|
||||
else {
|
||||
BLI_snprintf(text, text_size, "%02d:%02d:%02d.%03d", h, m, s, f);
|
||||
}
|
||||
}
|
||||
|
||||
/* could allow access externally - 512 is for long names, 64 is for id names */
|
||||
typedef struct StampData {
|
||||
char file[512];
|
||||
@@ -1385,26 +1410,7 @@ static void stampdata(Scene *scene, Object *camera, StampData *stamp_data, int d
|
||||
}
|
||||
|
||||
if (scene->r.stamp & R_STAMP_TIME) {
|
||||
int f = (int)(scene->r.cfra % scene->r.frs_sec);
|
||||
int s = (int)(scene->r.cfra / scene->r.frs_sec);
|
||||
int h = 0;
|
||||
int m = 0;
|
||||
|
||||
if (s) {
|
||||
m = (int)(s / 60);
|
||||
s %= 60;
|
||||
|
||||
if (m) {
|
||||
h = (int)(m / 60);
|
||||
m %= 60;
|
||||
}
|
||||
}
|
||||
|
||||
if (scene->r.frs_sec < 100)
|
||||
BLI_snprintf(text, sizeof(text), "%02d:%02d:%02d.%02d", h, m, s, f);
|
||||
else
|
||||
BLI_snprintf(text, sizeof(text), "%02d:%02d:%02d.%03d", h, m, s, f);
|
||||
|
||||
timecode_simple_string(text, sizeof(text), scene->r.cfra, scene->r.frs_sec);
|
||||
BLI_snprintf(stamp_data->time, sizeof(stamp_data->time), do_prefix ? "Time %s" : "%s", text);
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -2438,21 +2438,21 @@ static int bpy_bmelem_ass_subscript(BPy_BMElem *self, BPy_BMLayerItem *key, PyOb
|
||||
}
|
||||
|
||||
static PySequenceMethods bpy_bmelemseq_as_sequence = {
|
||||
(lenfunc)bpy_bmelemseq_length, /* sq_length */
|
||||
(lenfunc)bpy_bmelemseq_length, /* sq_length */
|
||||
NULL, /* sq_concat */
|
||||
NULL, /* sq_repeat */
|
||||
(ssizeargfunc)bpy_bmelemseq_subscript_int, /* sq_item */ /* Only set this so PySequence_Check() returns True */
|
||||
(ssizeargfunc)bpy_bmelemseq_subscript_int, /* sq_item */ /* Only set this so PySequence_Check() returns True */
|
||||
NULL, /* sq_slice */
|
||||
(ssizeobjargproc)NULL, /* sq_ass_item */
|
||||
NULL, /* *was* sq_ass_slice */
|
||||
(objobjproc)bpy_bmelemseq_contains, /* sq_contains */
|
||||
(objobjproc)bpy_bmelemseq_contains, /* sq_contains */
|
||||
(binaryfunc) NULL, /* sq_inplace_concat */
|
||||
(ssizeargfunc) NULL, /* sq_inplace_repeat */
|
||||
};
|
||||
|
||||
static PyMappingMethods bpy_bmelemseq_as_mapping = {
|
||||
(lenfunc)bpy_bmelemseq_length, /* mp_length */
|
||||
(binaryfunc)bpy_bmelemseq_subscript, /* mp_subscript */
|
||||
(lenfunc)bpy_bmelemseq_length, /* mp_length */
|
||||
(binaryfunc)bpy_bmelemseq_subscript, /* mp_subscript */
|
||||
(objobjargproc)NULL, /* mp_ass_subscript */
|
||||
};
|
||||
|
||||
@@ -2859,7 +2859,7 @@ static struct PyModuleDef BPy_BM_types_module_def = {
|
||||
PyModuleDef_HEAD_INIT,
|
||||
"bmesh.types", /* m_name */
|
||||
NULL, /* m_doc */
|
||||
0, /* m_size */
|
||||
0, /* m_size */
|
||||
NULL, /* m_methods */
|
||||
NULL, /* m_reload */
|
||||
NULL, /* m_traverse */
|
||||
|
||||
@@ -432,7 +432,7 @@ static int bpy_bmdeformvert_ass_subscript(BPy_BMDeformVert *self, PyObject *key,
|
||||
/* dvert[group_index] = 0.5 */
|
||||
if (i < 0) {
|
||||
PyErr_SetString(PyExc_KeyError, "BMDeformVert[key] = x: "
|
||||
"weight keys can't be negative");
|
||||
"weight keys can't be negative");
|
||||
return -1;
|
||||
}
|
||||
else {
|
||||
@@ -440,8 +440,8 @@ static int bpy_bmdeformvert_ass_subscript(BPy_BMDeformVert *self, PyObject *key,
|
||||
const float f = PyFloat_AsDouble(value);
|
||||
if (f == -1 && PyErr_Occurred()) { // parsed key not a number
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"BMDeformVert[key] = x: "
|
||||
"argument not a number");
|
||||
"BMDeformVert[key] = x: "
|
||||
"argument not a number");
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -496,7 +496,7 @@ static PySequenceMethods bpy_bmdeformvert_as_sequence = {
|
||||
NULL, /* sq_slice */
|
||||
NULL, /* sq_ass_item */
|
||||
NULL, /* *was* sq_ass_slice */
|
||||
(objobjproc)bpy_bmdeformvert_contains, /* sq_contains */
|
||||
(objobjproc)bpy_bmdeformvert_contains, /* sq_contains */
|
||||
(binaryfunc) NULL, /* sq_inplace_concat */
|
||||
(ssizeargfunc) NULL, /* sq_inplace_repeat */
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user