branches/2-44-stable
Merge from trunk: revision 11339 (BugFix #6946) revision 11340 (BugFix #6875) revision 11343 (Rendering bugfix)
This commit is contained in:
parent
0631dfc3ef
commit
e47675696b
|
@ -9,7 +9,7 @@ Tooltip: 'Export the UV face layout of the selected object to a .TGA or .SVG fil
|
|||
|
||||
__author__ = "Martin 'theeth' Poirier"
|
||||
__url__ = ("http://www.blender.org", "http://blenderartists.org/")
|
||||
__version__ = "2.4"
|
||||
__version__ = "2.5"
|
||||
|
||||
__bpydoc__ = """\
|
||||
This script exports the UV face layout of the selected mesh object to
|
||||
|
@ -96,6 +96,11 @@ Notes:<br>See change logs in scripts for a list of contributors.
|
|||
# Version 2.4
|
||||
# Port from NMesh to Mesh by Daniel Salazar (zanqdo)
|
||||
# --------------------------
|
||||
# Version 2.5
|
||||
# Fixed some old off by one rasterizing errors (didn't render points at 1.0 in the UV scale properly).
|
||||
# Fixed wire drawing for non 1 wire size (didn't wrap or stretch properly
|
||||
# and would often raise exceptions)
|
||||
# --------------------------
|
||||
|
||||
|
||||
FullPython = False
|
||||
|
@ -322,7 +327,7 @@ def UV_Export_TGA(vList, size, wsize, wrap, file):
|
|||
|
||||
step = 0
|
||||
|
||||
img = Buffer(size+1,size+1)
|
||||
img = Buffer(size,size)
|
||||
|
||||
if wrap:
|
||||
wrapSize = size
|
||||
|
@ -333,15 +338,16 @@ def UV_Export_TGA(vList, size, wsize, wrap, file):
|
|||
for f in vList:
|
||||
for v in f:
|
||||
x = int(v[0] * size)
|
||||
maxx = max (x, maxx)
|
||||
minx = min (x, minx)
|
||||
maxx = max (x + wsize - 1, maxx)
|
||||
minx = min (x - wsize + 1, minx)
|
||||
|
||||
y = int(v[1] * size)
|
||||
maxy = max (y, maxy)
|
||||
miny = min (y, miny)
|
||||
maxy = max (y + wsize - 1, maxy)
|
||||
miny = min (y - wsize + 1, miny)
|
||||
wrapSize = max (maxx - minx + 1, maxy - miny + 1)
|
||||
scale = float (size) / float (wrapSize)
|
||||
|
||||
max_index = size - 1 # max index of the buffer (height or width)
|
||||
fnum = 0
|
||||
fcnt = len (vList)
|
||||
|
||||
|
@ -361,31 +367,31 @@ def UV_Export_TGA(vList, size, wsize, wrap, file):
|
|||
if step:
|
||||
try:
|
||||
for t in xrange(step):
|
||||
x = int(floor((co1[0] + t*(co2[0]-co1[0])/step) * size))
|
||||
y = int(floor((co1[1] + t*(co2[1]-co1[1])/step) * size))
|
||||
x = int(floor((co1[0] + t*(co2[0]-co1[0])/step) * max_index))
|
||||
y = int(floor((co1[1] + t*(co2[1]-co1[1])/step) * max_index))
|
||||
|
||||
if wrap:
|
||||
x = x % wrapSize
|
||||
y = y % wrapSize
|
||||
else:
|
||||
x = int ((x - minx) * scale)
|
||||
y = int ((y - miny) * scale)
|
||||
|
||||
co = x * 1 + y * 1 * size;
|
||||
|
||||
img[co] = 0
|
||||
if wsize > 1:
|
||||
for x in range(-1*wsize + 1,wsize):
|
||||
for y in range(-1*wsize,wsize):
|
||||
img[co + 1 * x + y * 1 * size] = 0
|
||||
for dx in range(-1*wsize + 1, wsize):
|
||||
if wrap:
|
||||
wx = (x + dx) % wrapSize
|
||||
else:
|
||||
wx = int ((x - minx + dx) * scale)
|
||||
|
||||
for dy in range(-1*wsize + 1, wsize):
|
||||
if wrap:
|
||||
wy = (y + dy) % wrapSize
|
||||
else:
|
||||
wy = int ((y - miny + dy) * scale)
|
||||
|
||||
co = wx * 1 + wy * 1 * size
|
||||
img[co] = 0
|
||||
except OverflowError:
|
||||
if not extreme_warning:
|
||||
print "Skipping extremely long UV edges, check your layout for excentric values"
|
||||
extreme_warning = True
|
||||
|
||||
for v in f:
|
||||
x = int(v[0] * size)
|
||||
y = int(v[1] * size)
|
||||
x = int(v[0] * max_index)
|
||||
y = int(v[1] * max_index)
|
||||
|
||||
if wrap:
|
||||
x = x % wrapSize
|
||||
|
|
|
@ -1235,7 +1235,7 @@ static void shade_one_light(LampRen *lar, ShadeInput *shi, ShadeResult *shr, int
|
|||
/* shadow and spec, (visifac==0 outside spot) */
|
||||
if(visifac> 0.0f) {
|
||||
|
||||
if(i>0.0f && (R.r.mode & R_SHADOW)) {
|
||||
if((R.r.mode & R_SHADOW)) {
|
||||
if(ma->mode & MA_SHADOW) {
|
||||
if(lar->shb || (lar->mode & LA_SHAD_RAY)) {
|
||||
|
||||
|
@ -1259,7 +1259,7 @@ static void shade_one_light(LampRen *lar, ShadeInput *shi, ShadeResult *shr, int
|
|||
}
|
||||
}
|
||||
|
||||
/* in case 'no diffuse' we still do most calculus, spec can be in shadow */
|
||||
/* in case 'no diffuse' we still do most calculus, spec can be in shadow.*/
|
||||
if(!(lar->mode & LA_NO_DIFF)) {
|
||||
if(i>0.0f) {
|
||||
if(ma->mode & MA_SHADOW_TRA)
|
||||
|
|
|
@ -1506,7 +1506,7 @@ static void ElementResize(TransInfo *t, TransData *td, float mat[3][3]) {
|
|||
if (td->ext) {
|
||||
float fsize[3];
|
||||
|
||||
if (t->flag & (T_OBJECT|T_TEXTURE)) {
|
||||
if (t->flag & (T_OBJECT|T_TEXTURE|T_POSE)) {
|
||||
float obsizemat[3][3];
|
||||
// Reorient the size mat to fit the oriented object.
|
||||
Mat3MulMat3(obsizemat, tmat, td->axismtx);
|
||||
|
@ -1520,7 +1520,7 @@ static void ElementResize(TransInfo *t, TransData *td, float mat[3][3]) {
|
|||
|
||||
protectedSizeBits(td->protectflag, fsize);
|
||||
|
||||
if ((t->flag & T_V3D_ALIGN)==0) { // align mode doesn't rotate objects itself
|
||||
if ((t->flag & T_V3D_ALIGN)==0) { // align mode doesn't resize objects itself
|
||||
/* handle ipokeys? */
|
||||
if(td->tdi) {
|
||||
TransDataIpokey *tdi= td->tdi;
|
||||
|
@ -1726,6 +1726,7 @@ int ToSphere(TransInfo *t, short mval[2])
|
|||
|
||||
VecAddf(td->loc, t->center, vec);
|
||||
}
|
||||
|
||||
|
||||
recalcData(t);
|
||||
|
||||
|
|
Loading…
Reference in New Issue