bf-blender / Windows (2005/03/18)

User-contributed CVS development builds. Please test and give feedback!

Moderators: jesterKing, stiv

gabio
Posts: 0
Joined: Thu Jan 15, 2004 6:41 am
Location: Canada - Québec - Sherbrooke
Contact:

bf-blender / Windows (2005/03/18)

Post by gabio » Fri Mar 18, 2005 6:09 am

Hi all, new build because I was so excited to see something new. No time for more, gonna do the others later. Now you can see widget in there. for some of you this may be good and maybe not... dunno. The new addition about axe selecting with the little gray line is nice. make sure to test everything out, give it a good try.
OpenEXR has been removed for the moment. Need more work to be commited back in.
Also take note the planar constraint is now enabled by shift now instead of alt.

For more info on new tranform: http://wiki.blender.org/bin/view.pl/Ble ... efactoring
Done with MSVC 7 and scons!
------------------------------------
relevant feature:
-new python stuff.
-bugfixes (2324, 2320)
-divers work on transform, basically get back old feature to work again.
-Made framework for 3d Transform Manipulators (widgets).
**Implemented now: Translation Widget

Commit:
-pidhash
Log:
added getDupliVerts and setDupliVerts methods

-ton
Log:
Bug fix as reported by Fish-Face/Chris Le Sueur on IRC

After deleting an object, the call free_and_unlink_base() takes care of
NULLifying object pointers. But, with exception of constraints. Silly!!!

So, in the end of a function additionally the test_scene_constraints()
has to be called to prevent crashes. This was missing in join_mesh and
convert_object.

-pidhash
Log:
doc about set/getDupliVerts method

-theeth
Log:
NumInput is now applied correctly to constraints and prints correctly in the header.

What that means is that you can grab/resize an object, press Xkey, type 2 (to resize/move by 2 on the x axis) and then press Ykey and the numeric value will be applied to the transformation on the Y axis.

Fixed a small glitch where constraint center wasn't readjusted for edit mode when using MMB (graphical bug only).

Log:
Local axis with multiple objects wasn't working for Scaling.

Also, splitted of Translation's applying loop (for eventually macro interface).

Log:
Made warp use TransData members instead of G.obedit. Made it work with PET and Objects at the same time.

-stiv
Log:
A little editing on the doc for the newest member of our Bpy module familily: Text3d.

-ton
Log:
Transform:

Camera grab from camera mode works, but not the middlemouse-toggle, that
has to become a new "Dolly" constraint coded by Martin P! :)

-theeth
Log:
Fixed edit mode armature bug reported by Gabio (transdata conversion wasn't setting data center correctly).

Brought back Shrink/Fatten. Changed the behavior a bit, move the cursor to the right to move toward the normal, to the left to move backward. Please comment.
Only works with meshes, defaults to resize otherwise.

Log:
New AFFECTALL flag for numinput
When that flag is set, numbers typed when the cursor is on the first position will affect all positions who do not currently have something typed for them.

Enabled Skey, 2, Enter to quickly double the size of something.

All modesty asside, it's coded rather smartly so it shows the cursor in every position that it will affect and lets you tab in undefined position to type in values there.

Thanks to Samadam for reminding me that the old code permitted that.

-ton
Log:
Transform: brought back axis constraint default after extruding. When
choosing 'individual faces' it uses the ShrinkFatten option.

Note for Martin: center of axis is still wrong, but you know!
Note for non-testers: unfortunately axis constrainting for old
transform now doesn't work anymore. New code is much nicer, I dont restore
hacks!

-sirdude
Log:
This commit reverses the OpenEXR specific stuff in the OpenEXR commit I
did last friday. A patch will be available in the patches tracker
that will have the current stuff there until everything is working.

Kent

-ton
Log:
Bugfix #2324

Somehow, not proven how, edges can be selected in a mesh, and not faces or
vertices. When entering editmode these selection flags are checked too.

-theeth
Log:
Matrix multiplcations for Multiple Object local constraints for Resize was done backward. Didn't show in my test case because they were too crude. Fixed now. (in essence, resize with multiple selected objects and local constraint was not good)

-ton
Log:
Bug fix #2320

Silly 2.36 bug! In FaceSelect mode, other solid objects didn't show. Bad!

Additional; when using Halo material, and setting 'X Alpha', and disabling
Halo option, the 'Only Shadow' option turned on... uses same bit...
No time for real fix here, so for now the bit is always cleared after
disabling Halo.

-theeth
Log:
Optimising transformations in PET mode.

Sorting elements in TransData array according to their distance. That means we can always stop loops when it finds the first element that doesn't apply. That makes PET factor calculation and actual transformations faster since it stops at the first element outside of the area.

The Sorting algo is a no swap version of quicksort using the start of each subset as the pivot (random would be better and easy to implement. Need 3 additional lines of code really).

Log:
Fixed constraint center calculation. Much smarter to do it when calculating transformation center...

Fixed Extrude constraint. Needed to premul the normal by the object's matrix to but it in global space.

Also, moved the Locking Axis modifier (for constraints) from Alt to Shift. Alt was conflicting with middle mouse button emulation (reported in the test builds forum).

Tilt Transformation.

Log:
Trying a little something with the MMB behavior.

Constraint selection is now based on mouse motion (instead of pointer position).

What that means is that if you simply click MMB, it works exactly like it did with old transform (in 90% of the case, the last 10% is when MMB click was unpredictable in old transform because of extreme viewport orientation)

Also, since this means you don't really have a referential on which to base yourself, it draws a dashed line representing the mouse motion, starting at the center of the axis lines.

Please test and discuss, if this is better than before or not.

-ton
Log:
Ack, typo in previous commit, bugfix for confusing edge selection. Passed
a face pointer to edge function... tsk tsk!

-theeth
Log:
Needed to normalise the axis orientation matrix.
This fixed the scaling bug intrr and LetterRip reported.

-pidhash
Log:
fixed example of use the GetScreenInfo

-ton
Log:
So! Finally a show-off of the *power* of Martin P's work! :)

- Made framework for 3d Transform Manipulators (widgets)
- The Manipulators act like '2d buttons', by default with LeftMouse and with
while-hold-move-release
- Implemented now: Translation Widget, which allows:
- four hotspots for axis grab or view-aligned grab
- center defined by 'around' setting
- SHIFT+LMB gives planar constraint on other 2 axes
- works in Object mode and Edit mode (not posemode yet)

Enable it with (temporal) icon in 3D header. All other 'normal' transforms
then keeps working btw.

On the todo for this widget:
- choice for Global, Local or Normal orientation

The way the widgets are going to work is in review still. Commit is also for
Matt for his proposal/paper on topic.
Some notes regarding this project;

- no life updates (on mouse over) like 3DS, I think that's neurotic
- on click, dominant axis changes to theme defined "Transform" color, other axes disappear, like maya
- manipulater size is fixed preset, independent zoom.
- manipulator follows selection, and is located based on 'around' mode

Unresolved;

- in maya, when you select 2 or more objects, the manipulator draws on the 'active' object, also interesting
- what to do with G,R,S hotkeys? It could switch the manipulator "mode"...
- header button/menu for manipulator mode?
------------------------------------
a new build is available
Last edited by gabio on Mon Mar 21, 2005 3:31 am, edited 1 time in total.

HiNMity
Posts: 3
Joined: Thu Oct 17, 2002 11:01 pm
Contact:

Post by HiNMity » Fri Mar 18, 2005 9:05 am

Very cool stuff.

First, in object mode, i thought the dashed line representing the mouse motion was too thin but being in edit mode it was very clear and not in the way. Perhaps there could be some visual tweaks too it but it works good for now.

Can i change the proportion falloff distance while transforming using the widgets?

Bellorum
Posts: 0
Joined: Wed Jan 21, 2004 3:27 pm

Post by Bellorum » Fri Mar 18, 2005 9:23 am

Excellence! :D Works like a charm. Planar constraints are hot!
There's no such thing as democracy. There's only the tyranny of one, and the tyranny of many.

JoOngle
Posts: 0
Joined: Sat Jan 24, 2004 4:12 pm
Contact:

Post by JoOngle » Fri Mar 18, 2005 9:38 am

The new translator is really useful - but it does take some time getting
used to.

Personally I think it´d rock if we could "paint" extrudes along an axis,
you know...just like drawing a line and the extrudes follows every "set" snap?

(Fantastic work by the way!)

/T

leander
Posts: 0
Joined: Wed Oct 13, 2004 11:18 am

Post by leander » Fri Mar 18, 2005 10:57 am

AWESOME!!!!!!!!!!!!!!!!

GOOD WORK with the implementation of widgets, i love it!!!

Thanks!!!!!!!

iaminnocent
Posts: 0
Joined: Tue Jun 08, 2004 4:06 am

Post by iaminnocent » Fri Mar 18, 2005 11:35 am

The widget that sticks to the transformation center of the moment is a great addition to this new head's up display system.

The dotted line is a good idea indicator in cases when the pointer is far away from the origin. Nevertheless it is not always visible when the screen is busy with objects or a complex mesh : maybe it should be of a different color than objects under transformation. Also it does not always point toward the mouse pointer which means that the transformation axis change will occur when the mouse is actually much closer to another axis on the screen sometimes. I guess that it can be fixed since closeness of the pointer to an axis works fine in the (older) version of Tuhopuu3 I have here.

Great work all in all, I can't say enough how much I appreciate the "head's up" aspect of it : this accelerates the workflow so much. The keyboard shortcuts are nice but the keyboard itself is so big that one has to look at it quite often for the left hand to quickly find the right key ; some multiple keys shortcuts forces the user to have both hands on the keyboard or practice finger yoga positions...

:D

Jean

crsrma
Posts: 0
Joined: Tue Mar 30, 2004 3:47 pm

Post by crsrma » Fri Mar 18, 2005 2:14 pm

The GRS switches for the transform widget is a fine idea. The whole system makes the new transform stuff much more understandable with those visual cues, even better that it's interactive.

The shrink/flatten feature seems good, the old way was a little too sensitive & would occasionally result in extremely inverted/exploded polys. It doesn't seem to be working on newly extruded verts/edges/faces - may just be a habit of mine - that have been created but not transformed. Is this somehow related to something else, like how extrusion is handled now..? Sorry if I'm missing something, that was quite a log.

Very nice work as usual, ever'body.

Bellorum
Posts: 0
Joined: Wed Jan 21, 2004 3:27 pm

Post by Bellorum » Fri Mar 18, 2005 3:10 pm

Ok. About consistency. I know that some people have problems with clickdragging. But why is it that when I direct click and drag a vertex, I have to click twice to make a move, whereas when i use the manipulator, I just click drag and release to get the vertex where I want it? What I'm trying to say is - PLEASE bring back the original tweaking functionality. I'm not so sure my fingers are less strained from having to click twice as many times as necessary:/
There's no such thing as democracy. There's only the tyranny of one, and the tyranny of many.

theeth
Posts: 500
Joined: Wed Oct 16, 2002 5:47 am
Location: Montreal
Contact:

Post by theeth » Fri Mar 18, 2005 4:12 pm

iaminnocent wrote:The dotted line is a good idea indicator in cases when the pointer is far away from the origin. Nevertheless it is not always visible when the screen is busy with objects or a complex mesh : maybe it should be of a different color than objects under transformation. Also it does not always point toward the mouse pointer which means that the transformation axis change will occur when the mouse is actually much closer to another axis on the screen sometimes. I guess that it can be fixed since closeness of the pointer to an axis works fine in the (older) version of Tuhopuu3 I have here.
Just a little followup on this.
It is no longer the pointer position that is used to select the axis but the pointer motion. Just like the pointer motion moves the object, not the pointer position.
The dashed line (color and dashedness under study) represents that motion, so you don't have to worry about where the pointer is just its motion that will reflect on the line.

Martin
Life is what happens to you when you're busy making other plans.
- John Lennon

-efbie-
Posts: 0
Joined: Wed Oct 27, 2004 9:47 pm

Post by -efbie- » Fri Mar 18, 2005 5:05 pm

thank you very much for the new transform method, it works really well :) (Even beter than the old one)
the 3D manipulator is nice too :) Maybe a little rollover highlight would be nice

crsrma
Posts: 0
Joined: Tue Mar 30, 2004 3:47 pm

Post by crsrma » Fri Mar 18, 2005 5:07 pm

Bellorum wrote:Ok. About consistency. I know that some people have problems with clickdragging. But why is it that when I direct click and drag a vertex, I have to click twice to make a move, whereas when i use the manipulator, I just click drag and release to get the vertex where I want it? What I'm trying to say is - PLEASE bring back the original tweaking functionality. I'm not so sure my fingers are less strained from having to click twice as many times as necessary:/
Why not just get rid of the mouse gesture functionality? That would quite gracefully resolve any further unrest. It's a very unique feature but how many different ways are needed to do the same thing?

I'm not being arch here, really. Seems viable, there'd be quite enough redundancy in the system with the widget & keyboard commands. That is, if the widget development goes as I hope. It looks like it'll closely mimic the nature of mouse gestures, minus having to pray you made the proper incantation with your mousing.

It's probably obvious that I'm slightly concerned about feature bloat, there's almost too much development here. :)

Bellorum
Posts: 0
Joined: Wed Jan 21, 2004 3:27 pm

Post by Bellorum » Fri Mar 18, 2005 6:42 pm

Why not just get rid of the mouse gesture functionality? That would quite gracefully resolve any further unrest. It's a very unique feature but how many different ways are needed to do the same thing?

I'm not being arch here, really. Seems viable, there'd be quite enough redundancy in the system with the widget & keyboard commands. That is, if the widget development goes as I hope. It looks like it'll closely mimic the nature of mouse gestures, minus having to pray you made the proper incantation with your mousing.
But I'm not talking about mouse gestures. I'm talking about grabbing and moving, without the extra steps. If we're gonna have a "tweak" feature, it should be faster than the usual transform=less clicking and shortcuts.
There's no such thing as democracy. There's only the tyranny of one, and the tyranny of many.

iaminnocent
Posts: 0
Joined: Tue Jun 08, 2004 4:06 am

Post by iaminnocent » Fri Mar 18, 2005 7:31 pm

theeth wrote: Just a little followup on this.
It is no longer the pointer position that is used to select the axis but the pointer motion. Just like the pointer motion moves the object, not the pointer position.
The dashed line (color and dashedness under study) represents that motion, so you don't have to worry about where the pointer is just its motion that will reflect on the line.
Martin
Ya, true : I didn't remember that point when I was trying it. :oops:
Then it works in a fairly predictable manner when in ortho views ; in perspective, where I model the most, the feedback of the dotted line is essential, other wise I don't know how, sometimes, I'd figure out in what direction, relative to the 3D space, my mouse pointer is moving. I don't know how but I easily find my way using the motion line.


Jean

Zsolt
Posts: 4
Joined: Thu Oct 17, 2002 9:39 pm

Post by Zsolt » Fri Mar 18, 2005 9:29 pm

Finally! The widget is great, thanks for that!
However, it's weird that it changes colour to gray when G/R/S is pressed. The axis, or the plane that the motion is constrained to should be shown on the widget. IE: pressing G, then MMB, and moving alon eg. the X axis should work the same way as simply clicking on the widget's red arrow.
Also, I am in favour of placing options for the transform on the header. One of the most needed/used functionalities of any 3D program is the transforms. They should be visible on the header (for switching manipulator mode, and for selecting coordinate systems)

Blendorphin
Posts: 0
Joined: Sat Nov 15, 2003 12:21 am

Post by Blendorphin » Fri Mar 18, 2005 10:50 pm

ton wrote: - what to do with G,R,S hotkeys? It could switch the manipulator "mode"...
- header button/menu for manipulator mode?
I think the hotkeys definitely should change the "mode" of the manipulator.

Also, if the mode buttons are shown in the header, it should be done like the vertex/edge/face mode selector - you can select one, or you can select multiples. That way, you could have the translate, resize, and rotation widgets all visible at once. This would be very flexible, just like the select mode in edit mode (of course the widgets would have to be designed that they could be overlayed on top of eachother without too much clutter).

ideas on this?

Post Reply