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:
authorCampbell Barton <ideasman42@gmail.com>2012-11-10 14:26:39 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-11-10 14:26:39 +0400
commit250109f5ace8471451a6d8bda8f67ffc955eb4b7 (patch)
tree6228de4b3b9dd229e2b129549e69e6edf06c84be /source/gameengine/Ketsji/KX_MeshProxy.cpp
parentfecc3b9d68102630fc53f451a3f405f180b31384 (diff)
add argument so recent bge function mesh.transform_uv() so you can optionally transform between UV1 / UV2
Diffstat (limited to 'source/gameengine/Ketsji/KX_MeshProxy.cpp')
-rw-r--r--source/gameengine/Ketsji/KX_MeshProxy.cpp30
1 files changed, 23 insertions, 7 deletions
diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp
index be4b0cd8031..9430179e344 100644
--- a/source/gameengine/Ketsji/KX_MeshProxy.cpp
+++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp
@@ -260,7 +260,8 @@ PyObject *KX_MeshProxy::PyTransform(PyObject *args, PyObject *kwds)
for (slot->begin(it); !slot->end(it); slot->next(it)) {
size_t i;
for (i = it.startvertex; i < it.endvertex; i++) {
- it.vertex[i].Transform(transform, ntransform);
+ RAS_TexVert *vert = &it.vertex[i];
+ vert->Transform(transform, ntransform);
}
}
@@ -286,11 +287,12 @@ PyObject *KX_MeshProxy::PyTransformUV(PyObject *args, PyObject *kwds)
int matindex;
PyObject *pymat;
int uvindex = -1;
+ int uvindex_from = -1;
bool ok = false;
MT_Matrix4x4 transform;
- if (!PyArg_ParseTuple(args,"iO|ii:transform_uv", &matindex, &pymat, &uvindex) ||
+ if (!PyArg_ParseTuple(args,"iO|iii:transform_uv", &matindex, &pymat, &uvindex, &uvindex_from) ||
!PyMatTo(pymat, transform))
{
return NULL;
@@ -298,9 +300,17 @@ PyObject *KX_MeshProxy::PyTransformUV(PyObject *args, PyObject *kwds)
if (uvindex < -1 || uvindex > 1) {
PyErr_Format(PyExc_ValueError,
- "mesh.transform_uv(...): invalid uv index %d", uvindex);
+ "mesh.transform_uv(...): invalid uv_index %d", uvindex);
return NULL;
}
+ if (uvindex_from < -1 || uvindex_from > 1 || uvindex == -1) {
+ PyErr_Format(PyExc_ValueError,
+ "mesh.transform_uv(...): invalid uv_index_from %d", uvindex);
+ return NULL;
+ }
+ if (uvindex_from == uvindex) {
+ uvindex_from = -1;
+ }
/* transform mesh verts */
unsigned int mit_index = 0;
@@ -326,16 +336,22 @@ PyObject *KX_MeshProxy::PyTransformUV(PyObject *args, PyObject *kwds)
size_t i;
for (i = it.startvertex; i < it.endvertex; i++) {
+ RAS_TexVert *vert = &it.vertex[i];
+ if (uvindex_from != -1) {
+ if (uvindex_from == 0) vert->SetUV2(vert->getUV1());
+ else vert->SetUV1(vert->getUV2());
+ }
+
switch (uvindex) {
case 0:
- it.vertex[i].TransformUV(transform);
+ vert->TransformUV1(transform);
break;
case 1:
- it.vertex[i].TransformUV2(transform);
+ vert->TransformUV2(transform);
break;
case -1:
- it.vertex[i].TransformUV(transform);
- it.vertex[i].TransformUV2(transform);
+ vert->TransformUV1(transform);
+ vert->TransformUV2(transform);
break;
}
}