Interface IScriptingInterface

  • All Known Implementing Classes:
    EventScriptingInterface

    public interface IScriptingInterface
    Scripting interface. Provides an interface to the Gaia Sandbox core and exposes all the methods that are callable from a script in order to interact with the program (create demonstrations, tutorials, load data, etc.). You should never use any integration other than this interface for scripting.
    • Method Summary

      All Methods Instance Methods Abstract Methods Deprecated Methods 
      Modifier and Type Method Description
      void activateRealTimeFrame()
      Sets the current time frame to real time.
      void activateSimulationTimeFrame()
      Sets the current time frame to simulation time.
      void addPolyline​(java.lang.String name, double[] points, double[] color)
      Adds a new polyline with the given name, points and color.
      void addPolyline​(java.lang.String name, double[] points, double[] color, float lineWidth)
      Adds a new polyline with the given name, points, color and line width.
      void cameraCenter()
      Centers the camera to the focus, removing any deviation of the line of sight.
      void cameraForward​(double value)
      Adds a forward movement to the camera with the given value.
      void cameraPitch​(double amount)
      Adds a pitch to the camera.
      void cameraRoll​(double roll)
      Adds a roll force to the camera.
      void cameraRotate​(double deltaX, double deltaY)
      Adds a rotation movement to the camera around the current focus, or a pitch/yaw if in free mode.
      void cameraStop()
      Stops all camera motion.
      void cameraTransition​(double[] camPos, double[] camDir, double[] camUp, double seconds)
      Creates a smooth transition from the current camera state to the given camera state {camPos, camDir, camUp} in the given number of seconds.
      void cameraTransition​(double[] camPos, double[] camDir, double[] camUp, double seconds, boolean sync)
      Creates a smooth transition from the current camera state to the given camera state {camPos, camDir, camUp} in the given number of seconds.
      void cameraTurn​(double deltaX, double deltaY)
      Adds a turn force to the camera (yaw and/or pitch).
      void cameraYaw​(double amount)
      Adds a yaw to the camera.
      void clearAllMessages()
      Clears both the subhead and the headline messages.
      void clearHeadlineMessage()
      Clears the headline messge.
      void clearSubheadMessage()
      Clears the subhead message
      void collapseGuiComponent​(java.lang.String name)
      Collapses the component with the given name.
      void configureFrameOutput​(int width, int height, int fps, java.lang.String folder, java.lang.String namePrefix)
      Configures the frame output system, setting the resolution of the images, the target frames per second, the output folder and the image name prefix.
      void configureRenderOutput​(int width, int height, int fps, java.lang.String folder, java.lang.String namePrefix)
      Deprecated. 
      double[] cross3​(double[] vec1, double[] vec2)
      Computes the cross product between the two 3D vectors.
      void disableGui()
      Disables the GUI rendering.
      void disableInput()
      Disables all input events from mouse, keyboard, touchscreen, etc.
      void displayImageObject​(int id, java.lang.String path, float x, float y)
      Adds a new image object at the given coordinates.
      void displayImageObject​(int id, java.lang.String path, float x, float y, float r, float g, float b, float a)
      Adds a new image object at the given coordinates.
      void displayMessageObject​(int id, java.lang.String message, float x, float y, float r, float g, float b, float a, float fontSize)
      Adds a new one-line message in the screen with the given id and the given coordinates.
      void displayTextObject​(int id, java.lang.String text, float x, float y, float maxWidth, float maxHeight, float r, float g, float b, float a, float fontSize)
      Adds a new multi-line text in the screen with the given id, coordinates and size.
      double dot3​(double[] vec1, double[] vec2)
      Computes the dot product between the two 3D vectors.
      double[] eclipticToEquatorial​(double[] ecl)
      Converts ecliptic cartesian coordinates (in the internal reference system) to equatorial cartesian coordinates.
      double[] eclipticToInternalCartesian​(double l, double b, double r)
      Converts ecliptic coordinates to the internal cartesian coordinate system.
      void enableGui()
      Enables the GUI rendering.
      void enableInput()
      Enables all input events.
      double[] equatorialToEcliptic​(double[] eq)
      Converts equatorial cartesian coordinates (in the internal reference system) to ecliptic cartesian coordinates.
      double[] equatorialToGalactic​(double[] eq)
      Converts equatorial cartesian coordinates (in the internal reference system) to galactic cartesian coordinates.
      double[] equatorialToInternalCartesian​(double ra, double dec, double r)
      Converts equatorial coordinates to the internal cartesian coordinate system.
      void error​(java.lang.String message)
      Log an error using the internal logging system
      void expandGuiComponent​(java.lang.String name)
      Expands the component with the given name.
      double[] galacticToEquatorial​(double[] gal)
      Converts galactic cartesian coordinates (in the internal reference system) to equatorial cartesian coordinates.
      double[] galacticToInternalCartesian​(double l, double b, double r)
      Converts galactic coordinates to the internal cartesian coordinate system.
      double[] getCameraDirection()
      Gets the current camera direction vector.
      double[] getCameraPosition()
      Gets the current camera position, in km.
      double getCameraSpeed()
      Gets the current physical speed of the camera in km/h
      double[] getCameraUp()
      Gets the current camera up vector.
      IFocus getClosestObjectToCamera()
      Returns the closest object to the camera in this instant as a IFocus.
      java.lang.String getConfigDir()
      Gets the absolute path to the location of the configuration directory
      long getCurrentFrameNumber()
      Gets the current frame number.
      java.lang.String getDataDir()
      Gets the absolute path of the local data directory, configured in your global.properties file
      java.lang.String getDefaultCameraDir()
      Gets the absolute path of the default directory where the camera files are saved
      java.lang.String getDefaultFramesDir()
      Gets the absolute path of the default directory where the still frames are saved
      java.lang.String getDefaultMappingsDir()
      Gets the absolute path to the location of the inputListener mappings
      java.lang.String getDefaultMusicDir()
      Gets the absolute path to the location of the music files
      java.lang.String getDefaultScreenshotsDir()
      Gets the absolute path of the default directory where the screenshots are saved
      double getDistanceTo​(java.lang.String name)
      Returns the distance to the surface of the object identified with the given name.
      long getFrameNumber()
      Gets the current frame number.
      int getFrameOutputFps()
      Gets the current FPS setting in the frame output system.
      java.lang.String getLocalDataDir()
      Returns the default data directory.
      float getMinStarOpacity()
      Gets the minimum star opacity.
      SceneGraphNode getObject​(java.lang.String name)
      Gets an object from the scene graph by name or id (HIP, TYC, Gaia SourceId).
      SceneGraphNode getObject​(java.lang.String name, double timeOutSeconds)
      Gets an object by name or id (HIP, TYC, Gaia SourceID), optionally waiting until the object is available, with a timeout.
      double[] getObjectPosition​(java.lang.String name)
      Gets the current position of the object identified by name in the internal coordinate system and internal units.
      double getObjectRadius​(java.lang.String name)
      Gets the size of the object identified by name, in Km, by name or id (HIP, TYC, sourceId).
      float[] getPositionAndSizeGui​(java.lang.String name)
      Returns the size and position of the GUI element that goes by the given name or null if such element does not exist.
      long getProperMotionsMaxNumber()
      Returns the current maximum number of proper motion vectors allowed.
      int getRenderOutputFps()
      Deprecated. 
      int getScreenHeight()
      Returns the screen height in pixels.
      int getScreenWidth()
      Returns the screen width in pixels.
      long getSimulationTime()
      Returns the current simulation time as the number of milliseconds since Jan 1, 1970 GMT.
      int[] getSimulationTimeArr()
      Returns the current UTC simulation time in an array.
      float getStarBrightness()
      Gets the star brightness value.
      float getStarSize()
      Gets the current star size.
      java.lang.String getVersionNumber()
      Returns the version number string.
      void goToObject​(java.lang.String name)
      Runs a seamless trip to the object with the name focusName until the object view angle is 20 degrees.
      void goToObject​(java.lang.String name, double viewAngle)
      Runs a seamless trip to the object with the name focusName until the object view angle viewAngle is met.
      void goToObject​(java.lang.String name, double viewAngle, float waitTimeSeconds)
      Runs a seamless trip to the object with the name focusName until the object view angle viewAngle is met.
      void goToObjectInstant​(java.lang.String name)
      Sets the camera in focus mode with the given focus object and instantly moves the camera next to the focus object.
      boolean hasDataset​(java.lang.String dsName)
      Checks whether the dataset identified by the given name is loaded
      boolean hideDataset​(java.lang.String dsName)
      Hides the dataset identified by the given name, if it exists and is not hidden
      boolean highlightDataset​(java.lang.String dsName, boolean highlight)
      Enables or disables the dataset highlight, using a cyclic color which changes every call
      boolean highlightDataset​(java.lang.String dsName, int colorIndex, boolean highlight)
      Enables or disables the dataset highlight, using a given color index: 0 - red 1 - green 2 - blue 3 - cyan 4 - magenta 5 - yellow
      double[] internalCartesianToEquatorial​(double x, double y, double z)
      Converts internal cartesian coordinates to equatorial [ra, dec, distance] coordinates.
      boolean isFrameOutputActive()
      Is the frame output system on?
      boolean isRenderOutputActive()
      Deprecated. 
      boolean isSimulationTimeOn()
      Queries whether the time is on or not.
      void landOnObject​(java.lang.String name)
      Lands on the object with the given name, if it is an instance of Planet.
      void landOnObjectLocation​(java.lang.String name, double longitude, double latitude)
      Lands on the object with the given name, if it is an instance of Planet, at the location specified in by [latitude, longitude], in degrees.
      void landOnObjectLocation​(java.lang.String name, java.lang.String locationName)
      Lands on the object with the given name, if it is an instance of Planet, at the location with the given name, if it exists.
      java.util.List<java.lang.String> listDatasets()
      Returns the names of all datasets currently loaded
      boolean loadDataset​(java.lang.String dsName, java.lang.String absolutePath)
      Loads a VOTable file (.vot) with a given name.
      boolean loadDataset​(java.lang.String dsName, java.lang.String absolutePath, boolean sync)
      Loads a VOTable file (.vot) with a given name.
      void log​(java.lang.String message)
      Print text using the internal logging system
      void maximizeInterfaceWindow()
      Maximizes the interface window.
      void minimizeInterfaceWindow()
      Minimizes the interface window.
      void parkRunnable​(java.lang.String id, java.lang.Runnable runnable)
      Parks a Runnable to the main loop thread, and keeps it running every frame until it finishes or it is unparked by unparkRunnable(String).
      void pointAtSkyCoordinate​(double ra, double dec)
      Sets the camera in free mode and points it to the given coordinates in equatorial system
      void postRunnable​(java.lang.Runnable runnable)
      Posts a Runnable to the main loop thread.
      void preloadTexture​(java.lang.String path)
      Pre-loads the given image as a texture for later use.
      void preloadTextures​(java.lang.String[] paths)
      Pre-loads the given images as textures for later use.
      void print​(java.lang.String message)
      Print text using the internal logging system
      void removeAllObjects()
      Removes all objects.
      boolean removeDataset​(java.lang.String dsName)
      Removes the dataset identified by the given name, if it exists
      void removeModelObject​(java.lang.String name)
      Removes the model object identified by the given name from the internal scene graph model of Gaia Sky, if it exists.
      void removeObject​(int id)
      Removes the item with the given id.
      void removeObjects​(int[] ids)
      Removes the items with the given ids.
      void resetImageSequenceNumber()
      Resets to zero the image sequence number used to generate the file names of the frame output images.
      double[] rotate2​(double[] vector, double angle)
      Rotates a 2D vector by the specified angle in degrees, counter-clockwise assuming that the y axis points up.
      double[] rotate3​(double[] vector, double[] axis, double angle)
      Rotates a 3D vector around the given axis by the specified angle in degrees.
      void runCameraPath​(java.lang.String file)
      Runs a .gsc camera path file and returns immediately.
      void runCameraPath​(java.lang.String file, boolean sync)
      Runs a .gsc camera path file and returns immediately.
      void runCameraRecording​(java.lang.String file)
      Runs the camera recording file with the given path.
      void set360Mode​(boolean state)
      Enables and disables the 360 mode.
      void setAmbientLight​(float value)
      Sets the ambient light to a certain value.
      void setBloom​(float value)
      Sets the strength value for the bloom effect.
      void setBrightnessLevel​(double level)
      Sets the brightness level of the render system.
      void setCameraDirection​(double[] dir)
      Sets the camera direction vector to the given vector, equatorial system.
      void setCameraFocus​(java.lang.String focusName)
      Sets the camera in focus mode with the focus object that bears the given focusName.
      void setCameraFocus​(java.lang.String focusName, float waitTimeSeconds)
      Sets the camera in focus mode with the focus object that bears the given focusName.
      void setCameraFocusInstant​(java.lang.String focusName)
      Sets the camera in focus mode with the given focus object.
      void setCameraFocusInstantAndGo​(java.lang.String focusName)
      Sets the camera in focus mode with the given focus object and instantly moves the camera next to the focus object.
      void setCameraFov1()
      Sets the camera in FoV1 mode.
      void setCameraFov1and2()
      Sets the camera in Fov1 and 2 mode.
      void setCameraFov2()
      Sets the camera in FoV2 mode.
      void setCameraFree()
      Sets the camera in free mode.
      void setCameraLock​(boolean lock)
      Activates or deactivates the camera lock to the focus reference system when in focus mode.
      void setCameraOrientationLock​(boolean lock)
      Locks or unlocks the orientation of the camera to the focus object's rotation.
      void setCameraPosition​(double[] vec)
      Sets the camera position to the given coordinates, in Km, equatorial system.
      void setCameraPositionAndFocus​(java.lang.String focus, java.lang.String other, double rotation, double viewAngle)
      Sets the focus and instantly moves the camera to a point in the line defined by focus-other and rotated rotation degrees around focus using the camera up vector as a rotation axis.
      void setCameraPostion​(double[] vec)
      Deprecated.
      void setCameraSpeed​(float speed)
      Changes the speed multiplier of the camera and its acceleration
      void setCameraSpeedLimit​(int index)
      Sets the speed limit of the camera given an index.
      void setCameraState​(double[] pos, double[] dir, double[] up)
      Sets the camera state (position, direction and up vector).
      void setCameraStateAndTime​(double[] pos, double[] dir, double[] up, long time)
      Sets the camera state (position, direction and up vector) plus the current time.
      void setCameraUp​(double[] up)
      Sets the camera up vector to the given vector, equatorial system.
      void setCinematicCamera​(boolean cinematic)
      Enables or disables the cinematic camera mode.
      void setContrastLevel​(double level)
      Sets the contrast level of the render system.
      void setCrosshairVisibility​(boolean visible)
      Sets the visibility of the crosshair in focus and free modes.
      void setCubemapProjection​(java.lang.String projection)
      Sets the cubemap projection to use.
      void setCubemapResolution​(int resolution)
      Sets the resolution (width and height are the same) of each side of the frame buffers used to capture each of the 6 directions that go into the cubemap to construct the equirectangular image for the 360 mode.
      void setExposureToneMappingLevel​(double level)
      Sets the exposure level.
      void setFov​(float newFov)
      Changes the field of view of the camera.
      void setFrameOutput​(boolean active)
      Activates or deactivates the image output system.
      void setFrameOutputMode​(java.lang.String screenshotMode)
      Sets the frame output mode.
      void setGammaCorrectionLevel​(double level)
      Sets the gamma correction level.
      void setGuiPosition​(float x, float y)
      Moves the interface window to a new position.
      void setGuiScrollPosition​(float pixelY)
      Sets the vertical scroll position in the GUI.
      void setHDRToneMappingType​(java.lang.String type)
      Sets the high dynamic range tone mapping algorithm type.
      void setHeadlineMessage​(java.lang.String headline)
      Sets a headline message that will appear in a big font in the screen.
      void setHueLevel​(double level)
      Sets the hue level of the render system.
      void setLensFlare​(boolean state)
      Enables or deisables the lens flare effect.
      void setMinStarOpacity​(float opacity)
      Sets the minimum star opacity.
      void setMotionBlur​(boolean state)
      Enables or disables the motion blur effect.
      void setObjectSizeScaling​(java.lang.String name, double scalingFactor)
      Sets the given size scaling factor to the object identified by name.
      void setPlanetariumMode​(boolean state)
      Enables and disables the planetarium mode.
      void setProperMotionsArrowheads​(boolean arrowheadsEnabled)
      Sets whether to show arrowheads or not for the velocity vectors.
      void setProperMotionsColorMode​(int mode)
      Sets the color mode of proper motion vectors.
      void setProperMotionsLengthFactor​(float factor)
      Sets the length of the proper motion vectors, in [500..30000].
      void setProperMotionsMaxNumber​(long maxNumber)
      Overrides the maximum number of proper motion vectors that the program is allowed to show.
      void setProperMotionsNumberFactor​(float factor)
      Sets the number factor of proper motion vectors that are visible.
      void setRotationCameraSpeed​(float speed)
      Changes the speed of the camera when it rotates around a focus.
      void setSaturationLevel​(double level)
      Sets the saturation level of the render system.
      void setSimulationPace​(double pace)
      Changes the pace of time.
      void setSimulationTime​(int year, int month, int day, int hour, int min, int sec, int millisec)
      Sets the time of the application, in UTC.
      void setSimulationTime​(long time)
      Sets the time of the application.
      void setSmoothLodTransitions​(boolean value)
      Sets the value of smooth lod transitions, allowing or disallowing octant fade-ins of as they come into view.
      void setStarBrightness​(float brightness)
      Sets the star brightness value.
      void setStarGlow​(boolean state)
      Enables or disables the star glow effect.
      void setStarSize​(float size)
      Sets the star size value.
      void setStereoscopicMode​(boolean state)
      Enables and disables the stereoscopic mode.
      void setStereoscopicProfile​(int index)
      Changes the stereoscopic profile.
      void setSubheadMessage​(java.lang.String subhead)
      Sets a subhead message that will appear in a small font below the headline.
      void setTargetTime​(int year, int month, int day, int hour, int min, int sec, int millisec)
      Sets a time bookmark in the global clock that, when reached, the clock automatically stops.
      void setTargetTime​(long ms)
      Sets a time bookmark in the global clock that, when reached, the clock automatically stops.
      void setTurningCameraSpeed​(float speed)
      Changes the turning speed of the camera.
      void setVisibility​(java.lang.String key, boolean visible)
      Sets the component described by the given name visible or invisible.
      boolean showDataset​(java.lang.String dsName)
      Shows (un-hides) the dataset identified by the given name, if it exists and is hidden
      void sleep​(float seconds)
      Sleeps for the given number of seconds in the application time (FPS), so if we are capturing frames and the frame rate is set to 30 FPS, the command sleep(1) will put the script to sleep for 30 frames.
      void sleepFrames​(long frames)
      Sleeps for a number of frames.
      void startRecordingCameraPath()
      Starts recording the camera path to a temporary file.
      void startSimulationTime()
      Starts the simulation.
      void stopRecordingCameraPath()
      Stops the current camera recording.
      void stopSimulationTime()
      Stops the simulation time.
      void unparkRunnable​(java.lang.String id)
      Removes the runnable with the given id, if any
      void unsetTargetTime()
      Unsets the target time bookmark from the global clock, if any.
      boolean waitFocus​(java.lang.String name, long timeoutMs)
      Blocks the script until the focus is the object indicated by the name.
      void waitForEnter()
      Blocks the execution until the Enter key is pressed.
      void waitForInput()
      Blocks the execution until any kind of input (keyboard, mouse, etc.) is received.
      void waitForInput​(int code)
      Blocks the execution until the given key or button is pressed.
    • Method Detail

      • preloadTextures

        void preloadTextures​(java.lang.String[] paths)
        Pre-loads the given images as textures for later use. They will be cached for the subsequent uses.
        Parameters:
        paths - The texture paths.
      • preloadTexture

        void preloadTexture​(java.lang.String path)
        Pre-loads the given image as a texture for later use. The texture will be cached for later use.
        Parameters:
        path - The path of the image file to preload
      • activateRealTimeFrame

        void activateRealTimeFrame()
        Sets the current time frame to real time. All the commands executed after this command becomes active will be in the real time frame (clock ticks).
      • activateSimulationTimeFrame

        void activateSimulationTimeFrame()
        Sets the current time frame to simulation time. All the commands executed after this command becomes active will be in the simulation time frame (simulation clock in the app).
      • setHeadlineMessage

        void setHeadlineMessage​(java.lang.String headline)
        Sets a headline message that will appear in a big font in the screen.
        Parameters:
        headline - The headline text.
      • setSubheadMessage

        void setSubheadMessage​(java.lang.String subhead)
        Sets a subhead message that will appear in a small font below the headline.
        Parameters:
        subhead - The subhead text.
      • clearHeadlineMessage

        void clearHeadlineMessage()
        Clears the headline messge.
      • clearSubheadMessage

        void clearSubheadMessage()
        Clears the subhead message
      • clearAllMessages

        void clearAllMessages()
        Clears both the subhead and the headline messages.
      • displayMessageObject

        void displayMessageObject​(int id,
                                  java.lang.String message,
                                  float x,
                                  float y,
                                  float r,
                                  float g,
                                  float b,
                                  float a,
                                  float fontSize)
        Adds a new one-line message in the screen with the given id and the given coordinates. If an object already exists with the given id, it is removed. However, if a message object already exists with the same id, its properties are updated. The messages placed with this method will not appear in the screenshots/frames in advanced mode. This is intended for running interactively only.
        Parameters:
        id - A unique identifier, used to identify this message when you want to remove it.
        message - The string message, to be displayed in one line. But explicit newline breaks the line.
        x - The x coordinate of the bottom-left corner, in [0..1] from left to right. This is not resolution-dependant.
        y - The y coordinate of the bottom-left corner, in [0..1] from bottom to top. This is not resolution-dependant.
        r - The red component of the color in [0..1].
        g - The green component of the color in [0..1].
        b - The blue component of the color in [0..1].
        a - The alpha component of the color in [0..1].
        fontSize - The size of the font. The system will use the existing font closest to the chosen size and scale it up or down to match the desired size. Scaling can cause artifacts, so to ensure the best font quality, stick to the existing sizes.
      • displayTextObject

        void displayTextObject​(int id,
                               java.lang.String text,
                               float x,
                               float y,
                               float maxWidth,
                               float maxHeight,
                               float r,
                               float g,
                               float b,
                               float a,
                               float fontSize)
        Adds a new multi-line text in the screen with the given id, coordinates and size. If an object already exists with the given id, it is removed. However, if a text object already exists with the same id, its properties are updated. The texts placed with this method will not appear in the screenshots/frames in advanced mode. This is intended for running interactively only.
        Parameters:
        id - A unique identifier, used to identify this message when you want to remove it.
        text - The string message, to be displayed line-wrapped in the box defined by maxWidth and maxHeight. Explicit newline still breaks the line.
        x - The x coordinate of the bottom-left corner, in [0..1] from left to right. This is not resolution-dependant.
        y - The y coordinate of the bottom-left corner, in [0..1] from bottom to top. This is not resolution-dependant.
        maxWidth - The maximum width in screen percentage [0..1]. Set to 0 to let the system decide.
        maxHeight - The maximum height in screen percentage [0..1]. Set to 0 to let the system decide.
        r - The red component of the color in [0..1].
        g - The green component of the color in [0..1].
        b - The blue component of the color in [0..1].
        a - The alpha component of the color in [0..1].
        fontSize - The size of the font. The system will use the existing font closest to the chosen size.
      • displayImageObject

        void displayImageObject​(int id,
                                java.lang.String path,
                                float x,
                                float y)
        Adds a new image object at the given coordinates. If an object already exists with the given id, it is removed. However, if an image object already exists with the same id, its properties are updated.
        The messages placed with this method will not appear in the screenshots/frames in advanced mode. This is intended for running interactively only.
        Parameters:
        id - A unique identifier, used to identify this message when you want to remove it.
        path - The path to the image. It can either be an absolute path (not recommended) or a path relative to the Gaia Sandbox folder.
        x - The x coordinate of the bottom-left corner, in [0..1] from left to right. This is not resolution-dependant.
        y - The y coordinate of the bottom-left corner, in [0..1] from bottom to top. This is not resolution-dependant.
      • displayImageObject

        void displayImageObject​(int id,
                                java.lang.String path,
                                float x,
                                float y,
                                float r,
                                float g,
                                float b,
                                float a)
        Adds a new image object at the given coordinates. If an object already exists with the given id, it is removed. However, if an image object already exists with the same id, its properties are updated.
        Warning: This method will only work in the asynchronous mode. Run the script with the "asynchronous" check box activated!
        Parameters:
        id - A unique identifier, used to identify this message when you want to remove it.
        path - The path to the image. It can either be an absolute path (not recommended) or a path relative to the Gaia Sky folder.
        x - The x coordinate of the bottom-left corner, in [0..1] from left to right. This is not resolution-dependant.
        y - The y coordinate of the bottom-left corner, in [0..1] from bottom to top. This is not resolution-dependant.
        r - The red component of the color in [0..1].
        g - The green component of the color in [0..1].
        b - The blue component of the color in [0..1].
        a - The alpha component of the color in [0..1].
      • removeAllObjects

        void removeAllObjects()
        Removes all objects.
      • removeObject

        void removeObject​(int id)
        Removes the item with the given id.
        Parameters:
        id - Integer with the integer id of the object to remove.
      • removeObjects

        void removeObjects​(int[] ids)
        Removes the items with the given ids. They can either messages, images or whatever else.
        Parameters:
        ids - Vector with the integer ids of the objects to remove
      • disableInput

        void disableInput()
        Disables all input events from mouse, keyboard, touchscreen, etc.
      • enableInput

        void enableInput()
        Enables all input events.
      • setCinematicCamera

        void setCinematicCamera​(boolean cinematic)
        Enables or disables the cinematic camera mode.
        Parameters:
        cinematic - Whether to enable or disable the cinematic mode.
      • setCameraFocus

        void setCameraFocus​(java.lang.String focusName)
        Sets the camera in focus mode with the focus object that bears the given focusName. It returns immediately, so it does not wait for the camera direction to point to the focus.
        Parameters:
        focusName - The name of the new focus object.
      • setCameraFocus

        void setCameraFocus​(java.lang.String focusName,
                            float waitTimeSeconds)
        Sets the camera in focus mode with the focus object that bears the given focusName. The amount of time to block and wait for the camera to face the focus can also be specified in waitTimeSeconds.
        Parameters:
        focusName - The name of the new focus object.
        waitTimeSeconds - Maximum time in seconds to wait for the camera to face the focus. If negative, we wait indefinitely.
      • setCameraFocusInstant

        void setCameraFocusInstant​(java.lang.String focusName)
        Sets the camera in focus mode with the given focus object. It also instantly sets the camera direction vector to point towards the focus.
        Parameters:
        focusName - The name of the new focus object.
      • setCameraFocusInstantAndGo

        void setCameraFocusInstantAndGo​(java.lang.String focusName)
        Sets the camera in focus mode with the given focus object and instantly moves the camera next to the focus object.
        Parameters:
        focusName - The name of the new focus object.
      • setCameraLock

        void setCameraLock​(boolean lock)
        Activates or deactivates the camera lock to the focus reference system when in focus mode.
        Parameters:
        lock - Activate or deactivate the lock.
      • setCameraFree

        void setCameraFree()
        Sets the camera in free mode.
      • setCameraFov1

        void setCameraFov1()
        Sets the camera in FoV1 mode. The camera is positioned in Gaia's focal plane and observes what Gaia observes through its field of view 1.
      • setCameraFov2

        void setCameraFov2()
        Sets the camera in FoV2 mode. The camera is positioned in Gaia's focal plane and observes what Gaia observes through its field of view 2.
      • setCameraFov1and2

        void setCameraFov1and2()
        Sets the camera in Fov1 and 2 mode. The camera is positioned in Gaia's focal plane and observes what Gaia observes through its two fields of view.
      • setCameraPostion

        void setCameraPostion​(double[] vec)
        Deprecated.
        Sets the camera position to the given coordinates, in Km, equatorial system.
        Parameters:
        vec - Vector of three components in internal coordinates and Km.
      • setCameraPosition

        void setCameraPosition​(double[] vec)
        Sets the camera position to the given coordinates, in Km, equatorial system.
        Parameters:
        vec - Vector of three components in internal coordinates and Km.
      • getCameraPosition

        double[] getCameraPosition()
        Gets the current camera position, in km.
        Returns:
        The camera position coordinates in the internal reference system, in km.
      • setCameraDirection

        void setCameraDirection​(double[] dir)
        Sets the camera direction vector to the given vector, equatorial system.
        Parameters:
        dir - The direction vector in equatorial coordinates.
      • getCameraDirection

        double[] getCameraDirection()
        Gets the current camera direction vector.
        Returns:
        The camera direction vector in the internal reference system.
      • setCameraUp

        void setCameraUp​(double[] up)
        Sets the camera up vector to the given vector, equatorial system.
        Parameters:
        up - The up vector in equatorial coordinates.
      • getCameraUp

        double[] getCameraUp()
        Gets the current camera up vector.
        Returns:
        The camera up vector in the internal reference system.
      • setCameraPositionAndFocus

        void setCameraPositionAndFocus​(java.lang.String focus,
                                       java.lang.String other,
                                       double rotation,
                                       double viewAngle)
        Sets the focus and instantly moves the camera to a point in the line defined by focus-other and rotated rotation degrees around focus using the camera up vector as a rotation axis.
        Parameters:
        focus - The name of the focus object
        other - The name of the other object, to the fine a line from this to foucs. Usually a light source
        rotation - The rotation angle, in degrees
        viewAngle - The view angle which determines the distance, in degrees.
      • pointAtSkyCoordinate

        void pointAtSkyCoordinate​(double ra,
                                  double dec)
        Sets the camera in free mode and points it to the given coordinates in equatorial system
        Parameters:
        ra - Right ascension in degrees
        dec - Declination in degrees
      • setCameraSpeed

        void setCameraSpeed​(float speed)
        Changes the speed multiplier of the camera and its acceleration
        Parameters:
        speed - The new speed, from 1 to 100
      • getCameraSpeed

        double getCameraSpeed()
        Gets the current physical speed of the camera in km/h
        Returns:
        The current speed of the camera in km/h
      • setRotationCameraSpeed

        void setRotationCameraSpeed​(float speed)
        Changes the speed of the camera when it rotates around a focus.
        Parameters:
        speed - The new rotation speed, from 1 to 100.
      • setTurningCameraSpeed

        void setTurningCameraSpeed​(float speed)
        Changes the turning speed of the camera.
        Parameters:
        speed - The new turning speed, from 1 to 100.
      • setCameraSpeedLimit

        void setCameraSpeedLimit​(int index)
        Sets the speed limit of the camera given an index. The index corresponds to the following:
        • 0 - 100 Km/h
        • 1 - 1 c
        • 2 - 2 c
        • 3 - 10 c
        • 4 - 1e3 c
        • 5 - 1 AU/s
        • 6 - 10 AU/s
        • 7 - 1000 AU/s
        • 8 - 10000 AU/s
        • 9 - 1 pc/s
        • 10 - 1 pc/s
        • 11 - 2 pc/s
        • 12 - 10 pc/s
        • 13 - 1000 pc/s
        • 14 - unlimited
        Parameters:
        index - The index of the top speed.
      • setCameraOrientationLock

        void setCameraOrientationLock​(boolean lock)
        Locks or unlocks the orientation of the camera to the focus object's rotation.
        Parameters:
        lock - Whether to lock or unlock the camera orientation to the focus
      • cameraForward

        void cameraForward​(double value)
        Adds a forward movement to the camera with the given value. If value is negative the movement is backwards.
        Parameters:
        value - The magnitude of the movement, between -1 and 1.
      • cameraRotate

        void cameraRotate​(double deltaX,
                          double deltaY)
        Adds a rotation movement to the camera around the current focus, or a pitch/yaw if in free mode. If the camera is not using the cinematic behaviour (setCinematicCamera(boolean), the rotation movement will not be permanent. Use the cinematic behaviour to have the camera continue to rotate around the focus.
        Parameters:
        deltaX - The x component, between 0 and 1. Positive is right and negative is left.
        deltaY - The y component, between 0 and 1. Positive is up and negative is down.
      • cameraRoll

        void cameraRoll​(double roll)
        Adds a roll force to the camera.
        Parameters:
        roll - The intensity of the roll.
      • cameraTurn

        void cameraTurn​(double deltaX,
                        double deltaY)
        Adds a turn force to the camera (yaw and/or pitch). If the camera is in focus mode, it permanently deviates the line of sight from the focus until centered again. If the camera is not using the cinematic behaviour (setCinematicCamera(boolean), the turn will not be permanent. Use the cinematic behaviour to have the turn persist in time.
        Parameters:
        deltaX - The x component, between 0 and 1. Positive is right and negative is left.
        deltaY - The y component, between 0 and 1. Positive is up and negative is down.
      • cameraYaw

        void cameraYaw​(double amount)
        Adds a yaw to the camera. Same as cameraTurn(double, double) with deltaY set to zero.
        Parameters:
        amount -
      • cameraPitch

        void cameraPitch​(double amount)
        Adds a pitch to the camera. Same as cameraTurn(double, double) with deltaX set to zero.
        Parameters:
        amount -
      • cameraStop

        void cameraStop()
        Stops all camera motion.
      • cameraCenter

        void cameraCenter()
        Centers the camera to the focus, removing any deviation of the line of sight. Useful to center the focus object again after turning.
      • getClosestObjectToCamera

        IFocus getClosestObjectToCamera()
        Returns the closest object to the camera in this instant as a IFocus.
        Returns:
        The closest object to the camera
      • setFov

        void setFov​(float newFov)
        Changes the field of view of the camera.
        Parameters:
        newFov - The new field of view value in degrees, between 20 and 160.
      • setCameraState

        void setCameraState​(double[] pos,
                            double[] dir,
                            double[] up)
        Sets the camera state (position, direction and up vector).
        Parameters:
        pos - The position of the camera in internal units, not Km
        dir - The direction of the camera
        up - The up vector of the camera
      • setCameraStateAndTime

        void setCameraStateAndTime​(double[] pos,
                                   double[] dir,
                                   double[] up,
                                   long time)
        Sets the camera state (position, direction and up vector) plus the current time.
        Parameters:
        pos - The position of the camera in internal units, not Km
        dir - The direction of the camera
        up - The up vector of the camera
        time - The new time of the camera as the number of milliseconds since the epoch (Jan 1, 1970)
      • setVisibility

        void setVisibility​(java.lang.String key,
                           boolean visible)
        Sets the component described by the given name visible or invisible.
        Parameters:
        key - The key of the component, see ComponentTypes.ComponentType. Usually 'element.stars', 'element.moons', 'element.atmospheres', etc.
        visible - The visible value.
      • setProperMotionsNumberFactor

        void setProperMotionsNumberFactor​(float factor)
        Sets the number factor of proper motion vectors that are visible. In [1..100].
        Parameters:
        factor - Factor in [1..100]
      • setProperMotionsLengthFactor

        void setProperMotionsLengthFactor​(float factor)
        Sets the length of the proper motion vectors, in [500..30000].
        Parameters:
        factor - Factor in [500.30000]
      • setProperMotionsColorMode

        void setProperMotionsColorMode​(int mode)
        Sets the color mode of proper motion vectors.
        Parameters:
        mode - The color mode:
        • 0 - direction: the normalised cartesian velocity components XYZ are mapped to the color channels RGB
        • 1 - magnitude (speed): the magnitude of the velocity vector is mapped using a rainbow scheme (blue-green-yellow-red) with the color map limit at 100 Km/s
        • 2 - has radial velocity: blue for stars with radial velocity, red for stars without
        • 3 - redshift from Sun: blue stars have negative radial velocity (from the Sun), red stars have positive radial velocity (from the Sun). Blue is mapped to -100 Km/s, red is mapped to 100 Km/s
        • 4 - redshift from camera: blue stars have negative radial velocity (from the camera), red stars have positive radial velocity (from the camera). Blue is mapped to -100 Km/s, red is mapped to 100 Km/s
        • 5 - single color: same color for all velocity vectors
      • setProperMotionsArrowheads

        void setProperMotionsArrowheads​(boolean arrowheadsEnabled)
        Sets whether to show arrowheads or not for the velocity vectors.
        Parameters:
        arrowheadsEnabled - Whether to show the velocity vectors with arrowheads.
      • setProperMotionsMaxNumber

        void setProperMotionsMaxNumber​(long maxNumber)
        Overrides the maximum number of proper motion vectors that the program is allowed to show.
        Parameters:
        maxNumber - The maximum number of proper motion vectors. Negative to use default
      • getProperMotionsMaxNumber

        long getProperMotionsMaxNumber()
        Returns the current maximum number of proper motion vectors allowed.
        Returns:
        Max number of pm vectors
      • setCrosshairVisibility

        void setCrosshairVisibility​(boolean visible)
        Sets the visibility of the crosshair in focus and free modes.
        Parameters:
        visible - The visibility state.
      • setAmbientLight

        void setAmbientLight​(float value)
        Sets the ambient light to a certain value.
        Parameters:
        value - The value of the ambient light, between 0 and 100.
      • setSimulationTime

        void setSimulationTime​(int year,
                               int month,
                               int day,
                               int hour,
                               int min,
                               int sec,
                               int millisec)
        Sets the time of the application, in UTC.
        Parameters:
        year - The year to represent
        month - The month-of-year to represent, from 1 (January) to 12 (December)
        day - The day-of-month to represent, from 1 to 31
        hour - The hour-of-day to represent, from 0 to 23
        min - The minute-of-hour to represent, from 0 to 59
        sec - The second-of-minute to represent, from 0 to 59
        millisec - The millisecond-of-second, from 0 to 999
      • setSimulationTime

        void setSimulationTime​(long time)
        Sets the time of the application. The long value represents specified number of milliseconds since the standard base time known as "the epoch", namely January 1, 1970, 00:00:00 GMT.
        Parameters:
        time - Number of milliseconds since the epoch (Jan 1, 1970)
      • getSimulationTime

        long getSimulationTime()
        Returns the current simulation time as the number of milliseconds since Jan 1, 1970 GMT.
        Returns:
        Number of milliseconds since the epoch (Jan 1, 1970)
      • getSimulationTimeArr

        int[] getSimulationTimeArr()
        Returns the current UTC simulation time in an array.
        Returns:
        The current simulation time in an array with the given indices.
        • 0 - The year
        • 1 - The month, from 1 (January) to 12 (December)
        • 2 - The day-of-month, from 1 to 31
        • 3 - The hour-of-day, from 0 to 23
        • 4 - The minute-of-hour, from 0 to 59
        • 5 - The second-of-minute, from 0 to 59
        • 6 - The millisecond-of-second, from 0 to 999
      • startSimulationTime

        void startSimulationTime()
        Starts the simulation.
      • stopSimulationTime

        void stopSimulationTime()
        Stops the simulation time.
      • isSimulationTimeOn

        boolean isSimulationTimeOn()
        Queries whether the time is on or not.
        Returns:
        True if the time is on, false otherwise.
      • setSimulationPace

        void setSimulationPace​(double pace)
        Changes the pace of time.
        Parameters:
        pace - The pace as a factor of real physical time pace. 2.0 sets the pace to be twice as fast as real time.
      • setTargetTime

        void setTargetTime​(long ms)
        Sets a time bookmark in the global clock that, when reached, the clock automatically stops.
        Parameters:
        ms - The time as the number of milliseconds since the epoch (Jan 1, 1970)
      • setTargetTime

        void setTargetTime​(int year,
                           int month,
                           int day,
                           int hour,
                           int min,
                           int sec,
                           int millisec)
        Sets a time bookmark in the global clock that, when reached, the clock automatically stops.
        Parameters:
        year - The year to represent
        month - The month-of-year to represent, from 1 (January) to 12 (December)
        day - The day-of-month to represent, from 1 to 31
        hour - The hour-of-day to represent, from 0 to 23
        min - The minute-of-hour to represent, from 0 to 59
        sec - The second-of-minute to represent, from 0 to 59
        millisec - The millisecond-of-second, from 0 to 999
      • unsetTargetTime

        void unsetTargetTime()
        Unsets the target time bookmark from the global clock, if any.
      • getStarBrightness

        float getStarBrightness()
        Gets the star brightness value.
        Returns:
        The brightness value, between 0 and 100.
      • setStarBrightness

        void setStarBrightness​(float brightness)
        Sets the star brightness value.
        Parameters:
        brightness - The brightness value, between 0 and 100.
      • getStarSize

        float getStarSize()
        Gets the current star size.
        Returns:
        The size value, between 0 and 100.
      • setStarSize

        void setStarSize​(float size)
        Sets the star size value.
        Parameters:
        size - The size value, between 0 and 100.
      • getMinStarOpacity

        float getMinStarOpacity()
        Gets the minimum star opacity.
        Returns:
        The minimum opacity value, between 0 and 100.
      • setMinStarOpacity

        void setMinStarOpacity​(float opacity)
        Sets the minimum star opacity.
        Parameters:
        opacity - The minimum opacity value, between 0 and 100.
      • configureRenderOutput

        void configureRenderOutput​(int width,
                                   int height,
                                   int fps,
                                   java.lang.String folder,
                                   java.lang.String namePrefix)
        Deprecated.
        Configures the frame output system, setting the resolution of the images, the target frames per second, the output folder and the image name prefix.
        Parameters:
        width - Width of images.
        height - Height of images.
        fps - Target frames per second (number of images per second).
        folder - The output folder path.
        namePrefix - The file name prefix.
      • configureFrameOutput

        void configureFrameOutput​(int width,
                                  int height,
                                  int fps,
                                  java.lang.String folder,
                                  java.lang.String namePrefix)
        Configures the frame output system, setting the resolution of the images, the target frames per second, the output folder and the image name prefix. This function sets the frame output mode to 'redraw'.
        Parameters:
        width - Width of images.
        height - Height of images.
        fps - Target frames per second (number of images per second).
        folder - The output folder path.
        namePrefix - The file name prefix.
      • setFrameOutputMode

        void setFrameOutputMode​(java.lang.String screenshotMode)
        Sets the frame output mode. Possible values are 'redraw' or 'simple'. Simple mode is faster and just outputs the last frame rendered to the Gaia Sky window, with the same resolution and containing the UI elements. Redraw mode redraws the last frame using the resolution configured using configureFrameOutput(int, int, int, String, String) and it does not draw the UI elements.
        Parameters:
        screenshotMode - The screenshot mode. 'simple' or 'redraw'.
      • isRenderOutputActive

        boolean isRenderOutputActive()
        Deprecated.
        Is the frame output system on?
        Returns:
        True if the frame output is active.
      • isFrameOutputActive

        boolean isFrameOutputActive()
        Is the frame output system on?
        Returns:
        True if the render output is active.
      • getRenderOutputFps

        int getRenderOutputFps()
        Deprecated.
        Gets the current FPS setting in the frame output system.
        Returns:
        The FPS setting.
      • getFrameOutputFps

        int getFrameOutputFps()
        Gets the current FPS setting in the frame output system.
        Returns:
        The FPS setting.
      • setFrameOutput

        void setFrameOutput​(boolean active)
        Activates or deactivates the image output system. If called with true, the system starts outputting images right away.
        Parameters:
        active - Whether to activate or deactivate the frame output system.
      • getObject

        SceneGraphNode getObject​(java.lang.String name)
        Gets an object from the scene graph by name or id (HIP, TYC, Gaia SourceId).
        Parameters:
        name - The name or id (HIP, TYC, Gaia SourceId) of the object.
        Returns:
        The object as a SceneGraphNode, or null if it does not exist.
      • getObject

        SceneGraphNode getObject​(java.lang.String name,
                                 double timeOutSeconds)
        Gets an object by name or id (HIP, TYC, Gaia SourceID), optionally waiting until the object is available, with a timeout.
        Parameters:
        name - The name or id (HIP, TYC, Gaia SourceId) of the object
        timeOutSeconds - The timeout in seconds to wait until returning. If negative, it waits indefinitely.
        Returns:
        The object if it exists, or null if it does not and block is false, or if block is true and the timeout has passed.
      • setObjectSizeScaling

        void setObjectSizeScaling​(java.lang.String name,
                                  double scalingFactor)
        Sets the given size scaling factor to the object identified by name. This method will only work with model objects such as planets, asteroids, satellites etc. It will not work with orbits, stars or any other types.

        Also, use this with caution, as scaling the size of objects can have unintended side effects, and remember to set the scaling back to 1.0 at the end of your script.

        Parameters:
        name - The name or id (HIP, TYC, sourceId) of the object.
        scalingFactor - The scaling factor to scale the size of that object.
      • getObjectRadius

        double getObjectRadius​(java.lang.String name)
        Gets the size of the object identified by name, in Km, by name or id (HIP, TYC, sourceId).
        Parameters:
        name - The name or id (HIP, TYC, sourceId) of the object.
        Returns:
        The radius of the object in Km. If the object identifed by name or id (HIP, TYC, sourceId). does not exist, it returns a negative value.
      • goToObject

        void goToObject​(java.lang.String name)
        Runs a seamless trip to the object with the name focusName until the object view angle is 20 degrees.
        Parameters:
        name - The name or id (HIP, TYC, sourceId) of the object.
      • goToObject

        void goToObject​(java.lang.String name,
                        double viewAngle)
        Runs a seamless trip to the object with the name focusName until the object view angle viewAngle is met. If angle is negative, the default angle is 20 degrees.
        Parameters:
        name - The name or id (HIP, TYC, sourceId) of the object.
        viewAngle - The target view angle of the object, in degrees. The angle gets larger and larger as we approach the object.
      • goToObject

        void goToObject​(java.lang.String name,
                        double viewAngle,
                        float waitTimeSeconds)
        Runs a seamless trip to the object with the name focusName until the object view angle viewAngle is met. If angle is negative, the default angle is 20 degrees. If waitTimeSeconds is positive, it indicates the number of seconds to wait (block the function) for the camera to face the focus before starting the forward movement. This very much depends on the turn velocity of the camera. See setTurningCameraSpeed(float).
        Parameters:
        name - The name or id (HIP, TYC, sourceId) of the object.
        viewAngle - The target view angle of the object, in degrees. The angle gets larger and larger as we approach the object.
        waitTimeSeconds - The seconds to wait for the camera direction vector and the vector from the camera position to the target object to be aligned.
      • goToObjectInstant

        void goToObjectInstant​(java.lang.String name)
        Sets the camera in focus mode with the given focus object and instantly moves the camera next to the focus object.
        Parameters:
        name - The name of the new focus object.
      • landOnObject

        void landOnObject​(java.lang.String name)
        Lands on the object with the given name, if it is an instance of Planet. The land location is determined by the line of sight from the current position of the camera to the object.
        Parameters:
        name - The proper name of the object.
      • landOnObjectLocation

        void landOnObjectLocation​(java.lang.String name,
                                  java.lang.String locationName)
        Lands on the object with the given name, if it is an instance of Planet, at the location with the given name, if it exists.
        Parameters:
        name - The proper name of the object.
        locationName - The name of the location to land on
      • landOnObjectLocation

        void landOnObjectLocation​(java.lang.String name,
                                  double longitude,
                                  double latitude)
        Lands on the object with the given name, if it is an instance of Planet, at the location specified in by [latitude, longitude], in degrees.
        Parameters:
        name - The proper name of the object.
        longitude - The location longitude, in degrees.
        latitude - The location latitude, in degrees.
      • getDistanceTo

        double getDistanceTo​(java.lang.String name)
        Returns the distance to the surface of the object identified with the given name. If the object is an abstract node or does not exist, it returns a negative distance.
        Parameters:
        name - The name or id (HIP, TYC, sourceId) of the object.
        Returns:
        The distance to the object in km if it exists, a negative value otherwise.
      • getObjectPosition

        double[] getObjectPosition​(java.lang.String name)
        Gets the current position of the object identified by name in the internal coordinate system and internal units. If the object does not exist, it returns null
        Parameters:
        name - The name or id (HIP, TYC, sourceId) of the object.
        Returns:
        A 3-vector with the object's position in the internal reference system.
      • addPolyline

        void addPolyline​(java.lang.String name,
                         double[] points,
                         double[] color)
        Adds a new polyline with the given name, points and color. The polyline will be created with the 'Others' component type, so you need to enable the visibility of 'Others' in order to see it.
        Parameters:
        name - The name to identify the polyline, to possibly remove it later.
        points - The points of the polyline. It is an array containing all the points as in [x0, y0, z0, x1, y1, z1, ..., xn, yn, zn].
        color - A 4D array with the RGBA color, where each element is in [0..1].
      • addPolyline

        void addPolyline​(java.lang.String name,
                         double[] points,
                         double[] color,
                         float lineWidth)
        Adds a new polyline with the given name, points, color and line width. The polyline will be created with the 'Others' component type, so you need to enable the visibility of 'Others' in order to see it.
        Parameters:
        name - The name to identify the polyline, to possibly remove it later.
        points - The points of the polyline. It is an array containing all the points as in [x0, y0, z0, x1, y1, z1, ..., xn, yn, zn].
        color - A 4D array with the RGBA color, where each element is in [0..1].
        lineWidth - The line width. Usually a value between 1 (default) and 10.
      • removeModelObject

        void removeModelObject​(java.lang.String name)

        Removes the model object identified by the given name from the internal scene graph model of Gaia Sky, if it exists. If the object has children, they are removed recursively. Be careful with this function, as it can have unexpected side effects depending on what objects are removed. For example,

        gs.removeModelObject("Earth")

        removes the Earth, the Moon, Gaia and any dependent object from Gaia Sky.

        Parameters:
        name - The name of the object to remove.
      • setGuiScrollPosition

        void setGuiScrollPosition​(float pixelY)
        Sets the vertical scroll position in the GUI.
        Parameters:
        pixelY - The pixel to set the scroll position to.
      • enableGui

        void enableGui()
        Enables the GUI rendering. This makes the user interface to be rendered and updated again if it was previously disabled. Otherwise, it has no effect.
      • disableGui

        void disableGui()
        Disables the GUI rendering. This causes the user interface to no longer be rendered or updated.
      • maximizeInterfaceWindow

        void maximizeInterfaceWindow()
        Maximizes the interface window.
      • minimizeInterfaceWindow

        void minimizeInterfaceWindow()
        Minimizes the interface window.
      • setGuiPosition

        void setGuiPosition​(float x,
                            float y)
        Moves the interface window to a new position.
        Parameters:
        x - The new x coordinate of the new top-left corner of the window, in [0..1] from left to right.
        y - The new y coordinate of the new top-left corner of the window, in [0..1] from bottom to top.
      • waitForInput

        void waitForInput()
        Blocks the execution until any kind of input (keyboard, mouse, etc.) is received.
      • waitForEnter

        void waitForEnter()
        Blocks the execution until the Enter key is pressed.
      • waitForInput

        void waitForInput​(int code)
        Blocks the execution until the given key or button is pressed.
        Parameters:
        code - The key or button code. Please see Input.
      • getScreenWidth

        int getScreenWidth()
        Returns the screen width in pixels.
        Returns:
        The screen width in pixels.
      • getScreenHeight

        int getScreenHeight()
        Returns the screen height in pixels.
        Returns:
        The screen height in pixels.
      • getPositionAndSizeGui

        float[] getPositionAndSizeGui​(java.lang.String name)
        Returns the size and position of the GUI element that goes by the given name or null if such element does not exist. Warning> This will only work in asynchronous mode.
        Parameters:
        name - The name of the gui element.
        Returns:
        A vector of floats with the position (0, 1) of the bottom left corner in pixels from the bottom-left of the screen and the size (2, 3) in pixels of the element.
      • getVersionNumber

        java.lang.String getVersionNumber()
        Returns the version number string.
        Returns:
        The version number string.
      • waitFocus

        boolean waitFocus​(java.lang.String name,
                          long timeoutMs)
        Blocks the script until the focus is the object indicated by the name. There is an optional time out.
        Parameters:
        name - The name of the focus to wait for
        timeoutMs - Timeout in ms to wait. Set negative to disable timeout.
        Returns:
        True if the timeout ran out. False otherwise.
      • startRecordingCameraPath

        void startRecordingCameraPath()
        Starts recording the camera path to a temporary file. This command has no effect if the camera is already being recorded.
      • stopRecordingCameraPath

        void stopRecordingCameraPath()
        Stops the current camera recording. This command has no effect if the camera was not being recorded.
      • runCameraRecording

        void runCameraRecording​(java.lang.String file)
        Runs the camera recording file with the given path. Does not wait for the camera file to finish playing.
        Parameters:
        file - The path of the camera file. Path is relative to the application's root directory or absolute.
      • runCameraPath

        void runCameraPath​(java.lang.String file)
        Runs a .gsc camera path file and returns immediately. This function does not wait for the camera file to finish playing.
        Parameters:
        file - The path to the camera file. Path is relative to the application's root directory or absolute.
      • runCameraPath

        void runCameraPath​(java.lang.String file,
                           boolean sync)
        Runs a .gsc camera path file and returns immediately. This function accepts a boolean indicating whether to wait for the camera path file to finish or not.
        Parameters:
        file - The path to the camera file. Path is relative to the application's root directory or absolute.
        sync - If true, the call is synchronous and waits for the camera file to finish. Otherwise, it returns immediately.
      • cameraTransition

        void cameraTransition​(double[] camPos,
                              double[] camDir,
                              double[] camUp,
                              double seconds)
        Creates a smooth transition from the current camera state to the given camera state {camPos, camDir, camUp} in the given number of seconds. This function waits for the transition to finish and then returns control to the script. This function will put the camera in free mode, so make sure to change it afterwards if you need to. Also, this only works with the natural camera.
        Parameters:
        camPos - The target camera position in the internal reference system.
        camDir - The target camera direction in the internal reference system.
        camUp - The target camera up in the internal reference system.
        seconds - The duration of the transition in seconds.
      • cameraTransition

        void cameraTransition​(double[] camPos,
                              double[] camDir,
                              double[] camUp,
                              double seconds,
                              boolean sync)
        Creates a smooth transition from the current camera state to the given camera state {camPos, camDir, camUp} in the given number of seconds. Optionally, the transition may be run synchronously or asynchronously to the current script. This function will put the camera in free mode, so make sure to change it afterwards if you need to. Also, this only works with the natural camera.
        Parameters:
        camPos - The target camera position in the internal reference system.
        camDir - The target camera direction in the internal reference system.
        camUp - The target camera up in the internal reference system.
        seconds - The duration of the transition in seconds.
        sync - If true, the call waits for the transition to finish before returning, otherwise it returns immediately
      • sleep

        void sleep​(float seconds)
        Sleeps for the given number of seconds in the application time (FPS), so if we are capturing frames and the frame rate is set to 30 FPS, the command sleep(1) will put the script to sleep for 30 frames.
        Parameters:
        seconds - The number of seconds to wait.
      • sleepFrames

        void sleepFrames​(long frames)
        Sleeps for a number of frames. This is very useful for scripts which need to run alongside the frame output system.
        Parameters:
        frames - The number of frames to wait.
      • expandGuiComponent

        void expandGuiComponent​(java.lang.String name)
        Expands the component with the given name.
        Parameters:
        name - The name, as in `CameraComponent` or `ObjectsComponent`
      • collapseGuiComponent

        void collapseGuiComponent​(java.lang.String name)
        Collapses the component with the given name.
        Parameters:
        name - The name, as in `CameraComponent` or `ObjectsComponent`
      • galacticToInternalCartesian

        double[] galacticToInternalCartesian​(double l,
                                             double b,
                                             double r)
        Converts galactic coordinates to the internal cartesian coordinate system.
        Parameters:
        l - The galactic longitude in degrees.
        b - The galactic latitude in degrees.
        r - The distance in Km.
        Returns:
        An array of doubles containing [x, y, z] in the internal reference system, in internal units.
      • eclipticToInternalCartesian

        double[] eclipticToInternalCartesian​(double l,
                                             double b,
                                             double r)
        Converts ecliptic coordinates to the internal cartesian coordinate system.
        Parameters:
        l - The ecliptic longitude in degrees.
        b - The ecliptic latitude in degrees.
        r - The distance in Km.
        Returns:
        An array of doubles containing [x, y, z] in the internal reference system, in internal units.
      • equatorialToInternalCartesian

        double[] equatorialToInternalCartesian​(double ra,
                                               double dec,
                                               double r)
        Converts equatorial coordinates to the internal cartesian coordinate system.
        Parameters:
        ra - The right ascension in degrees.
        dec - The declination in degrees.
        r - The distance in Km.
        Returns:
        An array of doubles containing [x, y, z] in the internal reference system, in internal units.
      • internalCartesianToEquatorial

        double[] internalCartesianToEquatorial​(double x,
                                               double y,
                                               double z)
        Converts internal cartesian coordinates to equatorial [ra, dec, distance] coordinates.
        Parameters:
        x - The x component, in any distance units.
        y - The y component, in any distance units.
        z - The z component, in any distance units.
        Returns:
        An array of doubles containing [ra, dec, distance] with ra and dec in degrees and distance in the same distance units as the input position.
      • equatorialToGalactic

        double[] equatorialToGalactic​(double[] eq)
        Converts equatorial cartesian coordinates (in the internal reference system) to galactic cartesian coordinates.
        Parameters:
        eq - Vector with [x, y, z] equatorial cartesian coordinates
        Returns:
        Vector with [x, y, z] galactic cartesian coordinates
      • equatorialToEcliptic

        double[] equatorialToEcliptic​(double[] eq)
        Converts equatorial cartesian coordinates (in the internal reference system) to ecliptic cartesian coordinates.
        Parameters:
        eq - Vector with [x, y, z] equatorial cartesian coordinates
        Returns:
        Vector with [x, y, z] ecliptic cartesian coordinates
      • galacticToEquatorial

        double[] galacticToEquatorial​(double[] gal)
        Converts galactic cartesian coordinates (in the internal reference system) to equatorial cartesian coordinates.
        Parameters:
        gal - Vector with [x, y, z] galactic cartesian coordinates
        Returns:
        Vector with [x, y, z] equatorial cartesian coordinates
      • eclipticToEquatorial

        double[] eclipticToEquatorial​(double[] ecl)
        Converts ecliptic cartesian coordinates (in the internal reference system) to equatorial cartesian coordinates.
        Parameters:
        ecl - Vector with [x, y, z] ecliptic cartesian coordinates
        Returns:
        Vector with [x, y, z] equatorial cartesian coordinates
      • setBrightnessLevel

        void setBrightnessLevel​(double level)
        Sets the brightness level of the render system.
        Parameters:
        level - The brightness level as a double precision floating point number in [-1..1]. The neutral value is 0.0.
      • setContrastLevel

        void setContrastLevel​(double level)
        Sets the contrast level of the render system.
        Parameters:
        level - The contrast level as a double precision floating point number in [0..2]. The neutral value is 1.0.
      • setHueLevel

        void setHueLevel​(double level)
        Sets the hue level of the render system.
        Parameters:
        level - The hue level as a double precision floating point number in [0..2]. The neutral value is 1.0.
      • setSaturationLevel

        void setSaturationLevel​(double level)
        Sets the saturation level of the render system.
        Parameters:
        level - The saturation level as a double precision floating point number in [0..2]. The neutral value is 1.0.
      • setGammaCorrectionLevel

        void setGammaCorrectionLevel​(double level)
        Sets the gamma correction level.
        Parameters:
        level - The gamma correction level in [0..3] as a floating point number. The neutral value is 1.2.
      • setHDRToneMappingType

        void setHDRToneMappingType​(java.lang.String type)
        Sets the high dynamic range tone mapping algorithm type. The types can be:
        • "auto" - performs an automatic HDR tone mapping based on the current luminosity of the scene
        • "exposure" - performs an exposure-based HDR tone mapping. The exposure value must be set with setExposureToneMappingLevel(double)
        • "aces" - performs the ACES tone mapping
        • "uncharted" - performs the tone mapping implemented in Uncharted
        • "filmic" - performs a filmic tone mapping
        • "none" - no HDR tone mapping
        Parameters:
        type - The HDR tone mapping type. One of ["auto"|"exposure"|"aces"|"uncharted"|"filmic"|"none"].
      • setExposureToneMappingLevel

        void setExposureToneMappingLevel​(double level)
        Sets the exposure level.
        Parameters:
        level - The exposure level in [0..n]. Set to 0 to disable exposure tone mapping.
      • setPlanetariumMode

        void setPlanetariumMode​(boolean state)
        Enables and disables the planetarium mode.
        Parameters:
        state - The boolean sate. True to activate, false to deactivate.
      • set360Mode

        void set360Mode​(boolean state)
        Enables and disables the 360 mode.
        Parameters:
        state - The boolean sate. True to activate, false to deactivate.
      • setCubemapResolution

        void setCubemapResolution​(int resolution)
        Sets the resolution (width and height are the same) of each side of the frame buffers used to capture each of the 6 directions that go into the cubemap to construct the equirectangular image for the 360 mode. This should roughly be 1/3 of the output resolution at which the 360 mode are to be captured (or screen resolution).
        Parameters:
        resolution - The resolution of each of the sides of the cubemap for the 360 mode.
      • setCubemapProjection

        void setCubemapProjection​(java.lang.String projection)
        Sets the cubemap projection to use. Accepted values are "EQUIRECTANGULAR", "CYLINDRICAL" and "HAMMER". See com.bitfire.postprocessing.effects.CubemapProjections.CubemapProjection for possible values.
        Parameters:
        projection -
      • setStereoscopicMode

        void setStereoscopicMode​(boolean state)
        Enables and disables the stereoscopic mode.
        Parameters:
        state - The boolean sate. True to activate, false to deactivate.
      • setStereoscopicProfile

        void setStereoscopicProfile​(int index)
        Changes the stereoscopic profile.
        Parameters:
        index - The index of the new profile:
        • 0 - VR_HEADSET
        • 1 - HD_3DTV
        • 2 - CROSSEYE
        • 3 - PARALLEL_VIEW
        • 4 - ANAGLYPHIC (red-cyan)
      • getCurrentFrameNumber

        long getCurrentFrameNumber()
        Gets the current frame number. Useful for timing actions in scripts.
        Returns:
        The current frame number
      • setLensFlare

        void setLensFlare​(boolean state)
        Enables or deisables the lens flare effect.
        Parameters:
        state - Activate (true) or deactivate (false)
      • setMotionBlur

        void setMotionBlur​(boolean state)
        Enables or disables the motion blur effect.
        Parameters:
        state - Activate (true) or deactivate (false)
      • setStarGlow

        void setStarGlow​(boolean state)
        Enables or disables the star glow effect.
        Parameters:
        state - Activate (true) or deactivate (false)
      • setBloom

        void setBloom​(float value)
        Sets the strength value for the bloom effect.
        Parameters:
        value - Bloom strength between 0 and 100. Set to 0 to deactivate the bloom.
      • setSmoothLodTransitions

        void setSmoothLodTransitions​(boolean value)
        Sets the value of smooth lod transitions, allowing or disallowing octant fade-ins of as they come into view.
        Parameters:
        value - Activate (true) or deactivate (false)
      • resetImageSequenceNumber

        void resetImageSequenceNumber()
        Resets to zero the image sequence number used to generate the file names of the frame output images.
      • getDefaultFramesDir

        java.lang.String getDefaultFramesDir()
        Gets the absolute path of the default directory where the still frames are saved
        Returns:
        Absolute path of directory where still frames are saved
      • getDefaultScreenshotsDir

        java.lang.String getDefaultScreenshotsDir()
        Gets the absolute path of the default directory where the screenshots are saved
        Returns:
        Absolute path of directory where screenshots are saved
      • getDefaultCameraDir

        java.lang.String getDefaultCameraDir()
        Gets the absolute path of the default directory where the camera files are saved
        Returns:
        Absolute path of directory where camera files are saved
      • getDefaultMusicDir

        java.lang.String getDefaultMusicDir()
        Gets the absolute path to the location of the music files
        Returns:
        Absolute path to the location of the music files
      • getDefaultMappingsDir

        java.lang.String getDefaultMappingsDir()
        Gets the absolute path to the location of the inputListener mappings
        Returns:
        Absolute path to the location of the inputListener mappings
      • getDataDir

        java.lang.String getDataDir()
        Gets the absolute path of the local data directory, configured in your global.properties file
        Returns:
        Absolute path to the location of the data files
      • getConfigDir

        java.lang.String getConfigDir()
        Gets the absolute path to the location of the configuration directory
        Returns:
        Absolute path of config directory
      • getLocalDataDir

        java.lang.String getLocalDataDir()
        Returns the default data directory. That is ~/.gaiasky/ in Windows and macOS, and ~/.local/share/gaiasky in Linux.
        Returns:
        Absolute path of data directory
      • postRunnable

        void postRunnable​(java.lang.Runnable runnable)
        Posts a Runnable to the main loop thread. The runnable runs only once. This will execute the runnable right after the current update-render cycle has finished.
        Parameters:
        runnable - The runnable to run
      • parkRunnable

        void parkRunnable​(java.lang.String id,
                          java.lang.Runnable runnable)
        Parks a Runnable to the main loop thread, and keeps it running every frame until it finishes or it is unparked by unparkRunnable(String). Be careful with this function, as it probably needs a cleanup before the script is finished. Otherwise, all parked runnables will keep running until Gaia Sky is restarted, so make sure to remove them with unparkRunnable(String) if needed.
        Parameters:
        id - The string id to identify the runnable
        runnable - The runnable to park
      • unparkRunnable

        void unparkRunnable​(java.lang.String id)
        Removes the runnable with the given id, if any
        Parameters:
        id - The id of the runnable to remove
      • loadDataset

        boolean loadDataset​(java.lang.String dsName,
                            java.lang.String absolutePath)
        Loads a VOTable file (.vot) with a given name. In this version, the loading happens synchronously, so the catalog is available to Gaia Sky immediately after this call returns. The actual loading process is carried out making educated guesses about semantics using UCDs and column names. Please check the official documentation for a complete reference on what can and what can't be loaded.
        Parameters:
        dsName - The name of the dataset, used to identify the subsequent operations on the dataset
        absolutePath - Absolute path to the .vot file to load
        Returns:
        False if the dataset could not be loaded, true otherwise
      • loadDataset

        boolean loadDataset​(java.lang.String dsName,
                            java.lang.String absolutePath,
                            boolean sync)
        Loads a VOTable file (.vot) with a given name. The call can be made synchronous or asynchronous.
        If sync is true, the call acts exactly like loadDataset(String, String).
        If sync is false, the loading happens in a new thread and the call returns immediately. In this case, you can use hasDataset(String) to check whether the dataset is already loaded and available. The actual loading process is carried out making educated guesses about semantics using UCDs and column names. Please check the official documentation for a complete reference on what can and what can't be loaded.
        Parameters:
        dsName - The name of the dataset, used to identify the subsequent operations on the dataset
        absolutePath - Absolute path to the .vot file to load
        sync - Whether the load must happen synchronously or asynchronously
        Returns:
        False if the dataset could not be loaded (sync mode). True if it could not be loaded (sync mode), or sync is false
      • removeDataset

        boolean removeDataset​(java.lang.String dsName)
        Removes the dataset identified by the given name, if it exists
        Parameters:
        dsName - The name of the dataset to remove
        Returns:
        False if the dataset could not be found
      • hideDataset

        boolean hideDataset​(java.lang.String dsName)
        Hides the dataset identified by the given name, if it exists and is not hidden
        Parameters:
        dsName - The name of the dataset to hide
        Returns:
        False if the dataset could not be found
      • listDatasets

        java.util.List<java.lang.String> listDatasets()
        Returns the names of all datasets currently loaded
        Returns:
        A list with all the names of the loaded datasets
      • hasDataset

        boolean hasDataset​(java.lang.String dsName)
        Checks whether the dataset identified by the given name is loaded
        Parameters:
        dsName - The name of the dataset to query
        Returns:
        True if the dataset is loaded, false otherwise
      • showDataset

        boolean showDataset​(java.lang.String dsName)
        Shows (un-hides) the dataset identified by the given name, if it exists and is hidden
        Parameters:
        dsName - The name of the dataset to show
        Returns:
        False if the dataset could not be found
      • highlightDataset

        boolean highlightDataset​(java.lang.String dsName,
                                 boolean highlight)
        Enables or disables the dataset highlight, using a cyclic color which changes every call
        Parameters:
        dsName - The dataset name
        highlight - State
        Returns:
        False if the dataset could not be found
      • highlightDataset

        boolean highlightDataset​(java.lang.String dsName,
                                 int colorIndex,
                                 boolean highlight)
        Enables or disables the dataset highlight, using a given color index:
        • 0 - red
        • 1 - green
        • 2 - blue
        • 3 - cyan
        • 4 - magenta
        • 5 - yellow
        Parameters:
        dsName - The dataset name
        colorIndex - Color index in [0..5]
        highlight - State
        Returns:
        False if the dataset could not be found
      • getFrameNumber

        long getFrameNumber()
        Gets the current frame number. The number begins at 0 for the first frame produced when Gaia Sky is started and increases continuously.
        Returns:
        The current frame number
      • rotate3

        double[] rotate3​(double[] vector,
                         double[] axis,
                         double angle)
        Rotates a 3D vector around the given axis by the specified angle in degrees. Vectors are arrays with 3 components. If more components are there, they are ignored.
        Parameters:
        vector - Vector to rotate, with at least 3 components
        axis - The axis, with at least 3 components
        angle - Angle in degrees
        Returns:
        The new vector, rotated
      • rotate2

        double[] rotate2​(double[] vector,
                         double angle)
        Rotates a 2D vector by the specified angle in degrees, counter-clockwise assuming that the y axis points up.
        Parameters:
        vector - Vector to rotate, with at least 2 components
        Returns:
        The new vector, rotated
      • cross3

        double[] cross3​(double[] vec1,
                        double[] vec2)
        Computes the cross product between the two 3D vectors.
        Parameters:
        vec1 - First 3D vector
        vec2 - Second 3D vector
        Returns:
        Cross product 3D vector
      • dot3

        double dot3​(double[] vec1,
                    double[] vec2)
        Computes the dot product between the two 3D vectors.
        Parameters:
        vec1 - First 3D vector
        vec2 - Second 3D vector
        Returns:
        The dot product scalar
      • print

        void print​(java.lang.String message)
        Print text using the internal logging system
        Parameters:
        message - The message
      • log

        void log​(java.lang.String message)
        Print text using the internal logging system
        Parameters:
        message - The message
      • error

        void error​(java.lang.String message)
        Log an error using the internal logging system
        Parameters:
        message - The error message