[geos-devel] re:GEOS
Artem Pavlenko
artem at pavlenko.uklinux.net
Fri Mar 11 14:48:06 EST 2005
Dear List,
Firstly, thanks for all your efforts to provide an opensource
implementation of spatial algorithms.
I am the developer of http://mapnik.berlios.de project and am at the
moment thinking about having a go at implementing OGCs Filter/SLD (or
subset of it) in C++ . So I'm very into GEOS becoming more robust,
standard and easier to integrate ... (I guess that is the point of the
project).
I hope you don't mind me butting in; I'm just a potential user and I
don't claim any great authority in C++. My aim is simply to start using
GEOS ASAP. On this basis, I have a couple of comments/ suggestions.
I've noticed that there are some changes in CVS and I'm glad to see the
following:
LineIntersector::LineIntersector()
{
precisionModel=NULL;
Coordinate *c=new Coordinate();
intPt[0].setCoordinate(*c);
delete c;
c=new Coordinate();
intPt[1].setCoordinate(*c);
delete c;
// alias the intersection points for ease of reference
pa.setCoordinate(intPt[0]);
pb.setCoordinate(intPt[1]);
result=0;
}
becoming :
LineIntersector::LineIntersector(): pa(intPt[0]), pb(intPt[1])
{
precisionModel=NULL;
// alias the intersection points for ease of reference
//pa=intPt[0];
//pb=intPt[1];
result=0;
}
But to me, this is still a wrong use of C++. From what I can see, this
is one example of many, maybe as a result of translating Java into C++?
I would be honoured to suggest some changes/ideas, if anybody agrees
with me:)
I also have some questions about future directions. As I see it, there
can be lots to gain from introducing templates, because:
1. you're using them already as part of STL
2. they might lead to better performance
3. you'll able to abstract things like memory allocation and precision
models, allowing clients to configure the library the way they like and
concentrate on actual algorithms
4. templates are part C++ ISO!
And also there is boost.org and you will be dealing with smart pointers
at some point, so why not now?
I'm also working with couple datastructures that might be beneficial to
GEOS.
Anyway, all this is meant to be constructive, and I'm happy to discuss
anything or for anybody to put me right if I'm missing something!
Cheers!
Artem
More information about the geos-devel
mailing list