diff options
author | Jiri Hnidek <jiri.hnidek@tul.cz> | 2006-08-20 19:22:56 +0400 |
---|---|---|
committer | Jiri Hnidek <jiri.hnidek@tul.cz> | 2006-08-20 19:22:56 +0400 |
commit | 2ee42ac01e6f4b154ac68976024af0615f7acb26 (patch) | |
tree | 9a2400a99bf7880a2f146c7a89bd2d8c0108374c /source/blender/src/transform_generics.c | |
parent | ffe630b452f4abb28c105fca2b8eb9fdb6e72370 (diff) |
Huge commit: VERSE
- All code is in #ifdef ... #endif
- Only make build system is supported and you have to add:
export WITH_VERSE=true
to user-def.mk file
- Blender can share only mesh objects and bitmaps now
- More informations can be found at wiki:
http://mediawiki.blender.org/index.php/BlenderDev/VerseIntegrationToBlender
http://mediawiki.blender.org/index.php/BlenderDev/VerseIntegrationToBlenderUserDoc
I hope, that I didn't forget at anything
Diffstat (limited to 'source/blender/src/transform_generics.c')
-rwxr-xr-x | source/blender/src/transform_generics.c | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/source/blender/src/transform_generics.c b/source/blender/src/transform_generics.c index 52b2c823cc8..71ce2ff7f84 100755 --- a/source/blender/src/transform_generics.c +++ b/source/blender/src/transform_generics.c @@ -59,6 +59,10 @@ #include "BIF_editsima.h" #include "BIF_meshtools.h" +#ifdef WITH_VERSE +#include "BIF_verse.h" +#endif + #include "BKE_action.h" #include "BKE_anim.h" #include "BKE_armature.h" @@ -74,6 +78,10 @@ #include "BKE_object.h" #include "BKE_utildefines.h" +#ifdef WITH_VERSE +#include "BKE_verse.h" +#endif + #include "BSE_view.h" #include "BDR_unwrapper.h" @@ -202,6 +210,9 @@ static void editmesh_apply_to_mirror(TransInfo *t) void recalcData(TransInfo *t) { Base *base; +#ifdef WITH_VERSE + struct TransData *td; +#endif if (G.obedit) { if (G.obedit->type == OB_MESH) { @@ -334,6 +345,17 @@ void recalcData(TransInfo *t) } } } + +#ifdef WITH_VERSE + for (td = t->data; td < t->data + t->total; td++) { + if(td->flag & TD_VERSE_VERT) { + if(td->verse) + send_versevert_pos((VerseVert*)td->verse); + } + else if(td->flag & TD_VERSE_OBJECT) + if(td->verse) b_verse_send_transformation((Object*)td->verse); + } +#endif /* update shaded drawmode while transform */ if(t->spacetype==SPACE_VIEW3D && G.vd->drawtype == OB_SHADED) @@ -463,6 +485,25 @@ void initTrans (TransInfo *t) void postTrans (TransInfo *t) { G.moving = 0; // Set moving flag off (display as usual) +#ifdef WITH_VERSE + struct TransData *td; + + for (td = t->data; td < t->data + t->total; td++) { + if(td->flag & TD_VERSE_VERT) { + if(td->verse) send_versevert_pos((VerseVert*)td->verse); + } + else if(td->flag & TD_VERSE_OBJECT) { + if(td->verse) { + struct VNode *vnode; + vnode = (VNode*)((Object*)td->verse)->vnode; + ((VObjectData*)vnode->data)->flag |= POS_SEND_READY; + ((VObjectData*)vnode->data)->flag |= ROT_SEND_READY; + ((VObjectData*)vnode->data)->flag |= SCALE_SEND_READY; + b_verse_send_transformation((Object*)td->verse); + } + } + } +#endif stopConstraint(t); @@ -619,6 +660,25 @@ void restoreTransObjects(TransInfo *t) for (td = t->data; td < t->data + t->total; td++) { restoreElement(td); +#ifdef WITH_VERSE + /* position of vertexes and object transformation matrix is sent + * extra, becuase blender uses synchronous sending of vertexes + * position as well object trans. matrix and it isn't possible to + * send it in recalcData sometimes */ + if(td->flag & TD_VERSE_VERT) { + if(td->verse) { + ((VerseVert*)td->verse)->flag |= VERT_POS_OBSOLETE; + } + } + else if(td->flag & TD_VERSE_OBJECT) + if(td->verse) { + struct VNode *vnode; + vnode = (VNode*)((Object*)td->verse)->vnode; + ((VObjectData*)vnode->data)->flag |= POS_SEND_READY; + ((VObjectData*)vnode->data)->flag |= ROT_SEND_READY; + ((VObjectData*)vnode->data)->flag |= SCALE_SEND_READY; + } +#endif } recalcData(t); } |