- public IntegerTopology() { this(new Range.Set()); }
- public IntegerTopology(V v) { this(v.toInt()); }
- public IntegerTopology(V a, V b) { this(a.toInt(), b.toInt()); }
- public IntegerTopology(int a) { this(a, a); }
- public IntegerTopology(int a, int b) { this(new Range(a, b)); }
- public IntegerTopology(Range r) { this(new Range.Set(r)); }
- public IntegerTopology(Range.Set rs) { this.rs = rs; }
+ public IntegerTopology(Functor<V,Integer> f) { this(f, new Range.Set()); }
+ public IntegerTopology(Functor<V,Integer> f, V a) { this(f, f==null?((IntegerMappable)a).toInt():f.invoke(a)); }
+ public IntegerTopology(Functor<V,Integer> f, V a, V b) { this(f, f==null?((IntegerMappable)a).toInt():f.invoke(a),
+ f==null?((IntegerMappable)b).toInt():f.invoke(b)); }
+ public IntegerTopology(Functor<V,Integer> f, int a) { this(f, a, a); }
+ public IntegerTopology(Functor<V,Integer> f, int a, int b) { this(f, new Range(a, b)); }
+ public IntegerTopology(Functor<V,Integer> f, Range r) { this(f, new Range.Set(r)); }
+ public IntegerTopology(Functor<V,Integer> f, Range.Set rs) { this.rs = rs; this.f = f; }