return (Complex) this;
} else
if (this instanceof CurveImpl) {
List<OrientableCurve> cl = new ArrayList<OrientableCurve>();
cl.add((OrientableCurve) this);
return new CompositeCurveImpl(cl);
} else
if (this instanceof SurfaceImpl) {
List<OrientableSurface> cs = new ArrayList<OrientableSurface>();
cs.add( (OrientableSurface) this);
return new CompositeSurfaceImpl(cs);