# How to rotate tangents

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 11/12/2002 at 09:26, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   8.012
Platform:   Windows  ;
Language(s) :     C++  ;

---------
Hi,
how can I rotate the tangents of a bezier spline? I don´t know how to handle the tangent[x].vl and .vr vectors. In cinema it´s definetly easier ;)
Thanks
Samir

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 11/12/2002 at 09:50, xxxxxxxx wrote:

Just treat them as ordinary vectors in object space. How exactly do you want to rotate them?

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 11/12/2002 at 09:56, xxxxxxxx wrote:

well, I am calculating a rotationvector from a splinetangent with:

``````

Vector rot = obj->GetSplineTangent(obj->UniformTonatural(x*(lenght/4)/length),0);
``````

Now I want to rotate the tangents with this rotationvector.
I tried this with

``````

objt[0].vl *= rot;
objt[0].vr *= rot;
``````

but that doesn´t work.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 11/12/2002 at 11:08, xxxxxxxx wrote:

Use ^= since vl and vr are vectors not points. And I see no rotation matrix, just a rotation vector. (vector * vector = dot product) Use RotAxisToMatrix() before multiplying.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 12/12/2002 at 08:34, xxxxxxxx wrote:

thanks I will try that. And another question without the need to open a new thread.
I have a LINK Description for my plugintag, but how to retrieve the dropped object?
Thanks
Samir

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 12/12/2002 at 08:52, xxxxxxxx wrote:

or of a string field from a STRING description.
String str = data->GetString(ID); or
String str; data->GetString(ID,str);
do both not work.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 12/12/2002 at 10:10, xxxxxxxx wrote:

I tried this but it doesn´t seem to work either. In the doc example there is a t_data instead of my data, but I have no clue what it is good for. Help please...
Bool DPTransfer::Message(GeListNode *node,LONG type,void *data)
{

if (type == MSG_DESCRIPTION_CHECKDRAGANDDROP)
{
DescriptionCheckDragAndDrop *dcu = static_cast<DescriptionCheckDragAndDrop*>( data ); //t_data??
switch (dcu->id[0].id)
{
case DPT_BASE_FOUND:
dragged = (BaseObject* )dcu->element;
return TRUE;
}
}
return TRUE;
}

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 12/12/2002 at 10:24, xxxxxxxx wrote:

ok sorted it. It works exactly like that. Only my fault. :)
Thanks anyway for looking. g*

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 02/05/2005 at 06:25, xxxxxxxx wrote:

Hi All,
Works for me to sofar, but here you check for a object hoovering above the Link. It can be used to accept or refuse the hoovering object.
Now, how do i find out when the object is finally dropped.
There seem to be no message for that.
Thanks

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 03/05/2005 at 02:15, xxxxxxxx wrote:

Wouldn't that be an ordinary SetDParameter() call?

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 03/05/2005 at 11:21, xxxxxxxx wrote:

Hi Mikael,
Thanks for your answer but a GePrint("Bingo")  does not appear in my console with the SetDParameter() call.
A lot of Bingo's in the tags Message function, listening to MSG_DESCRIPTION_CHECKDRAGANDDROP on hoovering.
(i have a Description res Linkbox, its for the AM)
What am i doing wrong?
Thanks,