Lot of code... 2 new features:
1) Curve deform http://www.blender3d.org/cms/Curve_Deform.392.0.html Works simple as expected, but keep track of the rotation axis in F7 buttons (Track X Y Z) Only Mesh deform supported now. Code changes: - centralized deformation calls in curve_modifiers() mesh_modifiers() etcetera. Here also other effects can be added like wave. Now the evaluation order is fixed, but should become optional. It also doesnt use the Displist anymore as deform-input. That latter part is unfinished yet. This code also is used for Hooks and will be needed for softbody - made convention stricter that displists are being checked on in drawobject(), this to prevent routines to make new displists recursively (like armature does). Now a freedisplist() is sufficient to signal that a new displaylist should be made. 2) Object Hooks http://www.blender3d.org/cms/Object_Hooks.391.0.html Support for Hooks is added to Mesh, Lattice, Curve and Surface objects. For Armatures this would require some more work & research. Main goal for this feature is to provide quick & simple access to the underlying geometry in Objects on Object level, supporting hierarchies and Ipos etc.
This commit is contained in:
@@ -1127,7 +1127,9 @@ void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
case HKEY:
|
||||
if(G.obedit) {
|
||||
if(G.obedit->type==OB_MESH) {
|
||||
if(G.qual==LR_ALTKEY)
|
||||
if(G.qual==LR_CTRLKEY)
|
||||
add_hook();
|
||||
else if(G.qual==LR_ALTKEY)
|
||||
reveal_mesh();
|
||||
else if((G.qual==LR_SHIFTKEY))
|
||||
hide_mesh(1);
|
||||
@@ -1135,7 +1137,9 @@ void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
hide_mesh(0);
|
||||
}
|
||||
else if(G.obedit->type== OB_SURF) {
|
||||
if(G.qual==LR_ALTKEY)
|
||||
if(G.qual==LR_CTRLKEY)
|
||||
add_hook();
|
||||
else if(G.qual==LR_ALTKEY)
|
||||
revealNurb();
|
||||
else if((G.qual==LR_SHIFTKEY))
|
||||
hideNurb(1);
|
||||
@@ -1143,17 +1147,24 @@ void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
||||
hideNurb(0);
|
||||
}
|
||||
else if(G.obedit->type==OB_CURVE) {
|
||||
undo_push_curve("Handle change");
|
||||
if(G.qual==LR_CTRLKEY)
|
||||
autocalchandlesNurb_all(1); /* flag=1, selected */
|
||||
else if((G.qual==LR_SHIFTKEY))
|
||||
sethandlesNurb(1);
|
||||
else if((G.qual==0))
|
||||
sethandlesNurb(3);
|
||||
|
||||
makeDispList(G.obedit);
|
||||
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
add_hook();
|
||||
else {
|
||||
undo_push_curve("Handle change");
|
||||
if(G.qual==LR_CTRLKEY)
|
||||
autocalchandlesNurb_all(1); /* flag=1, selected */
|
||||
else if((G.qual==LR_SHIFTKEY))
|
||||
sethandlesNurb(1);
|
||||
else if((G.qual==0))
|
||||
sethandlesNurb(3);
|
||||
|
||||
makeDispList(G.obedit);
|
||||
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
}
|
||||
else if(G.obedit->type==OB_LATTICE) {
|
||||
if(G.qual==LR_CTRLKEY) add_hook();
|
||||
}
|
||||
}
|
||||
else if(G.f & G_FACESELECT)
|
||||
|
||||
Reference in New Issue
Block a user