ConstPolyIter: A PolyIter which is constructed of a const Poly. DirPolyIter: Provides an iterator for a Poly which can go forward and backwards. Edge: A side of a polygon consisting of two Point's. I'm afraid this one is no longer used. NodePEdge: Represents an edge from a Poly. Point: A 2-D point. Some arithmetic operations are overloaded. PointList: List of Point's. I'm afraid that this one is no longer used. PointListIter: An iterator for a PointList. Poly: A polygon. Consist of a double linked list of PolyNode's. PolyIter: Provides an iterator over a Poly. PolyNode: A single point in a Poly. PosAdder: A 'boolean' which can have the values UnKnown, True and False. Set: A template implementation of a Set. Main design issue: fast to implement :-) SetIter: Iterator for a Set. RSet, RSetIter: Similar to the Set classes, but handle data by reference.