code: public int getIsSimple(double tolerance) {
  		if (!_hasDirtyFlag(DirtyFlags.DirtyIsKnownSimple)) {
  			if (!_hasDirtyFlag(DirtyFlags.IsWeakSimple)) {
  				return 0;
  			}
  			if (m_simpleTolerance >= tolerance) {
  				if (!_hasDirtyFlag(DirtyFlags.DirtyOGCFlags))
  					return 2;
  
  				return 1;
  			}
  
  			return -1;
  		}
  		return -1;
  	}
docs: and valid ring ordering)