Class Space3D

    • Field Detail

      • PROPERTY_POSITION

        public static final java.lang.String PROPERTY_POSITION
        The constant for the position property.
        See Also:
        Constant Field Values
      • PROPERTY_BORDER

        public static final java.lang.String PROPERTY_BORDER
        The constant for the border property.
        See Also:
        Constant Field Values
      • BORDER_STRICT

        public static final java.lang.String BORDER_STRICT
        Border strict mode.
        See Also:
        Constant Field Values
      • BORDER_RELAXED

        public static final java.lang.String BORDER_RELAXED
        Border relaxed mode.
        See Also:
        Constant Field Values
      • BORDER_TORUS

        public static final java.lang.String BORDER_TORUS
        Border torus behavior.
        See Also:
        Constant Field Values
      • areasize

        protected IVector3 areasize
        Area size.
    • Constructor Detail

      • Space3D

        protected Space3D​(IVector3 areasize)
        Initializes the 3D-Space.
        Parameters:
        spaceexecutor - executor for the space
        actionexecutor - executor for component actions
        areasize - the size of the 2D area
    • Method Detail

      • getAreaSize

        public IVector3 getAreaSize()
        Returns the size of the simulated area.
        Returns:
        size of the simulated area
      • setAreaSize

        public void setAreaSize​(IVector3 areasize)
        Set the area size.
        Parameters:
        areasize - The area size.
      • getBorderMode

        public java.lang.String getBorderMode()
        Get the border mode.
        Returns:
        the border_mode
      • setPosition

        public void setPosition​(java.lang.Object id,
                                IVector3 pos)
        Set the position of an object.
        Parameters:
        id - The object id.
        pos - The object position.
      • getDistance

        public IVector1 getDistance​(IVector3 pos1,
                                    IVector3 pos2)
        Get the distance between three positions.
        Parameters:
        pos1 - The first position.
        pos2 - The second position.
        pos3 - The third position.
      • getDistance

        public IVector1 getDistance​(IVector1 pos1,
                                    IVector1 pos2,
                                    boolean isx)
        Get the distance between two coordinates (x or y).
        Parameters:
        pos1 - The first position.
        pos2 - The second position.
      • calculateDistance

        public IVector1 calculateDistance​(IVector1 dx,
                                          IVector1 dy,
                                          IVector1 dz)
        Calculate the distance in the space.
        Parameters:
        dx - The distance in x.
        dy - The distance in y.
        dz - The distance in z.
        Returns:
        The distance according to the distance metrics of the space.
      • adjustPosition

        public IVector3 adjustPosition​(IVector3 pos)
        Calculate a position according to the space borders.
      • getRandomPosition

        public IVector3 getRandomPosition​(IVector3 distance)
        Retrieves a random position within the simulation area with a minimum distance from the edge.
        Parameters:
        distance - minimum distance from the edge, null or zero for no distance
      • getNearestObject

        public ISpaceObject getNearestObject​(IVector3 position,
                                             IVector1 maxdist,
                                             java.lang.String type)
        Returns the nearest object to the given position within a maximum distance from the position.
        Parameters:
        position - position the object should be nearest to
        maxdist - maximum distance from the position, use null for unlimited distance
        Returns:
        nearest object's ID or null if none is found
      • getNearObjects

        public java.util.Set getNearObjects​(IVector3 position,
                                            IVector1 maxdist)
        Retrieve all objects in the distance for a position
        Parameters:
        position -
        distance -
        Returns:
        The near objects.
      • getNearObjects

        public java.util.Set getNearObjects​(IVector3 position,
                                            IVector1 maxdist,
                                            java.lang.String type)
        Retrieve all objects in the distance for a position
        Parameters:
        position -
        distance -
        Returns:
        The near objects.
      • getNearObjects

        public java.util.Set getNearObjects​(IVector3 position,
                                            IVector1 maxdist,
                                            IFilter filter)
        Retrieve all objects in the distance for a position
        Parameters:
        position -
        distance -
        Returns:
        The near objects.
      • getSpaceObjects

        public java.lang.Object[] getSpaceObjects()
        Get all space objects.
        Returns:
        All space objects.