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:
authorAndre Susano Pinto <andresusanopinto@gmail.com>2008-07-19 02:24:20 +0400
committerAndre Susano Pinto <andresusanopinto@gmail.com>2008-07-19 02:24:20 +0400
commit59a2b5017185369836678b14325666f62dba9311 (patch)
treecbb6fb4b4fb2b7fd46446eba9513b80a0f66d8f7 /source/blender/blenkernel/BKE_shrinkwrap.h
parent8d94bfec1b9f692474d74441ec92ef5d3765e8e5 (diff)
*Added "kept" mesh above surface option on shrinkwrap to nearest surface
changed a few code relative to project over normal mode (to try to kept code generic and more independent of modifier itself)
Diffstat (limited to 'source/blender/blenkernel/BKE_shrinkwrap.h')
-rw-r--r--source/blender/blenkernel/BKE_shrinkwrap.h25
1 files changed, 22 insertions, 3 deletions
diff --git a/source/blender/blenkernel/BKE_shrinkwrap.h b/source/blender/blenkernel/BKE_shrinkwrap.h
index b0a40768e8b..a512c1d57cb 100644
--- a/source/blender/blenkernel/BKE_shrinkwrap.h
+++ b/source/blender/blenkernel/BKE_shrinkwrap.h
@@ -42,7 +42,27 @@ typedef char* BitSet;
#define bitset_unset(set,index) ((set)[(index)>>3] &= ~(1 << ((index)&0x7)))
+/* SpaceTransform stuff */
+//TODO: should move to other generic space?
+struct Object;
+
+typedef struct SpaceTransform
+{
+ float local2target[4][4];
+ float target2local[4][4];
+
+} SpaceTransform;
+
+void space_transform_setup(SpaceTransform *data, struct Object *local, struct Object *target);
+void space_transform_apply (SpaceTransform *data, float *co);
+void space_transform_invert(SpaceTransform *data, float *co);
+
+void space_transform_apply_normal (SpaceTransform *data, float *co);
+void space_transform_invert_normal(SpaceTransform *data, float *co);
+
+
+/* Shrinkwrap stuff */
struct Object;
struct DerivedMesh;
struct ShrinkwrapModifierData;
@@ -59,9 +79,7 @@ typedef struct ShrinkwrapCalcData
struct DerivedMesh *target; //mesh we are shrinking to
- //matrixs for local<->target space transform
- float local2target[4][4];
- float target2local[4][4];
+ SpaceTransform local2target;
float keptDist; //Distance to kept from target (units are in local space)
//float *weights; //weights of vertexs
@@ -75,6 +93,7 @@ void shrinkwrap_calc_nearest_surface_point(ShrinkwrapCalcData *data);
struct DerivedMesh *shrinkwrapModifier_do(struct ShrinkwrapModifierData *smd, struct Object *ob, struct DerivedMesh *dm, int useRenderParams, int isFinalCalc);
+
#endif