calculation - handle move on line [SOLVED]
On 06/07/2015 at 10:25, xxxxxxxx wrote:
I like to use handle in my own object and but i struggle in the calculation. the source for the handle is a position offset from the center - now by moving the handle i like to change the position within the direction.
I found thin in the examples but don`t get the right way how transform this into my vector.
mg = op.GetUpMg()*undo.GetMl()
pos = bd.ProjectPointOnLine(info.position*mg, info.direction^mg, mouse_pos.x, mouse_pos.y)
val = (pos*~mg)*info.direction
On 09/07/2015 at 06:49, xxxxxxxx wrote:
sorry, it took so long to get to your thread.
I think, by far the nicest example is the Py-RoundedTube example. But you probably already know that.
Unfortunately I don't understand your problem. And as you only post code from the Py-SpherifyModifier example, it's a bit difficult to help. Can you please post either some code or perhaps an image of what you are trying to achieve?
On 09/07/2015 at 10:52, xxxxxxxx wrote:
it`s hard for me to describe. but i will try it.
I like to generate a Handle that give control over a position (offset from the center of the Object)
i struggle in the calculation - to the correct position by moving the handle.
A) move the handle free in 3d space and generate a ne position
b) move the handle in to extend the given direction - but this can be more than on axis -
Hope you can get my problem
On 10/07/2015 at 07:45, xxxxxxxx wrote:
I'm still not sure, I understood your request completely. In the following I assume, you are familiar with the Py-RoundedTube example and its code.
I'll describe the steps to add a free handle to this example, which delivers a Vector offset from object center.
For A) :
In function GetHandle() :
- for the new handle set info.type to c4d.HANDLECONSTRAINTTYPE_FREE
- for info.postion simply set your offset value (most likely from your offset description)
- info.direction can be set to c4d.Vector(0.0, 0.0, 0.0), it's not needed
In function SetHandle() :
Here you get the new position on handle movements. Simply store the given new position p in your object description.
In Draw() :
Actually nothing to do, assuming you want your handle drawn as a simple dot.
And that's already it.
Now, for b) : This one I still don't understand. Do you describe a second handle here? Or is it another mode for the first handle (not sure how one would achieve this)? And maybe it's a translation issue, but "move the handle in to extend direction"... I have no idea, what you mean. Sorry. I think, a screenshot with a few quick brushstrokes, showing who you want to move where, could help me. If you have problems adding such to a forum post, you could still mail it to sdk_support.
On 26/08/2015 at 09:30, xxxxxxxx wrote:
Have you been able to solve your problem?
On 26/08/2015 at 13:14, xxxxxxxx wrote: