continuousportrayal3d.java

来自「MASON代表多主体邻里或网络仿真(Multi-Agent Simulator 」· Java 代码 · 共 70 行

JAVA
70
字号
package sim.portrayal3d.continuous;import javax.vecmath.*;import sim.portrayal.*;import sim.portrayal3d.*;import sim.util.*;import sim.field.continuous.*;import com.sun.j3d.utils.picking.*;/** * Portrays both Continuous2D and Continuous3D fields.  * 2D fields are spread through the XY plane and are presumed to have Z=0. * * @author Gabriel Balan */public class ContinuousPortrayal3D extends SparseFieldPortrayal3D    {    /**     * @see sim.portrayal.SparseFieldPortrayal3D#getLocationOfObjectAsVector3d(Object)     */    public Vector3d getLocationOfObjectAsVector3d(Object obj, Vector3d putInHere)        {        if (field instanceof Continuous2D)            {            Double2D locationD2d = ((Continuous2D)field).getObjectLocation(obj);            putInHere.x = locationD2d.x;            putInHere.y = locationD2d.y;            putInHere.z = 0;            }        else            {            Double3D locationD3d = ((Continuous3D)field).getObjectLocation(obj);            putInHere.x = locationD3d.x;            putInHere.y = locationD3d.y;            putInHere.z = locationD3d.z;            }        return putInHere;        }    public void setField(Object field)        {        dirtyField = true;        if (field instanceof Continuous3D || field instanceof Continuous2D) this.field = field;        else throw new RuntimeException("Invalid field for ContinuousPortrayal3D3D: " + field);        }                public LocationWrapper completedWrapper(LocationWrapper w, PickIntersection pi, PickResult pr)        {        return new LocationWrapper( w.getObject(), null, this)  // don't care about location            {            public Object getLocation()                {                if(field instanceof Continuous3D)                    return ((Continuous3D)field).getObjectLocation(object);                else                    return ((Continuous2D)field).getObjectLocation(object);                }                            public String getLocationName()                {                if(field instanceof Continuous3D)                    return ((Continuous3D)field).getObjectLocation(object).toCoordinates();                else                    return ((Continuous2D)field).getObjectLocation(object).toCoordinates();                }            };        }           }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?