package automenta.spacenet.space.geom.graph.arrange.forcedirect; import automenta.spacenet.space.Space; import automenta.spacenet.space.geom.Box; import automenta.spacenet.space.geom.Line3D; import automenta.spacenet.space.geom.graph.arrange.forcedirect.ForceDirecting.ForceDirectedParameters; import automenta.spacenet.var.graph.map.ScalarGraphMap; import com.ardor3d.math.Vector3; public class ScalarMapForceDirecting<N, E> extends ForceDirecting<N, E> { public final ScalarGraphMap<N, E> map; public ScalarMapForceDirecting(ScalarGraphMap<N, E> sm, ForceDirectedParameters params, double updatePeriod, int substeps, double interpSpeed) { super(params, updatePeriod, substeps, interpSpeed); this.map = sm; } public ScalarGraphMap<N, E> getMap() { return map; } @Override protected void updateEdge(E e, Space s) { super.updateEdge(e, s); //((Line3D) s).getRadius().set(0.01); } @Override protected void updateNode(N n, Box nBox, Vector3 nextSize) { //double nodeSize = 0.05; double nodeSize = getNodeSize(n, map.value(n)); nextSize.set(nodeSize, nodeSize, nodeSize); return; } public double getNodeSize(N node, double a) { return a; } }