THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 02/01/2004 at 16:59, xxxxxxxx wrote:
User Information:
Cinema 4D Version: 8..206
Platform:
Language(s) : C++ ;
---------
Hi,
I'm trying to get the amount of knots in a SPLINE control thats sitting in the attribute manager.
I need to know when the SPLINE knots have changed, so I am using the SetDParameter method to check.
The problem is that the GetKnotCount()/GetKnots() always returns the values I previously set before the current values.
The code im using is
Bool SetDParameter(GeListNode *node, const DescID &id, const GeData &t_data, LONG &flags)
{
BaseContainer* data = ((BaseObject* )node)->GetDataInstance();
GeData ctlCurve = data->GetData(MYCONTROL);
SplineData *CurveData = (SplineData* )ctlCurve.GetCustomDataType(CUSTOMDATATYPE_SPLINE);
if(CurveData)
{
GePrint("Number of Knots: " + LongToString(CurveData->GetKnotCount()));
}
return ObjectData::SetDParameter(node,id,t_data,flags);
}
Heres a step by step instruction on my problem
If I add my objectdata object to the scene, because the SPLINE control hasn't been initialized, its empty.
Clicking once in the control creates a new knot at position 1.0 on the x, console remains empty
Clicking again creates a new knot(so I have 2 now) at position 0.0 on the x, console print 1
Now I have 2 knots, but the console only prints there is 1
if I click one of the knots in the control, and move it somewhere and let go, so there still is only 2 knots, the console prints 2 like it should.
Now, if I click to create a new knot, the console prints 2 (whle there is now 3 knots)
moving the new knot slighlty produces 3 in the console.
It always prints the previous knot information, and this is causing a problem for my plugin
Is this a bug or am I missing something?