|
From: <kin...@us...> - 2024-07-24 23:36:17
|
Revision: 7232
http://sourceforge.net/p/teem/code/7232
Author: kindlmann
Date: 2024-07-24 23:36:11 +0000 (Wed, 24 Jul 2024)
Log Message:
-----------
syncing with source
Modified Paths:
--------------
teem/trunk/python/cffi/biffdata/limn.csv
teem/trunk/python/cffi/cdef/cdef_limn.h
teem/trunk/python/cffi/teem.py
Modified: teem/trunk/python/cffi/biffdata/limn.csv
===================================================================
--- teem/trunk/python/cffi/biffdata/limn.csv 2024-07-24 23:33:49 UTC (rev 7231)
+++ teem/trunk/python/cffi/biffdata/limn.csv 2024-07-24 23:36:11 UTC (rev 7232)
@@ -60,14 +60,14 @@
limnSplineUpdate,int,1,0,limn,limn/splineMethods.c:422
limnSplineTypeSpecParse,limnSplineTypeSpec *,NULL,0,limn,limn/splineMisc.c:222
limnSplineParse,limnSpline *,NULL,0,limn,limn/splineMisc.c:278
-limnCbfPointsNew,limnCbfPoints *,NULL,0,limn,limn/splineFit.c:175
-limnCbfPointsCheck,int,1,0,limn,limn/splineFit.c:247
-limnCbfCtxPrep,int,1,0,limn,limn/splineFit.c:516
-limnCbfTVT,int,1,0,limn,limn/splineFit.c:784
-limnCbfSingle,int,1,0,limn,limn/splineFit.c:1513
-limnCbfCorners,int,1,0,limn,limn/splineFit.c:1564
-limnCbfMulti,int,1,0,limn,limn/splineFit.c:1747
-limnCbfGo,int,1,0,limn,limn/splineFit.c:1865
+limnCbfPointsNew,limnCbfPoints *,NULL,0,limn,limn/splineFit.c:177
+limnCbfPointsCheck,int,1,0,limn,limn/splineFit.c:249
+limnCbfCtxPrep,int,1,0,limn,limn/splineFit.c:520
+limnCbfTVT,int,1,0,limn,limn/splineFit.c:788
+limnCbfSingle,int,1,0,limn,limn/splineFit.c:1517
+limnCbfCorners,int,1,0,limn,limn/splineFit.c:1568
+limnCbfMulti,int,1,0,limn,limn/splineFit.c:1770
+limnCbfGo,int,1,0,limn,limn/splineFit.c:1888
limnObjectWorldHomog,int,1,0,limn,limn/transform.c:25
limnObjectFaceNormals,int,1,0,limn,limn/transform.c:47
limnObjectSpaceTransform,int,1,0,limn,limn/transform.c:210
Modified: teem/trunk/python/cffi/cdef/cdef_limn.h
===================================================================
--- teem/trunk/python/cffi/cdef/cdef_limn.h 2024-07-24 23:33:49 UTC (rev 7231)
+++ teem/trunk/python/cffi/cdef/cdef_limn.h 2024-07-24 23:36:11 UTC (rev 7232)
@@ -487,7 +487,7 @@
** note: "nrp" = Newton-based Re-Parameterization of where the given points
** fall along the spline, the iterative process inside limnCbfSingle
*/
-typedef struct {
+typedef struct limnCbfCtx_t {
/* ----------- input ---------- */
int verbose, /* verbosity level */
cornerFind, /* do first search for corners: places where the path is not
@@ -495,7 +495,13 @@
continuous between multiple spline segments) */
cornerNMS; /* (if cornerFind) non-minimal-suppression of corners: accept as
corners only those with locally minimal angle */
- unsigned int nrpIterMax; /* max # iters of nrp */
+ int (*cornerCB)(double *tvtNew, /* if corner, set new TVT */
+ const struct limnCbfCtx_t *fctx, /* this struct */
+ double angleMeas, /* measured angle */
+ const double *tvtMeas, /* measured TVT */
+ const double *vertOrig); /* original vertex pos */
+ const void *cornerCBData; /* holds extra info for cornerCB */
+ unsigned int nrpIterMax; /* max # iters of nrp */
double
epsilon, /* error threshold on min distance from spline (as currently parameterized)
to given points: this affects both splitting done by limnCbfMulti, and
@@ -516,20 +522,20 @@
nrpPsi, /* don't even try nrp if max dist is bigger than nrpPsi*epsilon, instead
just subdivide */
nrpDeltaThresh, /* finish npr when mean parameterization change fall below this */
- alphaMin, /* alpha can't be negative, and we enforce distinct positivity to ensure
- that spline doesn't slow down too much near endpoints */
- detMin, /* abs(determinant) of 2x2 matrix to invert can't go below this */
- cornAngle, /* interior angle, in degrees, between (one-sided) incoming and outgoing
- tangents, *below* which a vertex should be considered a corner.
- Vertices in a straight line have an angle of 180 degrees. */
- wackyAngle; /* in cases where we are only looking at three points: a spline can
- always be fit through the middle point, even with constraints on
- position and tangent at first and last points, but the spline looks
- wacky if its tangent at the middle point is wildly different than
- the (two-sided) tangent that would have been estimated at that point
- for the purpose of splitting. If the angle (in degrees) between the
- two tangents exceeds this, then fitting will generate the simple
- (punted) arc, which will likely trigger splitting. */
+ alphaMin, /* alpha can't be negative, and we enforce distinct positivity to ensure
+ that spline doesn't slow down too much near endpoints */
+ detMin, /* abs(determinant) of 2x2 matrix to invert can't go below this */
+ cornerAngle, /* interior angle, in degrees, between (one-sided) incoming and outgoing
+ tangents, *below* which a vertex should be considered a corner.
+ Vertices in a straight line have an angle of 180 degrees. */
+ wackyAngle; /* in cases where we are only looking at three points: a spline can
+ always be fit through the middle point, even with constraints on
+ position and tangent at first and last points, but the spline looks
+ wacky if its tangent at the middle point is wildly different than
+ the (two-sided) tangent that would have been estimated at that point
+ for the purpose of splitting. If the angle (in degrees) between the
+ two tangents exceeds this, then fitting will generate the simple
+ (punted) arc, which will likely trigger splitting. */
/* ----------- internal --------- */
double *uu, /* used for nrp: buffer of parameterizations in [0,1] of point along
currently considered spline segment */
Modified: teem/trunk/python/cffi/teem.py
===================================================================
--- teem/trunk/python/cffi/teem.py 2024-07-24 23:33:49 UTC (rev 7231)
+++ teem/trunk/python/cffi/teem.py 2024-07-24 23:36:11 UTC (rev 7232)
@@ -433,14 +433,14 @@
'limnSplineUpdate': (_equals_one, 0, b'limn', 'limn/splineMethods.c:422'),
'limnSplineTypeSpecParse': (_equals_null, 0, b'limn', 'limn/splineMisc.c:222'),
'limnSplineParse': (_equals_null, 0, b'limn', 'limn/splineMisc.c:278'),
- 'limnCbfPointsNew': (_equals_null, 0, b'limn', 'limn/splineFit.c:175'),
- 'limnCbfPointsCheck': (_equals_one, 0, b'limn', 'limn/splineFit.c:247'),
- 'limnCbfCtxPrep': (_equals_one, 0, b'limn', 'limn/splineFit.c:516'),
- 'limnCbfTVT': (_equals_one, 0, b'limn', 'limn/splineFit.c:784'),
- 'limnCbfSingle': (_equals_one, 0, b'limn', 'limn/splineFit.c:1513'),
- 'limnCbfCorners': (_equals_one, 0, b'limn', 'limn/splineFit.c:1564'),
- 'limnCbfMulti': (_equals_one, 0, b'limn', 'limn/splineFit.c:1747'),
- 'limnCbfGo': (_equals_one, 0, b'limn', 'limn/splineFit.c:1865'),
+ 'limnCbfPointsNew': (_equals_null, 0, b'limn', 'limn/splineFit.c:177'),
+ 'limnCbfPointsCheck': (_equals_one, 0, b'limn', 'limn/splineFit.c:249'),
+ 'limnCbfCtxPrep': (_equals_one, 0, b'limn', 'limn/splineFit.c:520'),
+ 'limnCbfTVT': (_equals_one, 0, b'limn', 'limn/splineFit.c:788'),
+ 'limnCbfSingle': (_equals_one, 0, b'limn', 'limn/splineFit.c:1517'),
+ 'limnCbfCorners': (_equals_one, 0, b'limn', 'limn/splineFit.c:1568'),
+ 'limnCbfMulti': (_equals_one, 0, b'limn', 'limn/splineFit.c:1770'),
+ 'limnCbfGo': (_equals_one, 0, b'limn', 'limn/splineFit.c:1888'),
'limnObjectWorldHomog': (_equals_one, 0, b'limn', 'limn/transform.c:25'),
'limnObjectFaceNormals': (_equals_one, 0, b'limn', 'limn/transform.c:47'),
'limnObjectSpaceTransform': (_equals_one, 0, b'limn', 'limn/transform.c:210'),
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|