Package org.sunflow.core.parser
Class DAEParser
- java.lang.Object
-
- org.sunflow.core.parser.DAEParser
-
- All Implemented Interfaces:
SceneParser
public class DAEParser extends java.lang.Object implements SceneParser
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) class
DAEParser.ColladaShader
(package private) class
DAEParser.ConstantShader
private class
DAEParser.Geometry
(package private) class
DAEParser.LambertShader
(package private) class
DAEParser.PhongShader
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String
actualSceneId
private SunflowAPI
api
private java.lang.String
camera
private org.w3c.dom.Document
dae
private FastHashMap<java.lang.String,org.w3c.dom.Document>
documentCache
private static int
FACE
private FastHashMap<java.lang.String,FastHashMap<java.lang.String,DAEParser.Geometry>>
geometryCache
private FastHashMap<java.lang.String,java.lang.Integer>
lightCache
private javax.xml.parsers.DocumentBuilder
parser
static java.lang.String
SCHEMA_LANGUAGE
static java.lang.String
SCHEMA_SOURCE
private java.util.LinkedList<java.lang.String>
shaderCache
private FastHashMap<org.w3c.dom.Node,Matrix4>
transformCache
private static int
VERTEX
static java.lang.String
XML_SCHEMA
private javax.xml.xpath.XPath
xpath
-
Constructor Summary
Constructors Constructor Description DAEParser()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
expandNodeInstance(org.w3c.dom.Element nodeInstance)
private java.lang.String
getCameraQuery(java.lang.String sceneId)
private org.w3c.dom.Document
getDocument(org.w3c.dom.Node subject)
private java.lang.String
getEffectQuery(java.lang.String effectId)
private org.w3c.dom.Element
getElement(org.w3c.dom.Element source, java.lang.String name, java.lang.String id)
private java.lang.String
getGeometryQuery(java.lang.String geometryId)
private java.lang.String
getGeometrySourceParamsQuery(java.lang.String geometryId, java.lang.String inputId)
private java.lang.String
getGeometrySourceQuery(java.lang.String geometryId, java.lang.String inputId)
private java.lang.String
getImageQuery(java.lang.String imageId)
private java.lang.String
getLightQuery(java.lang.String lightId)
private java.lang.String
getMaterialQuery(java.lang.String materialId)
private FastHashMap<java.lang.String,java.lang.Object>
getParams(org.w3c.dom.Element el)
private java.lang.String
getSceneId(org.w3c.dom.Document doc)
private java.lang.String
getSceneQuery(java.lang.String sceneId)
private DAEParser.ColladaShader
getShader(java.lang.String s, java.lang.String effectId, java.lang.String url, org.w3c.dom.Document doc)
private java.lang.String
getSunflowSceneQuery(java.lang.String sceneId)
private java.lang.String
getTexture(java.lang.String effectId, org.w3c.dom.Element param, org.w3c.dom.Document doc)
private void
instantiateGeometry(org.w3c.dom.Document doc, org.w3c.dom.Element instance, Matrix4 transformation, java.lang.String geometryId)
private void
instantiateLight(org.w3c.dom.Element lightInstance, Matrix4 transformation, java.lang.String lightId)
private FastHashMap<java.lang.String,DAEParser.Geometry>
loadGeometry(java.lang.String geometryId, org.w3c.dom.Document doc)
private void
loadScene()
private void
loadShader(java.lang.String materialId, org.w3c.dom.Document doc, java.lang.String url)
private java.lang.String
loadTriangles(java.lang.String geometryId, org.w3c.dom.Document doc, org.w3c.dom.Element trisEl)
boolean
parse(java.lang.String filename, SunflowAPIInterface api)
Parse the specified file to create a scene description into the providedSunflowAPI
object.private Color
parseColor(java.lang.String colorString)
private float[]
parseFloats(java.lang.String floatString)
private void
parseNode(org.w3c.dom.Element node)
private Vector3
parseVector(java.lang.String vectorString)
private void
setBackground()
private void
setCamera(Matrix4 transform)
private void
setGlobalIllumination()
private void
setImage()
private void
setPhoton()
private void
setSunsky()
private void
setTraceDepths()
private Matrix4
transform(org.w3c.dom.Element node)
-
-
-
Field Detail
-
api
private SunflowAPI api
-
dae
private org.w3c.dom.Document dae
-
xpath
private javax.xml.xpath.XPath xpath
-
parser
private javax.xml.parsers.DocumentBuilder parser
-
camera
private java.lang.String camera
-
geometryCache
private FastHashMap<java.lang.String,FastHashMap<java.lang.String,DAEParser.Geometry>> geometryCache
-
lightCache
private FastHashMap<java.lang.String,java.lang.Integer> lightCache
-
transformCache
private FastHashMap<org.w3c.dom.Node,Matrix4> transformCache
-
shaderCache
private java.util.LinkedList<java.lang.String> shaderCache
-
documentCache
private FastHashMap<java.lang.String,org.w3c.dom.Document> documentCache
-
actualSceneId
private java.lang.String actualSceneId
-
FACE
private static int FACE
-
VERTEX
private static int VERTEX
-
SCHEMA_LANGUAGE
public static java.lang.String SCHEMA_LANGUAGE
-
XML_SCHEMA
public static java.lang.String XML_SCHEMA
-
SCHEMA_SOURCE
public static java.lang.String SCHEMA_SOURCE
-
-
Method Detail
-
parse
public boolean parse(java.lang.String filename, SunflowAPIInterface api)
Description copied from interface:SceneParser
Parse the specified file to create a scene description into the providedSunflowAPI
object.- Specified by:
parse
in interfaceSceneParser
- Parameters:
filename
- filename to parseapi
- scene to parse the file into- Returns:
true
upon sucess, orfalse
if errors have occured.
-
setImage
private void setImage()
-
setBackground
private void setBackground()
-
setSunsky
private void setSunsky()
-
setPhoton
private void setPhoton()
-
setGlobalIllumination
private void setGlobalIllumination()
-
setTraceDepths
private void setTraceDepths()
-
setCamera
private void setCamera(Matrix4 transform)
-
loadScene
private void loadScene()
-
parseNode
private void parseNode(org.w3c.dom.Element node)
-
expandNodeInstance
private void expandNodeInstance(org.w3c.dom.Element nodeInstance)
-
instantiateGeometry
private void instantiateGeometry(org.w3c.dom.Document doc, org.w3c.dom.Element instance, Matrix4 transformation, java.lang.String geometryId)
-
loadGeometry
private FastHashMap<java.lang.String,DAEParser.Geometry> loadGeometry(java.lang.String geometryId, org.w3c.dom.Document doc)
-
loadTriangles
private java.lang.String loadTriangles(java.lang.String geometryId, org.w3c.dom.Document doc, org.w3c.dom.Element trisEl)
-
loadShader
private void loadShader(java.lang.String materialId, org.w3c.dom.Document doc, java.lang.String url)
-
getShader
private DAEParser.ColladaShader getShader(java.lang.String s, java.lang.String effectId, java.lang.String url, org.w3c.dom.Document doc)
-
instantiateLight
private void instantiateLight(org.w3c.dom.Element lightInstance, Matrix4 transformation, java.lang.String lightId)
-
getElement
private org.w3c.dom.Element getElement(org.w3c.dom.Element source, java.lang.String name, java.lang.String id)
-
getDocument
private org.w3c.dom.Document getDocument(org.w3c.dom.Node subject)
-
transform
private Matrix4 transform(org.w3c.dom.Element node)
-
getParams
private FastHashMap<java.lang.String,java.lang.Object> getParams(org.w3c.dom.Element el)
-
getTexture
private java.lang.String getTexture(java.lang.String effectId, org.w3c.dom.Element param, org.w3c.dom.Document doc)
-
getSceneId
private java.lang.String getSceneId(org.w3c.dom.Document doc) throws javax.xml.xpath.XPathExpressionException
- Throws:
javax.xml.xpath.XPathExpressionException
-
getSceneQuery
private java.lang.String getSceneQuery(java.lang.String sceneId)
-
getSunflowSceneQuery
private java.lang.String getSunflowSceneQuery(java.lang.String sceneId)
-
getCameraQuery
private java.lang.String getCameraQuery(java.lang.String sceneId)
-
getGeometryQuery
private java.lang.String getGeometryQuery(java.lang.String geometryId)
-
getGeometrySourceQuery
private java.lang.String getGeometrySourceQuery(java.lang.String geometryId, java.lang.String inputId)
-
getGeometrySourceParamsQuery
private java.lang.String getGeometrySourceParamsQuery(java.lang.String geometryId, java.lang.String inputId)
-
getMaterialQuery
private java.lang.String getMaterialQuery(java.lang.String materialId)
-
getEffectQuery
private java.lang.String getEffectQuery(java.lang.String effectId)
-
getImageQuery
private java.lang.String getImageQuery(java.lang.String imageId)
-
getLightQuery
private java.lang.String getLightQuery(java.lang.String lightId)
-
parseColor
private Color parseColor(java.lang.String colorString)
-
parseVector
private Vector3 parseVector(java.lang.String vectorString)
-
parseFloats
private float[] parseFloats(java.lang.String floatString)
-
-