def sumOf(nvectors, Vector=None, h=None, **Vector_kwds): '''Return the vectorial sum of two or more n-vectors. @arg nvectors: Vectors to be added (C{Nvector}[]). @kwarg Vector: Optional class for the vectorial sum (C{Nvector}) or C{None}. @kwarg h: Optional height, overriding the mean height (C{meter}). @kwarg Vector_kwds: Optional, additional B{C{Vector}} keyword arguments, ignored if C{B{Vector}=None}. @return: Vectorial sum (B{C{Vector}}) or a L{Vector4Tuple}C{(x, y, z, h)} if B{C{Vector}} is C{None}. @raise VectorError: No B{C{nvectors}}. ''' n, nvectors = len2(nvectors) if n < 1: raise VectorError(nvectors=n, txt=MISSING) if h is None: h = fsum(v.h for v in nvectors) / float(n) if Vector is None: r = _sumOf(nvectors, Vector=Vector3Tuple).to4Tuple(h) else: r = _sumOf(nvectors, Vector=Vector, h=h, **Vector_kwds) return r
def sumOf(nvectors, Vector=Nvector, h=None, **kwds): '''Return the vectorial sum of two or more n-vectors. @param nvectors: Vectors to be added (L{Nvector}[]). @keyword Vector: Optional class for the vectorial sum (L{Nvector}). @keyword kwds: Optional, additional B{C{Vector}} keyword arguments. @keyword h: Optional height, overriding the mean height (C{meter}). @return: Vectorial sum (B{C{Vector}}). @raise VectorError: No B{C{nvectors}}. ''' n, nvectors = len2(nvectors) if n < 1: raise VectorError('no nvectors: %r' & (n, )) if h is None: h = fsum(v.h for v in nvectors) / float(n) return _sumOf(nvectors, Vector=Vector, h=h, **kwds)