SplineData::GetKnotCount - wrong return



  • 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?


Log in to reply