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:
-rw-r--r--intern/bsp/SConscript2
-rw-r--r--intern/decimation/SConscript2
-rw-r--r--source/blender/blenkernel/intern/booleanops.c4
-rw-r--r--source/blender/blenkernel/intern/modifier.c32
-rw-r--r--source/blender/editors/armature/meshlaplacian.c6
-rw-r--r--source/blender/editors/armature/meshlaplacian.h2
-rw-r--r--source/blender/editors/include/ED_armature.h5
-rw-r--r--source/blender/editors/object/object_modifier.c5
-rw-r--r--source/blender/makesdna/DNA_modifier_types.h7
-rw-r--r--source/blender/makesrna/intern/rna_modifier.c22
-rw-r--r--source/creator/CMakeLists.txt1
11 files changed, 40 insertions, 48 deletions
diff --git a/intern/bsp/SConscript b/intern/bsp/SConscript
index 2ecc280f135..6ee888efc8d 100644
--- a/intern/bsp/SConscript
+++ b/intern/bsp/SConscript
@@ -8,5 +8,5 @@ incs = 'intern ../container ../moto/include ../memutil'
if (env['OURPLATFORM'] == 'win32-mingw'):
env.BlenderLib ('blender_BSP', sources, Split(incs), [], libtype='core', priority=26 )
else:
- env.BlenderLib ('blender_BSP', sources, Split(incs), [], libtype='core', priority=20 )
+ env.BlenderLib ('blender_BSP', sources, Split(incs), [], libtype='core', priority=200 )
diff --git a/intern/decimation/SConscript b/intern/decimation/SConscript
index ef95a795928..2dd86c44cf1 100644
--- a/intern/decimation/SConscript
+++ b/intern/decimation/SConscript
@@ -5,4 +5,4 @@ sources = env.Glob('intern/*.cpp')
incs = '. ../moto/include ../container ../memutil'
-env.BlenderLib ('bf_decimation', sources, Split(incs) , [], libtype=['core'], priority = [10] )
+env.BlenderLib ('bf_decimation', sources, Split(incs) , [], libtype=['core'], priority = [200] )
diff --git a/source/blender/blenkernel/intern/booleanops.c b/source/blender/blenkernel/intern/booleanops.c
index 5f0697f06ce..1f6457199fb 100644
--- a/source/blender/blenkernel/intern/booleanops.c
+++ b/source/blender/blenkernel/intern/booleanops.c
@@ -526,8 +526,8 @@ DerivedMesh *NewBooleanDerivedMesh_intern(
CSG_FreeVertexDescriptor(&vd_o);
CSG_FreeFaceDescriptor(&fd_o);
}
-// else
-// XXX error("Unknown internal error in boolean");
+ else
+ printf("Unknown internal error in boolean");
CSG_FreeBooleanOperation(bool_op);
diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c
index 3c52dc0af84..1f4f69bd376 100644
--- a/source/blender/blenkernel/intern/modifier.c
+++ b/source/blender/blenkernel/intern/modifier.c
@@ -82,7 +82,7 @@
#include "BKE_anim.h"
#include "BKE_action.h"
#include "BKE_bmesh.h"
-// XXX #include "BKE_booleanops.h"
+#include "BKE_booleanops.h"
#include "BKE_cloth.h"
#include "BKE_collision.h"
#include "BKE_cdderivedmesh.h"
@@ -113,18 +113,12 @@
#include "BKE_shrinkwrap.h"
#include "BKE_simple_deform.h"
-//XXX #include "LOD_DependKludge.h"
#include "LOD_decimation.h"
-// XXX
-static struct DerivedMesh *NewBooleanDerivedMesh() {return NULL;}
-
#include "CCGSubSurf.h"
#include "RE_shader_ext.h"
-//XXX #include "BIF_meshlaplacian.h"
-
/* Utility */
static int is_last_displist(Object *ob)
@@ -4138,11 +4132,11 @@ static DerivedMesh *decimateModifier_applyModifier(
ModifierData *md, Object *ob, DerivedMesh *derivedData,
int useRenderParams, int isFinalCalc)
{
- // DecimateModifierData *dmd = (DecimateModifierData*) md;
+ DecimateModifierData *dmd = (DecimateModifierData*) md;
DerivedMesh *dm = derivedData, *result = NULL;
MVert *mvert;
MFace *mface;
- // LOD_Decimation_Info lod;
+ LOD_Decimation_Info lod;
int totvert, totface;
int a, numTris;
@@ -4164,8 +4158,6 @@ static DerivedMesh *decimateModifier_applyModifier(
goto exit;
}
- // XXX
-#if 0
lod.vertex_buffer= MEM_mallocN(3*sizeof(float)*totvert, "vertices");
lod.vertex_normal_buffer= MEM_mallocN(3*sizeof(float)*totvert, "normals");
lod.triangle_index_buffer= MEM_mallocN(3*sizeof(int)*numTris, "trias");
@@ -4250,10 +4242,6 @@ static DerivedMesh *decimateModifier_applyModifier(
MEM_freeN(lod.vertex_buffer);
MEM_freeN(lod.vertex_normal_buffer);
MEM_freeN(lod.triangle_index_buffer);
-#else
- modifier_setError(md, "Modifier not working yet in 2.5.");
- goto exit;
-#endif
exit:
return result;
@@ -6390,12 +6378,6 @@ static CustomDataMask booleanModifier_requiredDataMask(Object *ob, ModifierData
dataMask |= (1 << CD_MDEFORMVERT);
- /* particles only need this if they are after a non deform modifier, and
- * the modifier stack will only create them in that case. */
-// dataMask |= CD_MASK_ORIGSPACE;
-
-// dataMask |= CD_MASK_ORCO;
-
return dataMask;
}
@@ -7866,17 +7848,17 @@ static void meshdeformModifier_do(
float (*vertexCos)[3], int numVerts)
{
MeshDeformModifierData *mmd = (MeshDeformModifierData*) md;
- Mesh *me= ob->data;
+ Mesh *me= (mmd->object)? mmd->object->data: NULL;
+ EditMesh *em = (me)? BKE_mesh_get_editmesh(me): NULL;
DerivedMesh *tmpdm, *cagedm;
MDeformVert *dvert = NULL;
MDeformWeight *dw;
- EditMesh *em = BKE_mesh_get_editmesh(me);
MVert *cagemvert;
float imat[4][4], cagemat[4][4], iobmat[4][4], icagemat[3][3], cmat[4][4];
float weight, totweight, fac, co[3], *weights, (*dco)[3], (*bindcos)[3];
int a, b, totvert, totcagevert, defgrp_index;
- if(!mmd->object || (!mmd->bindcos && !mmd->needbind))
+ if(!mmd->object || (!mmd->bindcos && !mmd->bindfunc))
return;
/* get cage derivedmesh */
@@ -7914,7 +7896,7 @@ static void meshdeformModifier_do(
/* progress bar redraw can make this recursive .. */
if(!recursive) {
recursive = 1;
- //XXX harmonic_coordinates_bind(mmd, vertexCos, numVerts, cagemat);
+ mmd->bindfunc(md->scene, mmd, (float*)vertexCos, numVerts, cagemat);
recursive = 0;
}
}
diff --git a/source/blender/editors/armature/meshlaplacian.c b/source/blender/editors/armature/meshlaplacian.c
index 82843a49851..9847bdc3283 100644
--- a/source/blender/editors/armature/meshlaplacian.c
+++ b/source/blender/editors/armature/meshlaplacian.c
@@ -69,7 +69,7 @@ static void waitcursor(int val) {}
static void progress_bar() {}
static void start_progress_bar() {}
static void end_progress_bar() {}
-static void error() {}
+static void error(char *str) { printf("error: %s\n", str); }
/* ************* XXX *************** */
@@ -1698,7 +1698,7 @@ static void meshdeform_matrix_solve(MeshDeformBind *mdb)
nlDeleteContext(context);
}
-void harmonic_coordinates_bind(Scene *scene, MeshDeformModifierData *mmd, float (*vertexcos)[3], int totvert, float cagemat[][4])
+void harmonic_coordinates_bind(Scene *scene, MeshDeformModifierData *mmd, float *vertexcos, int totvert, float cagemat[][4])
{
MeshDeformBind mdb;
MDefBindInfluence *inf;
@@ -1714,7 +1714,7 @@ void harmonic_coordinates_bind(Scene *scene, MeshDeformModifierData *mmd, float
memset(&mdb, 0, sizeof(MeshDeformBind));
/* get mesh and cage mesh */
- mdb.vertexcos= vertexcos;
+ mdb.vertexcos= (float(*)[3])vertexcos;
mdb.totvert= totvert;
mdb.cagedm= mesh_create_derived_no_deform(scene, mmd->object, NULL, CD_MASK_BAREMESH);
diff --git a/source/blender/editors/armature/meshlaplacian.h b/source/blender/editors/armature/meshlaplacian.h
index 00c0aefaec7..1ee01561cd4 100644
--- a/source/blender/editors/armature/meshlaplacian.h
+++ b/source/blender/editors/armature/meshlaplacian.h
@@ -79,7 +79,7 @@ void rigid_deform_end(int cancel);
/* Harmonic Coordinates */
void harmonic_coordinates_bind(struct Scene *scene, struct MeshDeformModifierData *mmd,
- float (*vertexcos)[3], int totvert, float cagemat[][4]);
+ float *vertexcos, int totvert, float cagemat[][4]);
#endif
diff --git a/source/blender/editors/include/ED_armature.h b/source/blender/editors/include/ED_armature.h
index 4898f70201e..5cc35d4ad77 100644
--- a/source/blender/editors/include/ED_armature.h
+++ b/source/blender/editors/include/ED_armature.h
@@ -42,6 +42,7 @@ struct ViewContext;
struct RegionView3D;
struct SK_Sketch;
struct IDProperty;
+struct MeshDeformModifierData;
typedef struct EditBone
{
@@ -162,6 +163,10 @@ char * BIF_nameBoneTemplate(const struct bContext *C);
void BDR_drawSketch(const struct bContext *vc);
int BDR_drawSketchNames(struct ViewContext *vc);
+/* meshlaplacian.c */
+void harmonic_coordinates_bind(struct Scene *scene, struct MeshDeformModifierData *mmd,
+ float *vertexcos, int totvert, float cagemat[][4]);
+
#endif /* ED_ARMATURE_H */
diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c
index 1b0dc95480a..0683cb6842f 100644
--- a/source/blender/editors/object/object_modifier.c
+++ b/source/blender/editors/object/object_modifier.c
@@ -65,6 +65,7 @@
#include "RNA_define.h"
#include "RNA_enum_types.h"
+#include "ED_armature.h"
#include "ED_screen.h"
#include "WM_api.h"
@@ -779,7 +780,7 @@ static int meshdeform_bind_exec(bContext *C, wmOperator *op)
int mode= mmd->modifier.mode;
/* force modifier to run, it will call binding routine */
- mmd->needbind= 1;
+ mmd->bindfunc= harmonic_coordinates_bind;
mmd->modifier.mode |= eModifierMode_Realtime;
if(ob->type == OB_MESH) {
@@ -796,7 +797,7 @@ static int meshdeform_bind_exec(bContext *C, wmOperator *op)
makeDispListCurveTypes(scene, ob, 0);
}
- mmd->needbind= 0;
+ mmd->bindfunc= NULL;
mmd->modifier.mode= mode;
}
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h
index db1c261556b..fe6a5b050e3 100644
--- a/source/blender/makesdna/DNA_modifier_types.h
+++ b/source/blender/makesdna/DNA_modifier_types.h
@@ -508,8 +508,7 @@ typedef struct MeshDeformModifierData {
struct Object *object; /* mesh object */
char defgrp_name[32]; /* optional vertexgroup name */
- short gridsize, needbind;
- short flag, pad;
+ short gridsize, flag, pad[2];
/* variables filled in when bound */
float *bindweights, *bindcos; /* computed binding weights */
@@ -522,6 +521,10 @@ typedef struct MeshDeformModifierData {
float dyncellmin[3]; /* offset of the dynamic bind grid */
float dyncellwidth; /* width of dynamic bind cell */
float bindmat[4][4]; /* matrix of cage at binding time */
+
+ /* runtime */
+ void (*bindfunc)(struct Scene *scene, struct MeshDeformModifierData *mmd,
+ float *vertexcos, int totvert, float cagemat[][4]);
} MeshDeformModifierData;
typedef enum {
diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c
index f2648503003..93972894ef1 100644
--- a/source/blender/makesrna/intern/rna_modifier.c
+++ b/source/blender/makesrna/intern/rna_modifier.c
@@ -795,7 +795,7 @@ static void rna_def_modifier_wave(BlenderRNA *brna)
prop= RNA_def_property(srna, "start_position_object", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "objectcenter");
RNA_def_property_ui_text(prop, "Start Position Object", "");
- RNA_def_property_flag(prop, PROP_EDITABLE);
+ RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
prop= RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
@@ -824,7 +824,7 @@ static void rna_def_modifier_wave(BlenderRNA *brna)
prop= RNA_def_property(srna, "texture_coordinates_object", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "map_object");
RNA_def_property_ui_text(prop, "Texture Coordinates Object", "");
- RNA_def_property_flag(prop, PROP_EDITABLE);
+ RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
prop= RNA_def_property(srna, "speed", PROP_FLOAT, PROP_NONE);
@@ -1196,7 +1196,7 @@ static void rna_def_modifier_displace(BlenderRNA *brna)
prop= RNA_def_property(srna, "texture_coordinate_object", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "map_object");
RNA_def_property_ui_text(prop, "Texture Coordinate Object", "");
- RNA_def_property_flag(prop, PROP_EDITABLE);
+ RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
}
@@ -1257,7 +1257,7 @@ static void rna_def_modifier_uvproject(BlenderRNA *brna)
prop= RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE);
RNA_def_property_struct_type(prop, "Object");
RNA_def_property_pointer_funcs(prop, "rna_UVProjector_object_get", "rna_UVProjector_object_set", NULL);
- RNA_def_property_flag(prop, PROP_EDITABLE);
+ RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
RNA_def_property_ui_text(prop, "Object", "Object to use as projector transform.");
}
@@ -1330,7 +1330,7 @@ static void rna_def_modifier_cast(BlenderRNA *brna)
prop= RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE);
RNA_def_property_ui_text(prop, "Object", "Control object: if available, its location determines the center of the effect");
RNA_def_property_pointer_funcs(prop, NULL, "rna_CastModifier_object_set", NULL);
- RNA_def_property_flag(prop, PROP_EDITABLE);
+ RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
prop= RNA_def_property(srna, "x", PROP_BOOLEAN, PROP_NONE);
@@ -1397,7 +1397,7 @@ static void rna_def_modifier_meshdeform(BlenderRNA *brna)
prop= RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE);
RNA_def_property_ui_text(prop, "Object", "Mesh object to deform with.");
RNA_def_property_pointer_funcs(prop, NULL, "rna_MeshDeformModifier_object_set", NULL);
- RNA_def_property_flag(prop, PROP_EDITABLE);
+ RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
prop= RNA_def_property(srna, "is_bound", PROP_BOOLEAN, PROP_NONE);
@@ -1459,7 +1459,7 @@ static void rna_def_modifier_particleinstance(BlenderRNA *brna)
prop= RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "ob");
RNA_def_property_ui_text(prop, "Object", "Object that has the particle system.");
- RNA_def_property_flag(prop, PROP_EDITABLE);
+ RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
prop= RNA_def_property(srna, "particle_system_number", PROP_INT, PROP_NONE);
@@ -1723,14 +1723,14 @@ static void rna_def_modifier_shrinkwrap(BlenderRNA *brna)
prop= RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE);
RNA_def_property_ui_text(prop, "Target", "Mesh target to shrink to.");
RNA_def_property_pointer_funcs(prop, NULL, "rna_ShrinkwrapModifier_target_set", NULL);
- RNA_def_property_flag(prop, PROP_EDITABLE);
+ RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
prop= RNA_def_property(srna, "auxiliary_target", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "auxTarget");
RNA_def_property_ui_text(prop, "Auxiliary Target", "Additional mesh target to shrink to.");
RNA_def_property_pointer_funcs(prop, NULL, "rna_ShrinkwrapModifier_auxiliary_target_set", NULL);
- RNA_def_property_flag(prop, PROP_EDITABLE);
+ RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
prop= RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
@@ -1834,7 +1834,7 @@ static void rna_def_modifier_mask(BlenderRNA *brna)
RNA_def_property_pointer_sdna(prop, NULL, "ob_arm");
RNA_def_property_ui_text(prop, "Armature", "Armature to use as source of bones to mask.");
RNA_def_property_pointer_funcs(prop, NULL, "rna_MaskModifier_armature_set", NULL);
- RNA_def_property_flag(prop, PROP_EDITABLE);
+ RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
prop= RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
@@ -1879,7 +1879,7 @@ static void rna_def_modifier_simpledeform(BlenderRNA *brna)
prop= RNA_def_property(srna, "origin", PROP_POINTER, PROP_NONE);
RNA_def_property_ui_text(prop, "Origin", "Origin of modifier space coordinates.");
- RNA_def_property_flag(prop, PROP_EDITABLE);
+ RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
prop= RNA_def_property(srna, "relative", PROP_BOOLEAN, PROP_NONE);
diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt
index 61c0fe187fd..a11e83c9312 100644
--- a/source/creator/CMakeLists.txt
+++ b/source/creator/CMakeLists.txt
@@ -380,6 +380,7 @@ IF(UNIX)
bf_dds
bf_readblenfile
bf_collada
+ blender_BSP
blender_bop
bf_kernel
bf_decimation