Package org.sunflow
Class FileSunflowAPI
- java.lang.Object
-
- org.sunflow.FileSunflowAPI
-
- All Implemented Interfaces:
SunflowAPIInterface
- Direct Known Subclasses:
AsciiFileSunflowAPI,BinaryFileSunflowAPI
abstract class FileSunflowAPI extends java.lang.Object implements SunflowAPIInterface
-
-
Field Summary
Fields Modifier and Type Field Description private intframe
-
Constructor Summary
Constructors Modifier Constructor Description protectedFileSunflowAPI()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidcamera(java.lang.String name, java.lang.String lensType)Defines a camera with a given name.abstract voidclose()voidcurrentFrame(int currentFrame)Set the value of the current frame.voidgeometry(java.lang.String name, java.lang.String typeName)Defines a geometry with a given name.intgetCurrentFrame()booleaninclude(java.lang.String filename)Parse the specified filename.voidinstance(java.lang.String name, java.lang.String geoname)Instance the specified geometry into the scene.voidlight(java.lang.String name, java.lang.String lightType)Defines a light source with a given name.voidmodifier(java.lang.String name, java.lang.String modifierType)Defines a modifier with a given name.voidoptions(java.lang.String name)Defines an option object to hold the current parameters.voidparameter(java.lang.String name, boolean value)Declare a parameter with the specified name and value.voidparameter(java.lang.String name, float value)Declare a parameter with the specified name and value.voidparameter(java.lang.String name, int value)Declare a parameter with the specified name and value.voidparameter(java.lang.String name, int[] value)Declare a parameter with the specified name and value.voidparameter(java.lang.String name, java.lang.String value)Declare a parameter with the specified name and value.voidparameter(java.lang.String name, java.lang.String[] value)Declare a parameter with the specified name and value.voidparameter(java.lang.String name, java.lang.String colorspace, float... data)Declare a color parameter in the given colorspace using the specified name and value.voidparameter(java.lang.String name, java.lang.String type, java.lang.String interpolation, float[] data)Declare a parameter with the specified name.voidparameter(java.lang.String name, Matrix4 value)Declare a parameter with the specified name and value.voidparameter(java.lang.String name, Point2 value)Declare a parameter with the specified name and value.voidparameter(java.lang.String name, Point3 value)Declare a parameter with the specified name and value.voidparameter(java.lang.String name, Vector3 value)Declare a parameter with the specified name and value.voidplugin(java.lang.String type, java.lang.String name, java.lang.String code)Declare a plugin of the specified type with the given name from a java code string.voidremove(java.lang.String name)Remove the specified render object.voidrender(java.lang.String optionsName, Display display)Render using the specified options and the specified display.voidreset()Reset the state of the API completely.voidsearchpath(java.lang.String type, java.lang.String path)Add the specified path to the list of directories which are searched automatically to resolve scene filenames or textures.voidshader(java.lang.String name, java.lang.String shaderType)Defines a shader with a given name.protected abstract voidwriteBoolean(boolean value)protected abstract voidwriteFloat(float value)protected abstract voidwriteInt(int value)protected abstract voidwriteInterpolationType(ParameterList.InterpolationType interp)protected abstract voidwriteKeyword(SCAbstractParser.Keyword keyword)protected abstract voidwriteMatrix(Matrix4 value)protected abstract voidwriteNewline(int indentNext)protected abstract voidwriteString(java.lang.String string)protected abstract voidwriteVerbatimString(java.lang.String string)
-
-
-
Method Detail
-
camera
public void camera(java.lang.String name, java.lang.String lensType)Description copied from interface:SunflowAPIInterfaceDefines a camera with a given name. The camera is built from the specified camera lens type plugin. If the lens type name is leftnull, the camera with the given name will be updated (if it exists). It is not currently possible to change the lens of a camera after it has been created.- Specified by:
camerain interfaceSunflowAPIInterface- Parameters:
name- camera namelensType- a camera lens plugin type name
-
geometry
public void geometry(java.lang.String name, java.lang.String typeName)Description copied from interface:SunflowAPIInterfaceDefines a geometry with a given name. The geometry is built from the specified type. Note that geometries may be created fromTesselatableobjects orPrimitiveListobjects. This means that two seperate plugin lists will be searched for the geometry type.Tesselatableobjects are search first. If the type name is leftnull, the geometry with the given name will be updated (if it exists).- Specified by:
geometryin interfaceSunflowAPIInterface- Parameters:
name- a unique name given to the geometrytypeName- a tesselatable or primitive plugin type name
-
getCurrentFrame
public int getCurrentFrame()
-
instance
public void instance(java.lang.String name, java.lang.String geoname)Description copied from interface:SunflowAPIInterfaceInstance the specified geometry into the scene. If geoname isnull, the specified instance object will be updated (if it exists). In order to change the instancing relationship of an existing instance, you should use the "geometry" string attribute.- Specified by:
instancein interfaceSunflowAPIInterface- Parameters:
name- instance namegeoname- name of the geometry to instance
-
light
public void light(java.lang.String name, java.lang.String lightType)Description copied from interface:SunflowAPIInterfaceDefines a light source with a given name. If the light type name is leftnull, the light source with the given name will be updated (if it exists).- Specified by:
lightin interfaceSunflowAPIInterface- Parameters:
name- a unique name given to the light sourcelightType- a light source plugin type name
-
modifier
public void modifier(java.lang.String name, java.lang.String modifierType)Description copied from interface:SunflowAPIInterfaceDefines a modifier with a given name. If the modifier type name is leftnull, the modifier with the given name will be updated (if it exists).- Specified by:
modifierin interfaceSunflowAPIInterface- Parameters:
name- a unique name given to the modifiermodifierType- a modifier plugin type name
-
options
public void options(java.lang.String name)
Description copied from interface:SunflowAPIInterfaceDefines an option object to hold the current parameters. If the object already exists, the values will simply override previous ones.- Specified by:
optionsin interfaceSunflowAPIInterface
-
parameter
public void parameter(java.lang.String name, java.lang.String value)Description copied from interface:SunflowAPIInterfaceDeclare a parameter with the specified name and value. This parameter will be added to the currently active parameter list.- Specified by:
parameterin interfaceSunflowAPIInterface- Parameters:
name- parameter namevalue- parameter value
-
parameter
public void parameter(java.lang.String name, boolean value)Description copied from interface:SunflowAPIInterfaceDeclare a parameter with the specified name and value. This parameter will be added to the currently active parameter list.- Specified by:
parameterin interfaceSunflowAPIInterface- Parameters:
name- parameter namevalue- parameter value
-
parameter
public void parameter(java.lang.String name, int value)Description copied from interface:SunflowAPIInterfaceDeclare a parameter with the specified name and value. This parameter will be added to the currently active parameter list.- Specified by:
parameterin interfaceSunflowAPIInterface- Parameters:
name- parameter namevalue- parameter value
-
parameter
public void parameter(java.lang.String name, float value)Description copied from interface:SunflowAPIInterfaceDeclare a parameter with the specified name and value. This parameter will be added to the currently active parameter list.- Specified by:
parameterin interfaceSunflowAPIInterface- Parameters:
name- parameter namevalue- parameter value
-
parameter
public void parameter(java.lang.String name, java.lang.String colorspace, float... data)Description copied from interface:SunflowAPIInterfaceDeclare a color parameter in the given colorspace using the specified name and value. This parameter will be added to the currently active parameter list.- Specified by:
parameterin interfaceSunflowAPIInterface- Parameters:
name- parameter namecolorspace- color space ornullto assume internal color spacedata- floating point color data
-
parameter
public void parameter(java.lang.String name, Point3 value)Description copied from interface:SunflowAPIInterfaceDeclare a parameter with the specified name and value. This parameter will be added to the currently active parameter list.- Specified by:
parameterin interfaceSunflowAPIInterface- Parameters:
name- parameter namevalue- parameter value
-
parameter
public void parameter(java.lang.String name, Vector3 value)Description copied from interface:SunflowAPIInterfaceDeclare a parameter with the specified name and value. This parameter will be added to the currently active parameter list.- Specified by:
parameterin interfaceSunflowAPIInterface- Parameters:
name- parameter namevalue- parameter value
-
parameter
public void parameter(java.lang.String name, Point2 value)Description copied from interface:SunflowAPIInterfaceDeclare a parameter with the specified name and value. This parameter will be added to the currently active parameter list.- Specified by:
parameterin interfaceSunflowAPIInterface- Parameters:
name- parameter namevalue- parameter value
-
parameter
public void parameter(java.lang.String name, Matrix4 value)Description copied from interface:SunflowAPIInterfaceDeclare a parameter with the specified name and value. This parameter will be added to the currently active parameter list.- Specified by:
parameterin interfaceSunflowAPIInterface- Parameters:
name- parameter namevalue- parameter value
-
parameter
public void parameter(java.lang.String name, int[] value)Description copied from interface:SunflowAPIInterfaceDeclare a parameter with the specified name and value. This parameter will be added to the currently active parameter list.- Specified by:
parameterin interfaceSunflowAPIInterface- Parameters:
name- parameter namevalue- parameter value
-
parameter
public void parameter(java.lang.String name, java.lang.String[] value)Description copied from interface:SunflowAPIInterfaceDeclare a parameter with the specified name and value. This parameter will be added to the currently active parameter list.- Specified by:
parameterin interfaceSunflowAPIInterface- Parameters:
name- parameter namevalue- parameter value
-
parameter
public void parameter(java.lang.String name, java.lang.String type, java.lang.String interpolation, float[] data)Description copied from interface:SunflowAPIInterfaceDeclare a parameter with the specified name. The type may be one of the follow: "float", "point", "vector", "texcoord", "matrix". The interpolation determines how the parameter is to be interpreted over surface (seeParameterList.InterpolationType). The data is specified in a flattened float array.- Specified by:
parameterin interfaceSunflowAPIInterface- Parameters:
name- parameter nametype- parameter data typeinterpolation- parameter interpolation modedata- raw floating point data
-
include
public boolean include(java.lang.String filename)
Description copied from interface:SunflowAPIInterfaceParse the specified filename. The include paths are searched first. The contents of the file are simply added to the active scene. This allows to break up a scene into parts, even across file formats. The appropriate parser is chosen based on file extension.- Specified by:
includein interfaceSunflowAPIInterface- Parameters:
filename- filename to load- Returns:
trueupon sucess,falseif an error occured.
-
plugin
public void plugin(java.lang.String type, java.lang.String name, java.lang.String code)Description copied from interface:SunflowAPIInterfaceDeclare a plugin of the specified type with the given name from a java code string. The code will be compiled with Janino and registered as a new plugin type upon success.- Specified by:
pluginin interfaceSunflowAPIInterface
-
remove
public void remove(java.lang.String name)
Description copied from interface:SunflowAPIInterfaceRemove the specified render object. Note that this may cause the removal of other objects which depended on it.- Specified by:
removein interfaceSunflowAPIInterface- Parameters:
name- name of the object to remove
-
render
public void render(java.lang.String optionsName, Display display)Description copied from interface:SunflowAPIInterfaceRender using the specified options and the specified display. If the specified options do not exist - defaults will be used.- Specified by:
renderin interfaceSunflowAPIInterface- Parameters:
optionsName- name of theRenderObjectwhich contains the optionsdisplay- display object
-
reset
public void reset()
Description copied from interface:SunflowAPIInterfaceReset the state of the API completely. The object table is cleared, and all search paths are set back to their default values.- Specified by:
resetin interfaceSunflowAPIInterface
-
searchpath
public void searchpath(java.lang.String type, java.lang.String path)Description copied from interface:SunflowAPIInterfaceAdd the specified path to the list of directories which are searched automatically to resolve scene filenames or textures. Currently the supported searchpath types are: "include" and "texture". All other types will be ignored.- Specified by:
searchpathin interfaceSunflowAPIInterface
-
currentFrame
public void currentFrame(int currentFrame)
Description copied from interface:SunflowAPIInterfaceSet the value of the current frame. This value is intended only for procedural animation creation. It is not used by the Sunflow core in anyway. The default value is 1.- Specified by:
currentFramein interfaceSunflowAPIInterface- Parameters:
currentFrame- current frame number
-
shader
public void shader(java.lang.String name, java.lang.String shaderType)Description copied from interface:SunflowAPIInterfaceDefines a shader with a given name. If the shader type name is leftnull, the shader with the given name will be updated (if it exists).- Specified by:
shaderin interfaceSunflowAPIInterface- Parameters:
name- a unique name given to the shadershaderType- a shader plugin type
-
writeKeyword
protected abstract void writeKeyword(SCAbstractParser.Keyword keyword)
-
writeInterpolationType
protected abstract void writeInterpolationType(ParameterList.InterpolationType interp)
-
writeBoolean
protected abstract void writeBoolean(boolean value)
-
writeInt
protected abstract void writeInt(int value)
-
writeFloat
protected abstract void writeFloat(float value)
-
writeString
protected abstract void writeString(java.lang.String string)
-
writeVerbatimString
protected abstract void writeVerbatimString(java.lang.String string)
-
writeMatrix
protected abstract void writeMatrix(Matrix4 value)
-
writeNewline
protected abstract void writeNewline(int indentNext)
-
close
public abstract void close()
-
-