/// <summary>
 /// 
 /// </summary>
 /// <param name="geom"></param>
 /// <returns></returns>
 public virtual IGeometry Reduce(IGeometry geom)
 {
     GeometryEditor geomEdit;
     if (_changePrecisionModel) 
     {
         // GeometryFactory newFactory = new GeometryFactory(_newPrecisionModel, geom.SRID);
         GeometryFactory newFactory = new GeometryFactory(_newPrecisionModel);
         geomEdit = new GeometryEditor(newFactory);
     }
     else
     // don't change point factory
     geomEdit = new GeometryEditor();
     return geomEdit.Edit(geom, new PrecisionReducerCoordinateOperation(this));
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="g"></param>
 /// <returns>
 /// A clone of g based on a CoordinateSequence created by this
 /// GeometryFactory's CoordinateSequenceFactory.
 /// </returns>
 public virtual IGeometry CreateGeometry(IGeometry g)
 {
     // could this be cached to make this more efficient? Or maybe it isn't enough overhead to bother
     GeometryEditor editor = new GeometryEditor(this);
     return editor.Edit(g, new AnonymousCoordinateOperationImpl());            
 }