@@ -8,6 +8,7 @@ import glm_.vec3.Vec3
88import java.io.File
99import java.io.FileReader
1010import java.net.URI
11+ import java.util.*
1112import javax.xml.namespace.QName
1213import javax.xml.stream.XMLEventReader
1314import javax.xml.stream.XMLInputFactory
@@ -23,17 +24,17 @@ import assimp.format.collada.PrimitiveType as Pt
2324 * Created by elect on 23/01/2017.
2425 */
2526
26- typealias DataLibrary = HashMap <String , Data >
27- typealias AccessorLibrary = HashMap <String , Accessor >
28- typealias MeshLibrary = HashMap <String , Mesh >
29- typealias NodeLibrary = HashMap <String , Node >
30- typealias ImageLibrary = HashMap <String , Image >
31- typealias EffectLibrary = HashMap <String , Effect >
32- typealias MaterialLibrary = HashMap <String , Material >
33- typealias LightLibrary = HashMap <String , Light >
34- typealias CameraLibrary = HashMap <String , Camera >
35- typealias ControllerLibrary = HashMap <String , Controller >
36- typealias AnimationLibrary = HashMap <String , Animation >
27+ typealias DataLibrary = SortedMap <String , Data >
28+ typealias AccessorLibrary = SortedMap <String , Accessor >
29+ typealias MeshLibrary = SortedMap <String , Mesh >
30+ typealias NodeLibrary = SortedMap <String , Node >
31+ typealias ImageLibrary = SortedMap <String , Image >
32+ typealias EffectLibrary = SortedMap <String , Effect >
33+ typealias MaterialLibrary = SortedMap <String , Material >
34+ typealias LightLibrary = SortedMap <String , Light >
35+ typealias CameraLibrary = SortedMap <String , Camera >
36+ typealias ControllerLibrary = SortedMap <String , Controller >
37+ typealias AnimationLibrary = SortedMap <String , Animation >
3738typealias AnimationClipLibrary = ArrayList <Pair <String , ArrayList <String >>>
3839
3940typealias ChannelMap = MutableMap <String , AnimationChannel >
@@ -54,27 +55,27 @@ class ColladaParser(pFile: IOStream) {
5455 lateinit var endElement: EndElement
5556 /* * All data arrays found in the file by ID. Might be referred to by actually everyone. Collada, you are a steaming
5657 * pile of indirection. */
57- var mDataLibrary: DataLibrary = HashMap ()
58+ var mDataLibrary: DataLibrary = sortedMapOf ()
5859 /* * Same for accessors which define how the data in a data array is accessed. */
59- var mAccessorLibrary: AccessorLibrary = HashMap ()
60+ var mAccessorLibrary: AccessorLibrary = sortedMapOf ()
6061 /* * Mesh library: mesh by ID */
61- var mMeshLibrary: MeshLibrary = HashMap ()
62+ var mMeshLibrary: MeshLibrary = sortedMapOf ()
6263 /* * node library: root node of the hierarchy part by ID */
63- var mNodeLibrary: NodeLibrary = HashMap ()
64+ var mNodeLibrary: NodeLibrary = sortedMapOf ()
6465 /* * Image library: stores texture properties by ID */
65- var mImageLibrary: ImageLibrary = HashMap ()
66+ var mImageLibrary: ImageLibrary = sortedMapOf ()
6667 /* * Effect library: surface attributes by ID */
67- var mEffectLibrary: EffectLibrary = HashMap ()
68+ var mEffectLibrary: EffectLibrary = sortedMapOf ()
6869 /* * Material library: surface material by ID */
69- var mMaterialLibrary: MaterialLibrary = HashMap ()
70+ var mMaterialLibrary: MaterialLibrary = sortedMapOf ()
7071 /* * Light library: surface light by ID */
71- var mLightLibrary: LightLibrary = HashMap ()
72+ var mLightLibrary: LightLibrary = sortedMapOf ()
7273 /* * Camera library: surface material by ID */
73- var mCameraLibrary: CameraLibrary = HashMap ()
74+ var mCameraLibrary: CameraLibrary = sortedMapOf ()
7475 /* * Controller library: joint controllers by ID */
75- var mControllerLibrary: ControllerLibrary = HashMap ()
76+ var mControllerLibrary: ControllerLibrary = sortedMapOf ()
7677 /* * Animation library: animation references by ID */
77- var mAnimationLibrary: AnimationLibrary = HashMap ()
78+ var mAnimationLibrary: AnimationLibrary = sortedMapOf ()
7879 /* * Animation clip library: clip animation references by ID */
7980 var mAnimationClipLibrary: AnimationClipLibrary = ArrayList ()
8081 /* * Pointer to the root node. Don't delete, it just points to one of the nodes in the node library. */
@@ -1828,6 +1829,6 @@ class ColladaParser(pFile: IOStream) {
18281829 }
18291830
18301831 /* * Finds the item in the given library by its reference, throws if not found */
1831- fun <T > resolveLibraryReference (pLibrary : HashMap <String , T >, pURL : String ): T =
1832+ fun <T > resolveLibraryReference (pLibrary : SortedMap <String , T >, pURL : String ): T =
18321833 pLibrary[pURL] ? : throw Exception (" Unable to resolve library reference \" $pURL \" ." )
18331834}
0 commit comments