Revision: 7356
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7356&view=rev
Author: efiring
Date: 2009-08-05 00:05:37 +0000 (Wed, 05 Aug 2009)
Log Message:
-----------
Elimination of contourf cut strokes: second try
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/contour.py
trunk/matplotlib/src/cntr.c
Modified: trunk/matplotlib/lib/matplotlib/contour.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/contour.py 2009-08-04 19:51:08 UTC (rev
7355)
+++ trunk/matplotlib/lib/matplotlib/contour.py 2009-08-05 00:05:37 UTC (rev
7356)
@@ -606,7 +606,6 @@
segs = nlist[:nseg]
kinds = nlist[nseg:]
-
paths = self._make_paths(segs, kinds)
col = collections.PathCollection(paths,
@@ -652,8 +651,10 @@
codes = np.zeros(kind.shape, dtype=mpath.Path.code_type)
codes.fill(mpath.Path.LINETO)
codes[0] = mpath.Path.MOVETO
- # Attempted slit removal is disabled until we get it right.
- #codes[kind >= _cntr._slitkind] = mpath.Path.MOVETO
+ # points that begin a slit or are in it:
+ in_slit = kind[:-1] >= _cntr._slitkind
+ # use moveto for any point *following* such a point
+ codes[1:][in_slit] = mpath.Path.MOVETO
paths.append(mpath.Path(seg, codes))
return paths
Modified: trunk/matplotlib/src/cntr.c
===================================================================
--- trunk/matplotlib/src/cntr.c 2009-08-04 19:51:08 UTC (rev 7355)
+++ trunk/matplotlib/src/cntr.c 2009-08-05 00:05:37 UTC (rev 7356)
@@ -1326,7 +1326,7 @@
/* Build a list of XY 2-D arrays, shape (N,2), to which a list of K arrays
- is concatenated concatenated. */
+ is concatenated. */
static PyObject *
build_cntr_list_v2(long *np, double *xp, double *yp, short *kp,
int nparts, long ntotal)
@@ -1653,6 +1653,29 @@
return cntr_trace(self->site, levels, nlevels, nchunk);
}
+/* The following will not normally be called. It is experimental,
+ and intended for future debugging. It may go away at any time.
+*/
+static PyObject *
+Cntr_get_cdata(Cntr *self)
+{
+ PyArrayObject *Cdata;
+ npy_intp dims[2];
+ int i, j;
+ int ni, nj;
+
+ dims[0] = ni = self->site->imax;
+ dims[1] = nj = self->site->jmax;
+
+ Cdata = (PyArrayObject *) PyArray_SimpleNew(2, dims, PyArray_SHORT);
+ for (j=0; j<nj; j++)
+ for (i=0; i<ni; i++)
+ Cdata->data[j + i*nj] = self->site->data[i + j*ni];
+ /* output is C-order, input is F-order */
+ /* for now we are ignoring the last ni+1 values */
+ return (PyObject *)Cdata;
+}
+
static PyMethodDef Cntr_methods[] = {
{"trace", (PyCFunction)Cntr_trace, METH_VARARGS | METH_KEYWORDS,
"Return a list of contour line segments or polygons.\n\n"
@@ -1665,6 +1688,12 @@
" Optional argument: nchunk; approximate number of grid points\n"
" per chunk. 0 (default) for no chunking.\n"
},
+ {"get_cdata", (PyCFunction)Cntr_get_cdata, METH_NOARGS,
+ "Returns a copy of the mesh array with contour calculation codes.\n\n"
+ "Experimental and incomplete; we are not returning quite all of\n"
+ "the array.\n"
+ "Don't call this unless you are exploring the dark recesses of cntr.c\n"
+ },
{0, 0, 0, 0} /* Sentinel */
};
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins