Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2013-07-15 15:11:36 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2013-07-15 15:11:36 +0400
commitabe84a4f43939fd14a4830d958890e870ddeb180 (patch)
tree988364c89a12979a57f1f569074c18530d449b29
parent61cb92f701deb6af31476f3687207be5d63b1ce2 (diff)
Fix #36139: cycles not taking texture spacing settings into account for
generated coordinates on text objects.
-rw-r--r--source/blender/blenkernel/BKE_mesh.h1
-rw-r--r--source/blender/blenkernel/intern/DerivedMesh.c9
-rw-r--r--source/blender/blenkernel/intern/mesh.c13
-rw-r--r--source/blender/makesrna/intern/rna_main_api.c4
4 files changed, 19 insertions, 8 deletions
diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h
index 11c9c00613f..1c88a5c45dd 100644
--- a/source/blender/blenkernel/BKE_mesh.h
+++ b/source/blender/blenkernel/BKE_mesh.h
@@ -209,6 +209,7 @@ const char *BKE_mesh_cmp(struct Mesh *me1, struct Mesh *me2, float thresh);
struct BoundBox *BKE_mesh_boundbox_get(struct Object *ob);
void BKE_mesh_texspace_get(struct Mesh *me, float r_loc[3], float r_rot[3], float r_size[3]);
+void BKE_mesh_texspace_copy_from_object(struct Mesh *me, struct Object *ob);
/* if old, it converts mface->edcode to edge drawflags */
void BKE_mesh_make_edges(struct Mesh *me, const bool use_old);
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index 99104ad6b83..8f91c1cb2d9 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -484,8 +484,6 @@ void DM_to_mesh(DerivedMesh *dm, Mesh *me, Object *ob, CustomDataMask mask)
Mesh tmp = *me;
int totvert, totedge /*, totface */ /* UNUSED */, totloop, totpoly;
int did_shapekeys = 0;
- float *texloc, *texrot, *texsize;
- short *texflag;
CustomData_reset(&tmp.vdata);
CustomData_reset(&tmp.edata);
@@ -533,12 +531,7 @@ void DM_to_mesh(DerivedMesh *dm, Mesh *me, Object *ob, CustomDataMask mask)
}
/* copy texture space */
- if (BKE_object_obdata_texspace_get(ob, &texflag, &texloc, &texsize, &texrot)) {
- tmp.texflag = *texflag;
- copy_v3_v3(tmp.loc, texloc);
- copy_v3_v3(tmp.size, texsize);
- copy_v3_v3(tmp.rot, texrot);
- }
+ BKE_mesh_texspace_copy_from_object(&tmp, ob);
/* not all DerivedMeshes store their verts/edges/faces in CustomData, so
* we set them here in case they are missing */
diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c
index f3aefbe03e0..1b5b7101c71 100644
--- a/source/blender/blenkernel/intern/mesh.c
+++ b/source/blender/blenkernel/intern/mesh.c
@@ -702,6 +702,19 @@ void BKE_mesh_texspace_get(Mesh *me, float r_loc[3], float r_rot[3], float r_siz
if (r_size) copy_v3_v3(r_size, me->size);
}
+void BKE_mesh_texspace_copy_from_object(Mesh *me, Object *ob)
+{
+ float *texloc, *texrot, *texsize;
+ short *texflag;
+
+ if (BKE_object_obdata_texspace_get(ob, &texflag, &texloc, &texsize, &texrot)) {
+ me->texflag = *texflag;
+ copy_v3_v3(me->loc, texloc);
+ copy_v3_v3(me->size, texsize);
+ copy_v3_v3(me->rot, texrot);
+ }
+}
+
float (*BKE_mesh_orco_verts_get(Object *ob))[3]
{
Mesh *me = ob->data;
diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c
index 4c652770e3f..fd931262904 100644
--- a/source/blender/makesrna/intern/rna_main_api.c
+++ b/source/blender/makesrna/intern/rna_main_api.c
@@ -335,6 +335,8 @@ Mesh *rna_Main_meshes_new_from_object(
return NULL;
}
+ BKE_mesh_texspace_copy_from_object(tmpmesh, ob);
+
BKE_libblock_free_us(&bmain->object, tmpobj);
break;
}
@@ -362,6 +364,8 @@ Mesh *rna_Main_meshes_new_from_object(
else
BKE_mesh_from_metaball(&ob->disp, tmpmesh);
+ BKE_mesh_texspace_copy_from_object(tmpmesh, ob);
+
break;
}