svn merge ^/trunk/blender -r48105:48109
authorCampbell Barton <ideasman42@gmail.com>
Wed, 20 Jun 2012 10:03:02 +0000 (10:03 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 20 Jun 2012 10:03:02 +0000 (10:03 +0000)
release/scripts/modules/console_python.py
release/scripts/startup/bl_ui/space_view3d_toolbar.py
source/blender/compositor/operations/COM_ScreenLensDistortionOperation.cpp
source/blender/nodes/composite/nodes/node_composite_lensdist.c

index 4ddde0de17c7dbf9f8c09326e961a33c9c17b9ef..b5985d2c851ae927e68091d7585711d1417cebfa 100644 (file)
@@ -96,7 +96,10 @@ def get_console(console_id):
 
         namespace["__builtins__"] = sys.modules["builtins"]
         namespace["bpy"] = bpy
+
+        # weak! - but highly convenient
         namespace["C"] = bpy.context
+        namespace["D"] = bpy.data
 
         replace_help(namespace)
 
@@ -305,6 +308,7 @@ def banner(context):
                    'OUTPUT')
     add_scrollback("Convenience Imports: from mathutils import *; "
                    "from math import *", 'OUTPUT')
+    add_scrollback("Convenience Variables: C = bpy.context, D = bpy.data", 'OUTPUT')
     add_scrollback("", 'OUTPUT')
     sc.prompt = PROMPT
 
index afffa054a1e98ed638378878d6bec38c69640857..f3365da6ad63c2a789e3a1caad74f618c7f8fb45 100644 (file)
@@ -676,6 +676,8 @@ class VIEW3D_PT_tools_brush(Panel, View3DPaintPanel):
             row.prop(brush, "jitter", slider=True)
             row.prop(brush, "use_pressure_jitter", toggle=True, text="")
 
+            col.prop(brush, "vertex_tool", text="Blend")
+
         # Vertex Paint Mode #
         elif context.vertex_paint_object and brush:
             col = layout.column()
@@ -695,6 +697,8 @@ class VIEW3D_PT_tools_brush(Panel, View3DPaintPanel):
             #row.prop(brush, "jitter", slider=True)
             #row.prop(brush, "use_pressure_jitter", toggle=True, text="")
 
+            col.prop(brush, "vertex_tool", text="Blend")
+
 
 class VIEW3D_PT_tools_brush_texture(Panel, View3DPaintPanel):
     bl_label = "Texture"
index 1e19c29331439e0e24dd498099b28b8296d80d8a..02cc62d4bddcd1c90efc4a541f495d5529096105 100644 (file)
@@ -72,19 +72,20 @@ void ScreenLensDistortionOperation::executePixel(float *outputColor, int x, int
        float tc[4] = {0, 0, 0, 0};
        const float v = sc * ((y + 0.5f) - cy) / cy;
        const float u = sc * ((x + 0.5f) - cx) / cx;
+       const float uv_dot = u * u + v * v;
        int sta = 0, mid = 0, end = 0;
 
-       if ((t = 1.f - kr4 * (u * u + v * v)) >= 0.f) {
+       if ((t = 1.f - kr4 * uv_dot) >= 0.f) {
                d = 1.f / (1.f + sqrtf(t));
                ln[0] = (u * d + 0.5f) * width - 0.5f, ln[1] = (v * d + 0.5f) * height - 0.5f;
                sta = 1;
        }
-       if ((t = 1.f - kg4 * (u * u + v * v)) >= 0.f) {
+       if ((t = 1.f - kg4 * uv_dot) >= 0.f) {
                d = 1.f / (1.f + sqrtf(t));
                ln[2] = (u * d + 0.5f) * width - 0.5f, ln[3] = (v * d + 0.5f) * height - 0.5f;
                mid = 1;
        }
-       if ((t = 1.f - kb4 * (u * u + v * v)) >= 0.f) {
+       if ((t = 1.f - kb4 * uv_dot) >= 0.f) {
                d = 1.f / (1.f + sqrtf(t));
                ln[4] = (u * d + 0.5f) * width - 0.5f, ln[5] = (v * d + 0.5f) * height - 0.5f;
                end = 1;
@@ -103,10 +104,10 @@ void ScreenLensDistortionOperation::executePixel(float *outputColor, int x, int
 
                        for (z = 0; z < ds; ++z) {
                                const float tz = ((float)z + (jit ? BLI_frand() : 0.5f)) * sd;
-                               t = 1.f - (kr4 + tz * drg) * (u * u + v * v);
+                               t = 1.f - (kr4 + tz * drg) * uv_dot;
                                d = 1.f / (1.f + sqrtf(t));
-                               const float nx = (u * d + 0.5f) * getWidth() - 0.5f;
-                               const float ny = (v * d + 0.5f) * getHeight() - 0.5f;
+                               const float nx = (u * d + 0.5f) * width - 0.5f;
+                               const float ny = (v * d + 0.5f) * height - 0.5f;
                                buffer->readCubic(color, nx, ny);
                                tc[0] += (1.f - tz) * color[0], tc[1] += tz * color[1];
                                dr++, dg++;
@@ -121,10 +122,10 @@ void ScreenLensDistortionOperation::executePixel(float *outputColor, int x, int
 
                        for (z = 0; z < ds; ++z) {
                                const float tz = ((float)z + (jit ? BLI_frand() : 0.5f)) * sd;
-                               t = 1.f - (kg4 + tz * dgb) * (u * u + v * v);
+                               t = 1.f - (kg4 + tz * dgb) * uv_dot;
                                d = 1.f / (1.f + sqrtf(t));
-                               const float nx = (u * d + 0.5f) * getWidth() - 0.5f;
-                               const float ny = (v * d + 0.5f) * getHeight() - 0.5f;
+                               const float nx = (u * d + 0.5f) * width - 0.5f;
+                               const float ny = (v * d + 0.5f) * height - 0.5f;
                                buffer->readCubic(color, nx, ny);
                                tc[1] += (1.f - tz) * color[1], tc[2] += tz * color[2];
                                dg++, db++;
index 9b19ca6f5cfc50ff5d8e5e25c1596ca1179acfa6..7635a391441e70a46718a8f12c7cef0c2c58f253 100644 (file)
@@ -98,19 +98,20 @@ static void lensDistort(CompBuf *dst, CompBuf *src, float kr, float kg, float kb
                                float d, t, ln[6] = {0, 0, 0, 0, 0, 0};
                                fRGB c1, tc = {0, 0, 0, 0};
                                const float u = sc*((x + 0.5f) - cx)/cx;
+                               const float uv_dot = u * u + v * v;
                                int sta = 0, mid = 0, end = 0;
                                
-                               if ((t = 1.f - kr*(u*u + v*v)) >= 0.f) {
+                               if ((t = 1.f - kr*uv_dot) >= 0.f) {
                                        d = 1.f/(1.f + sqrtf(t));
                                        ln[0] = (u*d + 0.5f)*dst->x - 0.5f, ln[1] = (v*d + 0.5f)*dst->y - 0.5f;
                                        sta = 1;
                                }
-                               if ((t = 1.f - kg*(u*u + v*v)) >= 0.f) {
+                               if ((t = 1.f - kg*uv_dot) >= 0.f) {
                                        d = 1.f/(1.f + sqrtf(t));
                                        ln[2] = (u*d + 0.5f)*dst->x - 0.5f, ln[3] = (v*d + 0.5f)*dst->y - 0.5f;
                                        mid = 1;
                                }
-                               if ((t = 1.f - kb*(u*u + v*v)) >= 0.f) {
+                               if ((t = 1.f - kb*uv_dot) >= 0.f) {
                                        d = 1.f/(1.f + sqrtf(t));
                                        ln[4] = (u*d + 0.5f)*dst->x - 0.5f, ln[5] = (v*d + 0.5f)*dst->y - 0.5f;
                                        end = 1;
@@ -125,7 +126,7 @@ static void lensDistort(CompBuf *dst, CompBuf *src, float kr, float kg, float kb
                                        
                                        for (z=0; z<ds; ++z) {
                                                const float tz = ((float)z + (jit ? BLI_frand() : 0.5f))*sd;
-                                               t = 1.f - (kr + tz*drg)*(u*u + v*v);
+                                               t = 1.f - (kr + tz*drg)*uv_dot;
                                                d = 1.f / (1.f + sqrtf(t));
                                                qd_getPixelLerp(src, (u*d + 0.5f)*dst->x - 0.5f, (v*d + 0.5f)*dst->y - 0.5f, c1);
                                                if (src->type == CB_VAL) c1[1] = c1[2] = c1[0];
@@ -141,7 +142,7 @@ static void lensDistort(CompBuf *dst, CompBuf *src, float kr, float kg, float kb
                                                
                                                for (z=0; z<ds; ++z) {
                                                        const float tz = ((float)z + (jit ? BLI_frand() : 0.5f))*sd;
-                                                       t = 1.f - (kg + tz*dgb)*(u*u + v*v);
+                                                       t = 1.f - (kg + tz*dgb)*uv_dot;
                                                        d = 1.f / (1.f + sqrtf(t));
                                                        qd_getPixelLerp(src, (u*d + 0.5f)*dst->x - 0.5f, (v*d + 0.5f)*dst->y - 0.5f, c1);
                                                        if (src->type == CB_VAL) c1[1] = c1[2] = c1[0];