@@ -1052,7 +1052,8 @@ RendererAgg::draw_quad_mesh(const Py::Tuple& args){
10521052 }
10531053
10541054 set_clip_from_bbox (args[5 ]);
1055-
1055+ // Does it make sense to support offsets in QuadMesh?
1056+ // When would they be used?
10561057 Py::SeqBase<Py::Object> offsets;
10571058 Transformation* transOffset = NULL ;
10581059 bool usingOffsets = args[7 ].ptr () != Py_None;
@@ -1079,37 +1080,30 @@ RendererAgg::draw_quad_mesh(const Py::Tuple& args){
10791080 std::pair<double , double > xyo, xy;
10801081
10811082 // do non-offset transformations
1082- double * xCoordsa = new double [Nverts];
1083- double * yCoordsa = new double [Nverts];
10841083 double * newXCoords = new double [Nverts];
10851084 double * newYCoords = new double [Nverts];
10861085 size_t k, q;
1087- for (k=0 ; k < Nverts; k++)
1088- {
1089- xCoordsa[k] = *(double *)(xCoords -> data + k*(xCoords -> strides[0 ]));
1090- yCoordsa[k] = *(double *)(yCoords -> data + k*(yCoords -> strides[0 ]));
1091- }
1092- transform->arrayOperator (Nverts, xCoordsa, yCoordsa, newXCoords, newYCoords);
1093- delete xCoordsa;
1094- delete yCoordsa;
1086+ transform->arrayOperator (Nverts, (const double *)xCoords->data ,
1087+ (const double *)yCoords->data ,
1088+ newXCoords, newYCoords);
10951089 if (usingOffsets)
10961090 {
10971091 double * xOffsets = new double [Noffsets];
10981092 double * yOffsets = new double [Noffsets];
10991093 double * newXOffsets = new double [Noffsets];
11001094 double * newYOffsets = new double [Noffsets];
11011095 for (k=0 ; k < Noffsets; k++)
1102- {
1103- Py::SeqBase<Py::Object> pos = Py::SeqBase<Py::Object>(offsets[k]);
1104- xOffsets[k] = Py::Float (pos[0 ]);
1105- yOffsets[k] = Py::Float (pos[1 ]);
1106- }
1096+ {
1097+ Py::SeqBase<Py::Object> pos = Py::SeqBase<Py::Object>(offsets[k]);
1098+ xOffsets[k] = Py::Float (pos[0 ]);
1099+ yOffsets[k] = Py::Float (pos[1 ]);
1100+ }
11071101 transOffset->arrayOperator (Noffsets, xOffsets, yOffsets, newXOffsets, newYOffsets);
11081102 for (k=0 ; k < Nverts; k++)
1109- {
1110- newXCoords[k] += newXOffsets[k];
1111- newYCoords[k] += newYOffsets[k];
1112- }
1103+ {
1104+ newXCoords[k] += newXOffsets[k];
1105+ newYCoords[k] += newYOffsets[k];
1106+ }
11131107 delete xOffsets;
11141108 delete yOffsets;
11151109 delete newXOffsets;
0 commit comments