Revision: 4379
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4379&view=rev
Author: efiring
Date: 2007-11-18 12:54:22 -0800 (Sun, 18 Nov 2007)
Log Message:
-----------
Remove unnecessary data copying from draw_quad_mesh
Modified Paths:
--------------
trunk/matplotlib/src/_backend_agg.cpp
Modified: trunk/matplotlib/src/_backend_agg.cpp
===================================================================
--- trunk/matplotlib/src/_backend_agg.cpp 2007-11-18 19:28:13 UTC (rev
4378)
+++ trunk/matplotlib/src/_backend_agg.cpp 2007-11-18 20:54:22 UTC (rev
4379)
@@ -1052,7 +1052,8 @@
}
set_clip_from_bbox(args[5]);
-
+ // Does it make sense to support offsets in QuadMesh?
+ // When would they be used?
Py::SeqBase<Py::Object> offsets;
Transformation* transOffset = NULL;
bool usingOffsets = args[7].ptr() != Py_None;
@@ -1079,19 +1080,12 @@
std::pair<double, double> xyo, xy;
//do non-offset transformations
- double* xCoordsa = new double[Nverts];
- double* yCoordsa = new double[Nverts];
double* newXCoords = new double[Nverts];
double* newYCoords = new double[Nverts];
size_t k, q;
- for(k=0; k < Nverts; k++)
- {
- xCoordsa[k] = *(double *)(xCoords -> data + k*(xCoords -> strides[0]));
- yCoordsa[k] = *(double *)(yCoords -> data + k*(yCoords -> strides[0]));
- }
- transform->arrayOperator(Nverts, xCoordsa, yCoordsa, newXCoords, newYCoords);
- delete xCoordsa;
- delete yCoordsa;
+ transform->arrayOperator(Nverts, (const double *)xCoords->data,
+ (const double *)yCoords->data,
+ newXCoords, newYCoords);
if(usingOffsets)
{
double* xOffsets = new double[Noffsets];
@@ -1099,17 +1093,17 @@
double* newXOffsets = new double[Noffsets];
double* newYOffsets = new double[Noffsets];
for(k=0; k < Noffsets; k++)
- {
- Py::SeqBase<Py::Object> pos = Py::SeqBase<Py::Object>(offsets[k]);
- xOffsets[k] = Py::Float(pos[0]);
- yOffsets[k] = Py::Float(pos[1]);
- }
+ {
+ Py::SeqBase<Py::Object> pos = Py::SeqBase<Py::Object>(offsets[k]);
+ xOffsets[k] = Py::Float(pos[0]);
+ yOffsets[k] = Py::Float(pos[1]);
+ }
transOffset->arrayOperator(Noffsets, xOffsets, yOffsets, newXOffsets,
newYOffsets);
for(k=0; k < Nverts; k++)
- {
- newXCoords[k] += newXOffsets[k];
- newYCoords[k] += newYOffsets[k];
- }
+ {
+ newXCoords[k] += newXOffsets[k];
+ newYCoords[k] += newYOffsets[k];
+ }
delete xOffsets;
delete yOffsets;
delete newXOffsets;
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins