/* Copyright 2008-2010 Gephi Authors : Mathieu Bastian <mathieu.bastian@gephi.org> Website : http://www.gephi.org This file is part of Gephi. Gephi is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Gephi is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with Gephi. If not, see <http://www.gnu.org/licenses/>. */ package org.gephi.visualization; import org.gephi.lib.gleem.linalg.Vec3f; /** * * @author Mathieu Bastian */ public class GraphLimits { private int minXviewport; private int maxXviewport; private int minYviewport; private int maxYviewport; private float minXoctree; private float maxXoctree; private float minYoctree; private float maxYoctree; private float minZoctree; private float maxZoctree; private Vec3f closestPoint = new Vec3f(0, 0, 0); private float maxWeight; private float minWeight; private float maxMetaWeight; private float minMetaWeight; public synchronized float getMaxXoctree() { return maxXoctree; } public synchronized void setMaxXoctree(float maxXoctree) { this.maxXoctree = maxXoctree; } public synchronized int getMaxXviewport() { return maxXviewport; } public synchronized void setMaxXviewport(int maxXviewport) { this.maxXviewport = maxXviewport; } public synchronized float getMaxYoctree() { return maxYoctree; } public synchronized void setMaxYoctree(float maxYoctree) { this.maxYoctree = maxYoctree; } public synchronized int getMaxYviewport() { return maxYviewport; } public synchronized void setMaxYviewport(int maxYviewport) { this.maxYviewport = maxYviewport; } public synchronized float getMaxZoctree() { return maxZoctree; } public synchronized void setMaxZoctree(float maxZoctree) { this.maxZoctree = maxZoctree; } public synchronized float getMinXoctree() { return minXoctree; } public synchronized void setMinXoctree(float minXoctree) { this.minXoctree = minXoctree; } public synchronized int getMinXviewport() { return minXviewport; } public synchronized void setMinXviewport(int minXviewport) { this.minXviewport = minXviewport; } public synchronized float getMinYoctree() { return minYoctree; } public synchronized void setMinYoctree(float minYoctree) { this.minYoctree = minYoctree; } public synchronized int getMinYviewport() { return minYviewport; } public synchronized void setMinYviewport(int minYviewport) { this.minYviewport = minYviewport; } public synchronized float getMinZoctree() { return minZoctree; } public synchronized void setMinZoctree(float minZoctree) { this.minZoctree = minZoctree; } public synchronized float getDistanceFromPoint(float x, float y, float z) { float dis = (float) Math.sqrt((closestPoint.x() - x) * (closestPoint.x() - x) + (closestPoint.y() - y) * (closestPoint.y() - y) + (closestPoint.z() - z) * (closestPoint.z() - z)); return dis; //Minimum distance with the 8 points of the cube, poor method /*double min = Double.POSITIVE_INFINITY; min = Math.min(min,Math.sqrt((minXoctree-x)*(minXoctree-x)+(minYoctree-y)*(minYoctree-y)+(maxZoctree-z)*(maxZoctree-z))); min = Math.min(min,Math.sqrt((maxXoctree-x)*(maxXoctree-x)+(minYoctree-y)*(minYoctree-y)+(maxZoctree-z)*(maxZoctree-z))); min = Math.min(min,Math.sqrt((minXoctree-x)*(minXoctree-x)+(maxYoctree-y)*(maxYoctree-y)+(maxZoctree-z)*(maxZoctree-z))); min = Math.min(min,Math.sqrt((maxXoctree-x)*(maxXoctree-x)+(maxYoctree-y)*(maxYoctree-y)+(maxZoctree-z)*(maxZoctree-z))); min = Math.min(min,Math.sqrt((minXoctree-x)*(minXoctree-x)+(minYoctree-y)*(minYoctree-y)+(minZoctree-z)*(minZoctree-z))); min = Math.min(min,Math.sqrt((maxXoctree-x)*(maxXoctree-x)+(minYoctree-y)*(minYoctree-y)+(minZoctree-z)*(minZoctree-z))); min = Math.min(min,Math.sqrt((minXoctree-x)*(minXoctree-x)+(maxYoctree-y)*(maxYoctree-y)+(minZoctree-z)*(minZoctree-z))); min = Math.min(min,Math.sqrt((maxXoctree-x)*(maxXoctree-x)+(maxYoctree-y)*(maxYoctree-y)+(minZoctree-z)*(minZoctree-z))); return (float)min;*/ } public void setClosestPoint(Vec3f closestPoint) { this.closestPoint = closestPoint; } public float getMaxWeight() { return maxWeight; } public void setMaxWeight(float maxWeight) { this.maxWeight = maxWeight; } public float getMinWeight() { return minWeight; } public void setMinWeight(float minWeight) { this.minWeight = minWeight; } public float getMaxMetaWeight() { return maxMetaWeight; } public void setMaxMetaWeight(float maxMetaWeight) { this.maxMetaWeight = maxMetaWeight; } public float getMinMetaWeight() { return minMetaWeight; } public void setMinMetaWeight(float minMetaWeight) { this.minMetaWeight = minMetaWeight; } }