From 0de38996399ead639c0696e832fc20ffab8e362c Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Sat, 11 Oct 2008 19:53:39 +0000 Subject: Bone sketching clean up Armature edit mode only (panel accessible in Armature header menu) Can be turned on or off Ctrl also snaps to edit bones' head and tail --- source/blender/blenkernel/BKE_global.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/BKE_global.h b/source/blender/blenkernel/BKE_global.h index 3a2dca525b8..35f97e5a0ce 100644 --- a/source/blender/blenkernel/BKE_global.h +++ b/source/blender/blenkernel/BKE_global.h @@ -151,6 +151,8 @@ typedef struct Global { /* confusing... G.f and G.flags */ int flags; + + int bone_sketching; /* regroup with edbo into an EditArmature struct */ } Global; -- cgit v1.2.3 From 718c0d5d70c233e3d12899f32631144d2362cf16 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Tue, 14 Oct 2008 20:03:21 +0000 Subject: Convert and Delete only selected strokes. Convert no longer remove converted strokes. Akey -> select all/deselect all strokes --- source/blender/blenkernel/BKE_global.h | 3 --- 1 file changed, 3 deletions(-) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/BKE_global.h b/source/blender/blenkernel/BKE_global.h index 35f97e5a0ce..bb474d3f8c8 100644 --- a/source/blender/blenkernel/BKE_global.h +++ b/source/blender/blenkernel/BKE_global.h @@ -151,9 +151,6 @@ typedef struct Global { /* confusing... G.f and G.flags */ int flags; - - int bone_sketching; /* regroup with edbo into an EditArmature struct */ - } Global; /* **************** GLOBAL ********************* */ -- cgit v1.2.3 From d99550e35efc470af395760faebcd976ecc6167c Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Thu, 6 Nov 2008 01:30:24 +0000 Subject: merging 17300:17342 --- source/blender/blenkernel/BKE_lattice.h | 3 +++ source/blender/blenkernel/BKE_shrinkwrap.h | 4 ++++ source/blender/blenkernel/BKE_writeffmpeg.h | 2 -- source/blender/blenkernel/intern/blender.c | 12 ++++++---- source/blender/blenkernel/intern/deform.c | 5 +--- source/blender/blenkernel/intern/exotic.c | 6 ++++- source/blender/blenkernel/intern/lattice.c | 12 ++++++++++ source/blender/blenkernel/intern/modifier.c | 12 ++++++---- source/blender/blenkernel/intern/shrinkwrap.c | 29 +++++++++++++----------- source/blender/blenkernel/intern/simple_deform.c | 10 +++++++- source/blender/blenkernel/intern/texture.c | 9 ++++++++ source/blender/blenkernel/intern/writeffmpeg.c | 13 ----------- 12 files changed, 75 insertions(+), 42 deletions(-) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/BKE_lattice.h b/source/blender/blenkernel/BKE_lattice.h index 5620674e791..dc7c9dcd5e5 100644 --- a/source/blender/blenkernel/BKE_lattice.h +++ b/source/blender/blenkernel/BKE_lattice.h @@ -35,6 +35,7 @@ struct Lattice; struct Object; struct DerivedMesh; struct BPoint; +struct MDeformVert; extern struct Lattice *editLatt; @@ -67,5 +68,7 @@ float (*lattice_getVertexCos(struct Object *ob, int *numVerts_r))[3]; void lattice_applyVertexCos(struct Object *ob, float (*vertexCos)[3]); void lattice_calc_modifiers(struct Object *ob); +struct MDeformVert* lattice_get_deform_verts(struct Object *lattice); + #endif diff --git a/source/blender/blenkernel/BKE_shrinkwrap.h b/source/blender/blenkernel/BKE_shrinkwrap.h index e8276238ff2..eed22ff9d8e 100644 --- a/source/blender/blenkernel/BKE_shrinkwrap.h +++ b/source/blender/blenkernel/BKE_shrinkwrap.h @@ -96,6 +96,7 @@ void space_transform_invert_normal(const SpaceTransform *data, float *no); struct Object; struct DerivedMesh; struct ShrinkwrapModifierData; +struct MDeformVert; struct BVHTree; @@ -109,6 +110,9 @@ typedef struct ShrinkwrapCalcData float (*vertexCos)[3]; //vertexs being shrinkwraped int numVerts; + struct MDeformVert* dvert; //Pointer to mdeform array + int vgroup; //Vertex group num + struct DerivedMesh *target; //mesh we are shrinking to SpaceTransform local2target; //transform to move bettwem local and target space diff --git a/source/blender/blenkernel/BKE_writeffmpeg.h b/source/blender/blenkernel/BKE_writeffmpeg.h index 50053446294..02f7ba6f860 100644 --- a/source/blender/blenkernel/BKE_writeffmpeg.h +++ b/source/blender/blenkernel/BKE_writeffmpeg.h @@ -59,8 +59,6 @@ extern void start_ffmpeg(struct RenderData *rd, int rectx, int recty); extern void end_ffmpeg(void); extern void append_ffmpeg(int frame, int *pixels, int rectx, int recty); -void silence_log_ffmpeg(int quiet); - #ifdef __cplusplus } #endif diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c index 1fe6447752e..5dcccc56d06 100644 --- a/source/blender/blenkernel/intern/blender.c +++ b/source/blender/blenkernel/intern/blender.c @@ -30,11 +30,15 @@ * ***** END GPL LICENSE BLOCK ***** */ -#ifndef WIN32 - #include // for read close - #include // for MAXPATHLEN +#ifndef _WIN32 + #include // for read close + #include // for MAXPATHLEN #else - #include // for open close read + #include // for open close read + #define open _open + #define read _read + #define close _close + #define write _write #endif #include diff --git a/source/blender/blenkernel/intern/deform.c b/source/blender/blenkernel/intern/deform.c index 3143c5e4df2..47736865273 100644 --- a/source/blender/blenkernel/intern/deform.c +++ b/source/blender/blenkernel/intern/deform.c @@ -239,12 +239,9 @@ float deformvert_get_weight(const struct MDeformVert *dvert, int group_num) float vertexgroup_get_vertex_weight(const struct MDeformVert *dvert, int index, int group_num) { - if(group_num == -1) + if(group_num == -1 || dvert == NULL) return 1.0; - if(dvert == 0) - return 0.0; - return deformvert_get_weight(dvert+index, group_num); } diff --git a/source/blender/blenkernel/intern/exotic.c b/source/blender/blenkernel/intern/exotic.c index 9fb8d17d730..ee3fd59fe9f 100644 --- a/source/blender/blenkernel/intern/exotic.c +++ b/source/blender/blenkernel/intern/exotic.c @@ -76,10 +76,14 @@ #include #include -#ifndef WIN32 +#ifndef _WIN32 #include #else #include +#define open _open +#define read _read +#define close _close +#define write _write #endif #include "MEM_guardedalloc.h" diff --git a/source/blender/blenkernel/intern/lattice.c b/source/blender/blenkernel/intern/lattice.c index 54915058bab..6614c657647 100644 --- a/source/blender/blenkernel/intern/lattice.c +++ b/source/blender/blenkernel/intern/lattice.c @@ -928,3 +928,15 @@ void lattice_calc_modifiers(Object *ob) BLI_addtail(&ob->disp, dl); } } + +struct MDeformVert* lattice_get_deform_verts(struct Object *oblatt) +{ + if(oblatt->type == OB_LATTICE) + { + Lattice *lt = (oblatt==G.obedit)?editLatt:(Lattice*)oblatt->data; + return lt->dvert; + } + + return NULL; +} + diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index 13dc2e834f2..6bdd395a2ac 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -7804,9 +7804,10 @@ static void shrinkwrapModifier_deformVerts(ModifierData *md, Object *ob, Derived { if(derivedData) dm = CDDM_copy(derivedData); else if(ob->type==OB_MESH) dm = CDDM_from_mesh(ob->data, ob); + else if(ob->type==OB_LATTICE) dm = NULL; else return; - if(dataMask & CD_MVERT) + if(dm != NULL && (dataMask & CD_MVERT)) { CDDM_apply_vert_coords(dm, vertexCos); CDDM_calc_normals(dm); @@ -7828,9 +7829,10 @@ static void shrinkwrapModifier_deformVertsEM(ModifierData *md, Object *ob, EditM { if(derivedData) dm = CDDM_copy(derivedData); else if(ob->type==OB_MESH) dm = CDDM_from_editmesh(editData, ob->data); + else if(ob->type==OB_LATTICE) dm = NULL; else return; - if(dataMask & CD_MVERT) + if(dm != NULL && (dataMask & CD_MVERT)) { CDDM_apply_vert_coords(dm, vertexCos); CDDM_calc_normals(dm); @@ -7916,9 +7918,10 @@ static void simpledeformModifier_deformVerts(ModifierData *md, Object *ob, Deriv { if(derivedData) dm = CDDM_copy(derivedData); else if(ob->type==OB_MESH) dm = CDDM_from_mesh(ob->data, ob); + else if(ob->type==OB_LATTICE) dm = NULL; else return; - if(dataMask & CD_MVERT) + if(dm != NULL && (dataMask & CD_MVERT)) { CDDM_apply_vert_coords(dm, vertexCos); CDDM_calc_normals(dm); @@ -7942,9 +7945,10 @@ static void simpledeformModifier_deformVertsEM(ModifierData *md, Object *ob, Edi { if(derivedData) dm = CDDM_copy(derivedData); else if(ob->type==OB_MESH) dm = CDDM_from_editmesh(editData, ob->data); + else if(ob->type==OB_LATTICE) dm = NULL; else return; - if(dataMask & CD_MVERT) + if(dm != NULL && (dataMask & CD_MVERT)) { CDDM_apply_vert_coords(dm, vertexCos); CDDM_calc_normals(dm); diff --git a/source/blender/blenkernel/intern/shrinkwrap.c b/source/blender/blenkernel/intern/shrinkwrap.c index 28bf7aee884..ab98fb1f007 100644 --- a/source/blender/blenkernel/intern/shrinkwrap.c +++ b/source/blender/blenkernel/intern/shrinkwrap.c @@ -41,6 +41,7 @@ #include "BKE_shrinkwrap.h" #include "BKE_DerivedMesh.h" +#include "BKE_lattice.h" #include "BKE_utildefines.h" #include "BKE_deform.h" #include "BKE_cdderivedmesh.h" @@ -161,6 +162,18 @@ void shrinkwrapModifier_deform(ShrinkwrapModifierData *smd, Object *ob, DerivedM calc.numVerts = numVerts; calc.vertexCos = vertexCos; + //DeformVertex + calc.vgroup = get_named_vertexgroup_num(calc.ob, calc.smd->vgroup_name); + if(calc.original) + { + calc.dvert = calc.original->getVertDataArray(calc.original, CD_MDEFORMVERT); + } + else if(calc.ob->type == OB_LATTICE) + { + calc.dvert = lattice_get_deform_verts(calc.ob); + } + + if(smd->target) { //TODO currently we need a copy in case object_get_derived_final returns an emDM that does not defines getVertArray or getFace array @@ -207,8 +220,6 @@ void shrinkwrapModifier_deform(ShrinkwrapModifierData *smd, Object *ob, DerivedM void shrinkwrap_calc_nearest_vertex(ShrinkwrapCalcData *calc) { int i; - const int vgroup = get_named_vertexgroup_num(calc->ob, calc->smd->vgroup_name); - MDeformVert *const dvert = calc->original ? calc->original->getVertDataArray(calc->original, CD_MDEFORMVERT) : NULL; BVHTreeFromMesh treeData = NULL_BVHTreeFromMesh; BVHTreeNearest nearest = NULL_BVHTreeNearest; @@ -230,7 +241,7 @@ void shrinkwrap_calc_nearest_vertex(ShrinkwrapCalcData *calc) { float *co = calc->vertexCos[i]; float tmp_co[3]; - float weight = vertexgroup_get_vertex_weight(dvert, i, vgroup); + float weight = vertexgroup_get_vertex_weight(calc->dvert, i, calc->vgroup); if(weight == 0.0f) continue; VECCOPY(tmp_co, co); @@ -342,11 +353,6 @@ void shrinkwrap_calc_normal_projection(ShrinkwrapCalcData *calc) MVert *vert = NULL; //Needed in case of vertex normal DerivedMesh* ss_mesh = NULL; - //Vertex group data - const int vgroup = get_named_vertexgroup_num(calc->ob, calc->smd->vgroup_name); - const MDeformVert *dvert = calc->original ? calc->original->getVertDataArray(calc->original, CD_MDEFORMVERT) : NULL; - - //Raycast and tree stuff BVHTreeRayHit hit; BVHTreeFromMesh treeData = NULL_BVHTreeFromMesh; //target @@ -441,7 +447,7 @@ do float *co = calc->vertexCos[i]; float tmp_co[3], tmp_no[3]; float lim = 10000.0f; //TODO: we should use FLT_MAX here, but sweepsphere code isnt prepared for that - float weight = vertexgroup_get_vertex_weight(dvert, i, vgroup); + float weight = vertexgroup_get_vertex_weight(calc->dvert, i, calc->vgroup); if(weight == 0.0f) continue; @@ -520,9 +526,6 @@ void shrinkwrap_calc_nearest_surface_point(ShrinkwrapCalcData *calc) { int i; - const int vgroup = get_named_vertexgroup_num(calc->ob, calc->smd->vgroup_name); - const MDeformVert *const dvert = calc->original ? calc->original->getVertDataArray(calc->original, CD_MDEFORMVERT) : NULL; - BVHTreeFromMesh treeData = NULL_BVHTreeFromMesh; BVHTreeNearest nearest = NULL_BVHTreeNearest; @@ -547,7 +550,7 @@ void shrinkwrap_calc_nearest_surface_point(ShrinkwrapCalcData *calc) { float *co = calc->vertexCos[i]; float tmp_co[3]; - float weight = vertexgroup_get_vertex_weight(dvert, i, vgroup); + float weight = vertexgroup_get_vertex_weight(calc->dvert, i, calc->vgroup); if(weight == 0.0f) continue; //Convert the vertex to tree coordinates diff --git a/source/blender/blenkernel/intern/simple_deform.c b/source/blender/blenkernel/intern/simple_deform.c index 0eb710fa48e..2978a6f7f01 100644 --- a/source/blender/blenkernel/intern/simple_deform.c +++ b/source/blender/blenkernel/intern/simple_deform.c @@ -32,6 +32,7 @@ #include "BKE_simple_deform.h" #include "BKE_DerivedMesh.h" +#include "BKE_lattice.h" #include "BKE_deform.h" #include "BKE_utildefines.h" #include "BLI_arithb.h" @@ -204,7 +205,14 @@ void SimpleDeformModifier_do(SimpleDeformModifierData *smd, struct Object *ob, s if(dm) - dvert = dm->getVertDataArray(dm, CD_MDEFORMVERT); + { + dvert = dm->getVertDataArray(dm, CD_MDEFORMVERT); + } + else if(ob->type == OB_LATTICE) + { + dvert = lattice_get_deform_verts(ob); + } + switch(smd->mode) diff --git a/source/blender/blenkernel/intern/texture.c b/source/blender/blenkernel/intern/texture.c index bb726887d32..ab9e6f9af41 100644 --- a/source/blender/blenkernel/intern/texture.c +++ b/source/blender/blenkernel/intern/texture.c @@ -348,6 +348,15 @@ int do_colorband(ColorBand *coba, float in, float out[4]) else fac= 0.0f; + if (coba->ipotype==4) { + /* constant */ + out[0]= cbd2->r; + out[1]= cbd2->g; + out[2]= cbd2->b; + out[3]= cbd2->a; + return 1; + } + if(coba->ipotype>=2) { /* ipo from right to left: 3 2 1 0 */ diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c index 642b4fd1b19..cef6f802729 100644 --- a/source/blender/blenkernel/intern/writeffmpeg.c +++ b/source/blender/blenkernel/intern/writeffmpeg.c @@ -34,7 +34,6 @@ #include #include #include -#include #if LIBAVFORMAT_VERSION_INT < (49 << 16) #define FFMPEG_OLD_FRAME_RATE 1 @@ -105,18 +104,6 @@ static RenderData *ffmpeg_renderdata = 0; #define FFMPEG_AUTOSPLIT_SIZE 2000000000 -void silence_log_ffmpeg(int quiet) -{ - if (quiet) - { - av_log_set_level(AV_LOG_QUIET); - } - else - { - av_log_set_level(AV_LOG_INFO); - } -} - /* Delete a picture buffer */ static void delete_picture(AVFrame* f) -- cgit v1.2.3 From 913fd3c730be5a38751e7c1f6bca6e298cf8b1a8 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Wed, 12 Nov 2008 19:16:46 +0000 Subject: Sensible defaults with do_version Auto names for name templating. When turned on, N will be incremented everytime (after a stroke has been converted) and S will be set to "l" or "r" (or "L or "R" if it already contains a capital L or R) depending on which side of the X axis the stroke started on. Experimental, there might be some bugs left. --- source/blender/blenkernel/BKE_blender.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index f392d57521c..a6334e665d1 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -41,7 +41,7 @@ struct ListBase; struct MemFile; #define BLENDER_VERSION 248 -#define BLENDER_SUBVERSION 1 +#define BLENDER_SUBVERSION 2 #define BLENDER_MINVERSION 245 #define BLENDER_MINSUBVERSION 15 -- cgit v1.2.3 From 3d6be3536f9b67438fab197147327d7d50580e06 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Thu, 13 Nov 2008 18:57:10 +0000 Subject: Fix saving and loading of the template variable (it incorrectedly counted as a user). --- source/blender/blenkernel/intern/object.c | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index a25afeafaef..0b153c3c065 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -521,6 +521,7 @@ void unlink_object(Object *ob) while(sce) { if(sce->id.lib==NULL) { if(sce->camera==ob) sce->camera= NULL; + if(sce->toolsettings->skgen_template==ob) sce->toolsettings->skgen_template = NULL; } sce= sce->id.next; } -- cgit v1.2.3 From 882d85a96827cb50d1fc4a2ac1d63b902aab8f86 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 16 Dec 2008 12:32:10 +0000 Subject: Patch from Banlu Kemiyatorn replace VecMulf(var,-1) with new VecNegf(var) function. --- source/blender/blenkernel/intern/collision.c | 2 +- source/blender/blenkernel/intern/constraint.c | 14 +++++++------- source/blender/blenkernel/intern/effect.c | 2 +- source/blender/blenkernel/intern/particle_system.c | 8 ++++---- 4 files changed, 13 insertions(+), 13 deletions(-) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/intern/collision.c b/source/blender/blenkernel/intern/collision.c index 775f1dee241..0b5465ea25d 100644 --- a/source/blender/blenkernel/intern/collision.c +++ b/source/blender/blenkernel/intern/collision.c @@ -1236,7 +1236,7 @@ int cloth_collision_moving_edges ( ClothModifierData *clmd, CollisionModifierDat if(out_normalVelocity < 0.0) { out_normalVelocity*= -1.0; - VecMulf(out_normal, -1.0); + VecNegf(out_normal); } */ /* Inelastic repulsion impulse. */ diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c index 5639f00ee39..b668a1f214d 100644 --- a/source/blender/blenkernel/intern/constraint.c +++ b/source/blender/blenkernel/intern/constraint.c @@ -1044,7 +1044,7 @@ static void vectomat (float *vec, float *target_up, short axis, short upflag, sh n[2] = 1.0; } if (axis > 2) axis -= 3; - else VecMulf(n,-1); + else VecNegf(n); /* n specifies the transformation of the track axis */ if (flags & TARGET_Z_UP) { @@ -2182,7 +2182,7 @@ static void locktrack_evaluate (bConstraint *con, bConstraintOb *cob, ListBase * Projf(vec2, vec, cob->matrix[0]); VecSubf(totmat[1], vec, vec2); Normalize(totmat[1]); - VecMulf(totmat[1],-1); + VecNegf(totmat[1]); /* the x axis is fixed */ totmat[0][0] = cob->matrix[0][0]; @@ -2200,7 +2200,7 @@ static void locktrack_evaluate (bConstraint *con, bConstraintOb *cob, ListBase * Projf(vec2, vec, cob->matrix[0]); VecSubf(totmat[2], vec, vec2); Normalize(totmat[2]); - VecMulf(totmat[2],-1); + VecNegf(totmat[2]); /* the x axis is fixed */ totmat[0][0] = cob->matrix[0][0]; @@ -2265,7 +2265,7 @@ static void locktrack_evaluate (bConstraint *con, bConstraintOb *cob, ListBase * Projf(vec2, vec, cob->matrix[1]); VecSubf(totmat[0], vec, vec2); Normalize(totmat[0]); - VecMulf(totmat[0],-1); + VecNegf(totmat[0]); /* the y axis is fixed */ totmat[1][0] = cob->matrix[1][0]; @@ -2283,7 +2283,7 @@ static void locktrack_evaluate (bConstraint *con, bConstraintOb *cob, ListBase * Projf(vec2, vec, cob->matrix[1]); VecSubf(totmat[2], vec, vec2); Normalize(totmat[2]); - VecMulf(totmat[2],-1); + VecNegf(totmat[2]); /* the y axis is fixed */ totmat[1][0] = cob->matrix[1][0]; @@ -2348,7 +2348,7 @@ static void locktrack_evaluate (bConstraint *con, bConstraintOb *cob, ListBase * Projf(vec2, vec, cob->matrix[2]); VecSubf(totmat[0], vec, vec2); Normalize(totmat[0]); - VecMulf(totmat[0],-1); + VecNegf(totmat[0]); /* the z axis is fixed */ totmat[2][0] = cob->matrix[2][0]; @@ -2366,7 +2366,7 @@ static void locktrack_evaluate (bConstraint *con, bConstraintOb *cob, ListBase * Projf(vec2, vec, cob->matrix[2]); VecSubf(totmat[1], vec, vec2); Normalize(totmat[1]); - VecMulf(totmat[1],-1); + VecNegf(totmat[1]); /* the z axis is fixed */ totmat[2][0] = cob->matrix[2][0]; diff --git a/source/blender/blenkernel/intern/effect.c b/source/blender/blenkernel/intern/effect.c index 122c6c71a6c..0338ec92414 100644 --- a/source/blender/blenkernel/intern/effect.c +++ b/source/blender/blenkernel/intern/effect.c @@ -251,7 +251,7 @@ static float eff_calc_visibility(Object *ob, float *co, float *dir) return 0; VECCOPY(norm, dir); - VecMulf(norm, -1.0); + VecNegf(norm); len = Normalize(norm); // check all collision objects diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 39226faff1e..8a964c5b32e 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -831,7 +831,7 @@ void psys_thread_distribute_particle(ParticleThread *thread, ParticleData *pa, C VecCopyf(tan,seam->tan); VecSubf(temp2,co1,temp); if(Inpf(tan,temp2)<0.0f) - VecMulf(tan,-1.0f); + VecNegf(tan); } for(w=0; wnor); VECSUB(temp, co2, co1); if(Inpf(col->nor, temp) > 0.0f) - VecMulf(col->nor, -1.0f); + VecNegf(col->nor); VECCOPY(col->vel,vel); @@ -3802,7 +3802,7 @@ static void boid_body(BoidVecFunc *bvf, ParticleData *pa, ParticleSystem *psys, VecRotToQuat(pa->state.vel,bank,q); VECCOPY(dvec,pa->state.vel); - VecMulf(dvec,-1.0f); + VecNegf(dvec); vectoquat(dvec, OB_POSX, OB_POSZ, q2); QuatMul(pa->state.rot,q,q2); -- cgit v1.2.3 From 3c886d7c384289206b02b1581ddc9366d607bd3f Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Wed, 17 Dec 2008 05:40:40 +0000 Subject: * commit r17900 by Genscher was wrong. - Instead of defining such defines for the entire codebase in Blender.py, add the right checks and definitions to the places where it matters. - Only check+set WITH_BULLET instead of also GAMEBLENDER=1 - NOTE: No global defines allowed in BlenderLib. --- source/blender/blenkernel/SConscript | 3 +++ 1 file changed, 3 insertions(+) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/SConscript b/source/blender/blenkernel/SConscript index ab122e40bfc..4ab7d4a6792 100644 --- a/source/blender/blenkernel/SConscript +++ b/source/blender/blenkernel/SConscript @@ -53,6 +53,9 @@ if env['WITH_BF_QUICKTIME']: defs += ' WITH_QUICKTIME' incs += ' ' + env['BF_QUICKTIME_INC'] +if env['WITH_BF_BULLET']: + defs += ' WITH_BULLET' + if env['BF_NO_ELBEEM']: defs += ' DISABLE_ELBEEM' -- cgit v1.2.3 From 5881922bc5efbb0c542344c9e6f320ec9eb4235a Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Fri, 19 Dec 2008 20:35:53 +0000 Subject: Add G_FILE_IGNORE_DEPRECATION_WARNINGS option to G.fileflags in preparation of BGE python API cleanup --- source/blender/blenkernel/BKE_global.h | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/BKE_global.h b/source/blender/blenkernel/BKE_global.h index 3a2dca525b8..e8918bcdce6 100644 --- a/source/blender/blenkernel/BKE_global.h +++ b/source/blender/blenkernel/BKE_global.h @@ -227,6 +227,7 @@ typedef struct Global { #define G_FILE_GLSL_NO_RAMPS (1 << 19) #define G_FILE_GLSL_NO_NODES (1 << 20) #define G_FILE_GLSL_NO_EXTRA_TEX (1 << 21) +#define G_FILE_IGNORE_DEPRECATION_WARNINGS (1 << 22) /* G.windowstate */ #define G_WINDOWSTATE_USERDEF 0 -- cgit v1.2.3 From f288a43457a707f767282909747897616171fc94 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 21 Dec 2008 03:11:32 +0000 Subject: define WITH_CCGSUBSURF isnt used anymore --- source/blender/blenkernel/CMakeLists.txt | 2 -- 1 file changed, 2 deletions(-) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt index 0ed4f38e457..04ca5c79a11 100644 --- a/source/blender/blenkernel/CMakeLists.txt +++ b/source/blender/blenkernel/CMakeLists.txt @@ -65,8 +65,6 @@ IF(WITH_PLAYER) SUBDIRS(bad_level_call_stubs) ENDIF(WITH_PLAYER) -ADD_DEFINITIONS(-DWITH_CCGSUBSURF) - BLENDERLIB(bf_blenkernel "${SRC}" "${INC}") IF(WITH_VERSE) -- cgit v1.2.3 From 55150edc925e7d74398f39d5bf46212200f53324 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 23 Jan 2009 21:08:01 +0000 Subject: [#18164] jpeg2000 patch, with some fixes from Peter too. Support for jpeg2000 and writing DCI Cinema standard files. Notes * 12 and 16bit channel depths are converted from/to blenders float buffer. * Grayscale/RGB with alpha supported. * Theres an option to save color channels as YCC rather then RGB. * Quality 100 saves lossless * The UI is a bit weired because of the DCI standards need to be given to the encoder. --- source/blender/blenkernel/SConscript | 3 +++ source/blender/blenkernel/intern/image.c | 36 ++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/SConscript b/source/blender/blenkernel/SConscript index 4ab7d4a6792..fb67c855b81 100644 --- a/source/blender/blenkernel/SConscript +++ b/source/blender/blenkernel/SConscript @@ -42,6 +42,9 @@ if env['WITH_BF_VERSE']: if env['WITH_BF_OPENEXR']: defs += ' WITH_OPENEXR' +if env['WITH_BF_OPENJPEG']: + defs += ' WITH_OPENJPEG' + if env['WITH_BF_DDS']: defs += ' WITH_DDS' diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c index d5166fc7a83..e817c38618f 100644 --- a/source/blender/blenkernel/intern/image.c +++ b/source/blender/blenkernel/intern/image.c @@ -767,6 +767,10 @@ int BKE_imtype_to_ftype(int imtype) return RAWTGA; else if(imtype==R_HAMX) return AN_hamx; +#ifdef WITH_OPENJPEG + else if(imtype==R_JP2) + return JP2; +#endif else return JPG|90; } @@ -801,6 +805,10 @@ int BKE_ftype_to_imtype(int ftype) return R_RAWTGA; else if(ftype == AN_hamx) return R_HAMX; +#ifdef WITH_OPENJPEG + else if(ftype & JP2) + return R_JP2; +#endif else return R_JPEG90; } @@ -877,6 +885,12 @@ void BKE_add_image_extension(char *string, int imtype) if(!BLI_testextensie(string, ".tga")) extension= ".tga"; } +#ifdef WITH_OPENJPEG + else if(imtype==R_JP2) { + if(!BLI_testextensie(string, ".jp2")) + extension= ".jp2"; + } +#endif else { // R_MOVIE, R_AVICODEC, R_AVIRAW, R_AVIJPEG, R_JPEG90, R_QUICKTIME etc if(!( BLI_testextensie(string, ".jpg") || BLI_testextensie(string, ".jpeg"))) extension= ".jpg"; @@ -1220,6 +1234,28 @@ int BKE_write_ibuf(ImBuf *ibuf, char *name, int imtype, int subimtype, int quali else if(imtype==R_HAMX) { ibuf->ftype= AN_hamx; } +#ifdef WITH_OPENJPEG + else if(imtype==R_JP2) { + if(quality < 10) quality= 90; + ibuf->ftype= JP2|quality; + + if (subimtype & R_JPEG2K_16BIT) { + ibuf->ftype |= JP2_16BIT; + } else if (subimtype & R_JPEG2K_12BIT) { + ibuf->ftype |= JP2_12BIT; + } + + if (subimtype & R_JPEG2K_YCC) { + ibuf->ftype |= JP2_YCC; + } + + if (subimtype & R_JPEG2K_CINE_PRESET) { + ibuf->ftype |= JP2_CINE; + if (subimtype & R_JPEG2K_CINE_48FPS) + ibuf->ftype |= JP2_CINE_48FPS; + } + } +#endif else { /* R_JPEG90, R_MOVIE, etc. default we save jpegs */ if(quality < 10) quality= 90; -- cgit v1.2.3 From 56d2dc7e7f3f029fab442ea0cc9673583328fb46 Mon Sep 17 00:00:00 2001 From: Jens Ole Wund Date: Wed, 28 Jan 2009 12:34:22 +0000 Subject: bug fix softbody wind -compensating factor 1000 that comes from pdDoEffectors() since Aug 2008 -give particles and soft body vertices the same polarity on force fields. --- source/blender/blenkernel/intern/softbody.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/intern/softbody.c b/source/blender/blenkernel/intern/softbody.c index 5d93f10526a..f63f6edf4b3 100644 --- a/source/blender/blenkernel/intern/softbody.c +++ b/source/blender/blenkernel/intern/softbody.c @@ -1562,7 +1562,7 @@ static void _scan_for_ext_spring_forces(Object *ob,float timenow,int ifirst,int /* note we don't use sb->mediafrict but use sb->aeroedge for magnitude of effect*/ if(sb->aeroedge){ float vel[3],sp[3],pr[3],force[3]; - float f,windfactor = 250.0f; + float f,windfactor = 0.25f; /*see if we have wind*/ if(do_effector) { float speed[3]={0.0f,0.0f,0.0f}; @@ -2392,7 +2392,7 @@ static void softbody_calc_forcesEx(Object *ob, float forcetime, float timenow, i BodyPoint *bproot; ListBase *do_effector; float iks, gravity; - float fieldfactor = 1000.0f, windfactor = 250.0f; + float fieldfactor = -1.0f, windfactor = 0.25; int do_deflector,do_selfcollision,do_springcollision,do_aero; gravity = sb->grav * sb_grav_force_scale(ob); @@ -2454,7 +2454,7 @@ static void softbody_calc_forces(Object *ob, float forcetime, float timenow, int BodySpring *bs; ListBase *do_effector; float iks, ks, kd, gravity; - float fieldfactor = 1000.0f, windfactor = 250.0f; + float fieldfactor = -1.0f, windfactor = 0.25f; float tune = sb->ballstiff; int a, b, do_deflector,do_selfcollision,do_springcollision,do_aero; -- cgit v1.2.3 From fbdd75a4756423a1f884c4738defa31781513823 Mon Sep 17 00:00:00 2001 From: Robin Allen Date: Fri, 6 Feb 2009 00:55:38 +0000 Subject: Added compose/decompose, fixed bugs. --- source/blender/blenkernel/BKE_node.h | 2 ++ source/blender/blenkernel/intern/node.c | 2 ++ 2 files changed, 4 insertions(+) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index 1c5b6b124b2..c36590fae86 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -403,6 +403,8 @@ struct TexResult; #define TEX_NODE_TRANSLATE 116 #define TEX_NODE_COORD 117 #define TEX_NODE_DISTANCE 118 +#define TEX_NODE_COMPOSE 119 +#define TEX_NODE_DECOMPOSE 120 /* 201-299 reserved. Use like this: TEX_NODE_PROC + TEX_CLOUDS, etc */ #define TEX_NODE_PROC 200 diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 4c84c56180c..25d921bb783 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -2888,6 +2888,8 @@ static void registerTextureNodes(ListBase *ntypelist) nodeRegisterType(ntypelist, &tex_node_hue_sat); nodeRegisterType(ntypelist, &tex_node_coord); nodeRegisterType(ntypelist, &tex_node_distance); + nodeRegisterType(ntypelist, &tex_node_compose); + nodeRegisterType(ntypelist, &tex_node_decompose); nodeRegisterType(ntypelist, &tex_node_output); nodeRegisterType(ntypelist, &tex_node_viewer); -- cgit v1.2.3 From 6a669d00b230901f3d0a0aba3aeac8eafde7ca84 Mon Sep 17 00:00:00 2001 From: Robin Allen Date: Fri, 6 Feb 2009 01:21:38 +0000 Subject: Patch #18015, adds "Value to Normal" node --- source/blender/blenkernel/BKE_node.h | 1 + source/blender/blenkernel/intern/node.c | 1 + 2 files changed, 2 insertions(+) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index c36590fae86..20a9fae33bb 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -405,6 +405,7 @@ struct TexResult; #define TEX_NODE_DISTANCE 118 #define TEX_NODE_COMPOSE 119 #define TEX_NODE_DECOMPOSE 120 +#define TEX_NODE_VALTONOR 121 /* 201-299 reserved. Use like this: TEX_NODE_PROC + TEX_CLOUDS, etc */ #define TEX_NODE_PROC 200 diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 25d921bb783..14111f2c175 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -2882,6 +2882,7 @@ static void registerTextureNodes(ListBase *ntypelist) nodeRegisterType(ntypelist, &tex_node_mix_rgb); nodeRegisterType(ntypelist, &tex_node_valtorgb); nodeRegisterType(ntypelist, &tex_node_rgbtobw); + nodeRegisterType(ntypelist, &tex_node_valtonor); nodeRegisterType(ntypelist, &tex_node_curve_rgb); nodeRegisterType(ntypelist, &tex_node_curve_time); nodeRegisterType(ntypelist, &tex_node_invert); -- cgit v1.2.3 From 09099111e39a7363fa186c4200b60b3b2bd93f9e Mon Sep 17 00:00:00 2001 From: Robin Allen Date: Fri, 6 Feb 2009 18:09:35 +0000 Subject: Added Scale, fixed bugs incl. patch #18037 --- source/blender/blenkernel/BKE_node.h | 1 + source/blender/blenkernel/intern/node.c | 1 + 2 files changed, 2 insertions(+) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index 20a9fae33bb..3f04330f2a3 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -406,6 +406,7 @@ struct TexResult; #define TEX_NODE_COMPOSE 119 #define TEX_NODE_DECOMPOSE 120 #define TEX_NODE_VALTONOR 121 +#define TEX_NODE_SCALE 122 /* 201-299 reserved. Use like this: TEX_NODE_PROC + TEX_CLOUDS, etc */ #define TEX_NODE_PROC 200 diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 14111f2c175..978b47b651f 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -2902,6 +2902,7 @@ static void registerTextureNodes(ListBase *ntypelist) nodeRegisterType(ntypelist, &tex_node_rotate); nodeRegisterType(ntypelist, &tex_node_translate); + nodeRegisterType(ntypelist, &tex_node_scale); nodeRegisterType(ntypelist, &tex_node_proc_voronoi); nodeRegisterType(ntypelist, &tex_node_proc_blend); -- cgit v1.2.3 From f87a399978e81e96a711347b1dee66dbbbd362d5 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 21 Feb 2009 04:42:46 +0000 Subject: [#18058] Black dots appear when blender renders with multi-thread and material nodes Without thread locking the function that allocates new threads, black dots appear in renders. This wont affect composite nodes, Ton/Brecht - this is possibly too many lock/unlocks but I timed the render from the bug report and it didn't make a noticeable difference. --- source/blender/blenkernel/intern/node.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 978b47b651f..9a78f8ea02a 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -1999,19 +1999,23 @@ static bNodeThreadStack *ntreeGetThreadStack(bNodeTree *ntree, int thread) { ListBase *lb= &ntree->threadstack[thread]; bNodeThreadStack *nts; - + + /* for material shading this is called quite a lot (perhaps too much locking unlocking) + * however without locking we get bug #18058 - Campbell */ + BLI_lock_thread(LOCK_CUSTOM1); + for(nts=lb->first; nts; nts=nts->next) { if(!nts->used) { nts->used= 1; + BLI_unlock_thread(LOCK_CUSTOM1); return nts; } } - nts= MEM_callocN(sizeof(bNodeThreadStack), "bNodeThreadStack"); nts->stack= MEM_dupallocN(ntree->stack); nts->used= 1; BLI_addtail(lb, nts); - + BLI_unlock_thread(LOCK_CUSTOM1); return nts; } -- cgit v1.2.3 From a3b684d69878eaff3e0ad475264485419e0c029f Mon Sep 17 00:00:00 2001 From: Andre Susano Pinto Date: Sat, 21 Feb 2009 12:15:57 +0000 Subject: [#18277] Segfault crash by editing mesh with subsurf+ParticleInstance modifiers particleInstanceModifier_applyModifier uses getVertCo,which is not implemented by ccgDM. getVertCo was used to simply perform a min/max, so it was fixed to use the apropriate min/max dm->getMinMax(dm, min_r, max_r); Maybe the fact ccgDM doesn't implements getVertCo/getVertNo is a bug, since it implements every other DM function and its strange those are left out. --- source/blender/blenkernel/intern/modifier.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index 6bdd395a2ac..566a139f72c 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -6380,20 +6380,11 @@ static DerivedMesh * particleInstanceModifier_applyModifier( psys->lattice=psys_get_lattice(ob, psys); if(psys->flag & (PSYS_HAIR_DONE|PSYS_KEYED)){ - float co[3]; - for(i=0; i< totvert; i++){ - dm->getVertCo(dm,i,co); - if(i==0){ - min_co=max_co=co[track]; - } - else{ - if(co[track]max_co) - max_co=co[track]; - } - } + float min_r[3], max_r[3]; + dm->getMinMax(dm, min_r, max_r); + min_co=min_r[track]; + max_co=max_r[track]; } result = CDDM_from_template(dm, maxvert,dm->getNumEdges(dm)*totpart,maxface); -- cgit v1.2.3 From 56e9c87309e155d6710067759c415279848b6bea Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 24 Feb 2009 17:34:41 +0000 Subject: building the game engine without SDL works again --- source/blender/blenkernel/SConscript | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/SConscript b/source/blender/blenkernel/SConscript index fb67c855b81..a7e4d8807b2 100644 --- a/source/blender/blenkernel/SConscript +++ b/source/blender/blenkernel/SConscript @@ -28,6 +28,8 @@ if env['WITH_BF_QUICKTIME']: if env['WITH_BF_SDL']: incs += ' ' + env['BF_SDL_INC'] +else: + defs += ' DISABLE_SDL' if env['WITH_BF_INTERNATIONAL']: defs += ' WITH_FREETYPE2' -- cgit v1.2.3 From 4d9252640139401be5a67fc2d267176be95eaca8 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 26 Feb 2009 12:43:24 +0000 Subject: build blenderplayer without opennl and decimation --- source/blender/blenkernel/bad_level_call_stubs/stubs.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/bad_level_call_stubs/stubs.c b/source/blender/blenkernel/bad_level_call_stubs/stubs.c index 91fb9031597..fecead66bda 100644 --- a/source/blender/blenkernel/bad_level_call_stubs/stubs.c +++ b/source/blender/blenkernel/bad_level_call_stubs/stubs.c @@ -242,6 +242,12 @@ void bglEnd(void) {} /* booleanops.c */ struct DerivedMesh *NewBooleanDerivedMesh(struct Object *ob, struct Object *ob_select, int int_op_type) { return 0; } +/* LOD_decimation.cpp */ +int LOD_LoadMesh(struct LOD_Decimation_Info* info) { return 0;}; +int LOD_PreprocessMesh(struct LOD_Decimation_Info* info) {return 0;}; +int LOD_CollapseEdge(struct LOD_Decimation_Info* info) {return 0;}; +int LOD_FreeDecimationData(struct LOD_Decimation_Info* info) {return 0;}; + // bobj read/write debug messages void elbeemDebugOut(char *msg) {} void fluidsimSettingsFree(struct FluidsimSettings* sb) {} -- cgit v1.2.3 From 78af62bec81467fae5994547919aa255361e8f18 Mon Sep 17 00:00:00 2001 From: Kent Mein Date: Fri, 6 Mar 2009 15:46:13 +0000 Subject: Addes jpeg2000 support to cmake. I also did some small tweaks. removed ifdef's for pluginapi didn't need them there. Fixed it so the filesel shows jp2 as image files. (I'm going to do makefiles next) Kent --- source/blender/blenkernel/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt index 04ca5c79a11..27be1b45779 100644 --- a/source/blender/blenkernel/CMakeLists.txt +++ b/source/blender/blenkernel/CMakeLists.txt @@ -47,6 +47,10 @@ IF(WITH_OPENEXR) ADD_DEFINITIONS(-DWITH_OPENEXR) ENDIF(WITH_OPENEXR) +IF(WITH_OPENJPEG) + ADD_DEFINITIONS(-DWITH_OPENJPEG) +ENDIF(WITH_OPENJPEG) + IF(WITH_DDS) ADD_DEFINITIONS(-DWITH_DDS) ENDIF(WITH_DDS) -- cgit v1.2.3 From d17ca2179d7a2dc4e77dd427fdfb416929a454c7 Mon Sep 17 00:00:00 2001 From: Kent Mein Date: Tue, 10 Mar 2009 16:04:29 +0000 Subject: Addes libopenjpeg (jpeg2000) support to the Makefiles Kent --- source/blender/blenkernel/intern/Makefile | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'source/blender/blenkernel') diff --git a/source/blender/blenkernel/intern/Makefile b/source/blender/blenkernel/intern/Makefile index 8921ea5d3b7..226e416dad7 100644 --- a/source/blender/blenkernel/intern/Makefile +++ b/source/blender/blenkernel/intern/Makefile @@ -108,6 +108,10 @@ ifeq ($(WITH_DDS), true) CPPFLAGS += -DWITH_DDS endif +ifeq ($(WITH_OPENJPEG), true) + CPPFLAGS += -DWITH_OPENJPEG +endif + ifeq ($(WITH_QUICKTIME), true) CPPFLAGS += -I../../quicktime CPPFLAGS += -DWITH_QUICKTIME -- cgit v1.2.3