GetSegmentCount() always returns 1?



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

    On 11/04/2011 at 10:22, xxxxxxxx wrote:

    Hi,

    I'm testing the SplineHelper class functions. But for some reason GetSegmentCount() always returns the value of one. Even though my spline has multiple segments.
    Any idea what I'm doing wrong here?:

      
    import c4d  
    from c4d import gui  
      
    def main() :  
      
     sh = c4d.utils.SplineHelp()  
     sh.InitSpline(op, rail=None, target_rail=True, use_deformed_points=True, force_update=True, use_global_space=True)  
     segCount = sh.GetSegmentCount()#Counts the total number of segments  
     segLength = sh.GetSegmentLength(0)#Gets the length of the first segment   
     totalLenght = sh.GetSplineLength()#Gets the length of the entire spline  
        
     print segCount  
     print segLength  
     print totalLenght   
      
    if __name__=='__main__':  
      main()  
    

    -ScottA



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

    On 11/04/2011 at 11:16, xxxxxxxx wrote:

    It returns '2' here which is the correct value.
    This is the spline I've tested:

    Cheers, Niklas



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

    On 11/04/2011 at 12:01, xxxxxxxx wrote:

    Doh!

    I guess I got confused about how these classes decide what a "segment" is.
    After looking through my Coffee notes. I realized that what I was trying to do required using the SplineLengthData class.
    Not the SplineHelp class.

    Like this:

      
    import c4d  
    from c4d import gui  
      
    def main() :  
      length = c4d.utils.SplineLengthData(op[0])#Creates a new instance of the SplineLengthData class  
      length.Init(op,0)# Initializes the spline object(op) and the first spline segment  
      print(length.GetLength())# The Spline's Length  
      print(length.GetSegmentLength(0,1))#The first segment's length  
      length.Free()#free up the memory used by the new SplineClass instance  
      
    if __name__=='__main__':  
      main()  
    

    -ScottA


Log in to reply