3131 */
3232package com .jme3 .scene .debug ;
3333
34+ import com .jme3 .animation .Bone ;
35+ import com .jme3 .animation .Skeleton ;
3436import com .jme3 .asset .AssetManager ;
3537import com .jme3 .asset .DesktopAssetManager ;
3638import com .jme3 .export .binary .BinaryExporter ;
3739import com .jme3 .math .Vector3f ;
3840import com .jme3 .util .clone .Cloner ;
41+ import java .util .HashMap ;
42+ import java .util .Map ;
3943import org .junit .Assert ;
4044import org .junit .Test ;
4145
4650 */
4751public class TestCloneMesh {
4852 // *************************************************************************
49- // fields
53+ // new methods exposed
5054
5155 /**
52- * AssetManager required by the BinaryImporter
56+ * Test cloning/saving/loading an Arrow.
5357 */
54- final private static AssetManager assetManager = new DesktopAssetManager ();
55- // *************************************************************************
56- // new methods exposed
58+ @ Test
59+ public void testCloneArrow () {
60+ Arrow arrow = new Arrow (new Vector3f (1f , 1f , 1f ));
61+
62+ Arrow deepClone = Cloner .deepClone (arrow );
63+ Assert .assertNotNull (deepClone );
64+ Assert .assertNotEquals (deepClone , arrow );
65+
66+ AssetManager assetManager = new DesktopAssetManager ();
67+ Arrow saveAndLoad = BinaryExporter .saveAndLoad (assetManager , arrow );
68+ Assert .assertNotNull (saveAndLoad );
69+ Assert .assertNotEquals (deepClone , saveAndLoad );
70+ }
71+
72+ /**
73+ * Test cloning/saving/loading a Grid.
74+ */
75+ @ Test
76+ public void testCloneGrid () {
77+ Grid grid = new Grid (5 , 5 , 1f );
78+
79+ Grid deepClone = Cloner .deepClone (grid );
80+ Assert .assertNotNull (deepClone );
81+ Assert .assertNotEquals (deepClone , grid );
82+
83+ AssetManager assetManager = new DesktopAssetManager ();
84+ Grid saveAndLoad = BinaryExporter .saveAndLoad (assetManager , grid );
85+ Assert .assertNotNull (saveAndLoad );
86+ Assert .assertNotEquals (deepClone , saveAndLoad );
87+ }
88+
89+ /**
90+ * Test cloning/saving/loading a SkeletonDebugger.
91+ */
92+ public void testCloneSkeletonDebugger () {
93+ Bone [] boneArray = new Bone [2 ];
94+ boneArray [0 ] = new Bone ("rootBone" );
95+ boneArray [1 ] = new Bone ("leafBone" );
96+ boneArray [0 ].addChild (boneArray [1 ]);
97+ Skeleton skeleton = new Skeleton (boneArray );
98+ skeleton .setBindingPose ();
99+ SkeletonDebugger skeletonDebugger
100+ = new SkeletonDebugger ("sd" , skeleton );
101+
102+ SkeletonDebugger deepClone = Cloner .deepClone (skeletonDebugger );
103+ Assert .assertNotNull (deepClone );
104+ Assert .assertNotEquals (deepClone , skeletonDebugger );
105+
106+ AssetManager assetManager = new DesktopAssetManager ();
107+ SkeletonDebugger saveAndLoad
108+ = BinaryExporter .saveAndLoad (assetManager , skeletonDebugger );
109+ Assert .assertNotNull (saveAndLoad );
110+ Assert .assertNotEquals (deepClone , saveAndLoad );
111+ }
112+
113+ /**
114+ * Test cloning/saving/loading a SkeletonInterBoneWire.
115+ */
116+ public void testCloneSkeletonInterBoneWire () {
117+ Bone [] boneArray = new Bone [2 ];
118+ boneArray [0 ] = new Bone ("rootBone" );
119+ boneArray [1 ] = new Bone ("leafBone" );
120+ boneArray [0 ].addChild (boneArray [1 ]);
121+ Skeleton skeleton = new Skeleton (boneArray );
122+ skeleton .setBindingPose ();
123+ Map <Integer , Float > boneLengths = new HashMap <>();
124+ boneLengths .put (0 , 2f );
125+ boneLengths .put (1 , 1f );
126+ SkeletonInterBoneWire sibw
127+ = new SkeletonInterBoneWire (skeleton , boneLengths );
128+
129+ SkeletonInterBoneWire deepClone = Cloner .deepClone (sibw );
130+ Assert .assertNotNull (deepClone );
131+ Assert .assertNotEquals (deepClone , sibw );
132+
133+ AssetManager assetManager = new DesktopAssetManager ();
134+ SkeletonInterBoneWire saveAndLoad
135+ = BinaryExporter .saveAndLoad (assetManager , sibw );
136+ Assert .assertNotNull (saveAndLoad );
137+ Assert .assertNotEquals (deepClone , saveAndLoad );
138+ }
139+
140+ /**
141+ * Test cloning/saving/loading a SkeletonPoints.
142+ */
143+ public void testCloneSkeletonPoints () {
144+ Bone [] boneArray = new Bone [2 ];
145+ boneArray [0 ] = new Bone ("rootBone" );
146+ boneArray [1 ] = new Bone ("leafBone" );
147+ boneArray [0 ].addChild (boneArray [1 ]);
148+ Skeleton skeleton = new Skeleton (boneArray );
149+ skeleton .setBindingPose ();
150+ SkeletonPoints skeletonPoints = new SkeletonPoints (skeleton );
151+
152+ SkeletonPoints deepClone = Cloner .deepClone (skeletonPoints );
153+ Assert .assertNotNull (deepClone );
154+ Assert .assertNotEquals (deepClone , skeletonPoints );
155+
156+ AssetManager assetManager = new DesktopAssetManager ();
157+ SkeletonPoints saveAndLoad
158+ = BinaryExporter .saveAndLoad (assetManager , skeletonPoints );
159+ Assert .assertNotNull (saveAndLoad );
160+ Assert .assertNotEquals (deepClone , saveAndLoad );
161+ }
162+
163+ /**
164+ * Test cloning/saving/loading a SkeletonWire.
165+ */
166+ public void testCloneSkeletonWire () {
167+ Bone [] boneArray = new Bone [2 ];
168+ boneArray [0 ] = new Bone ("rootBone" );
169+ boneArray [1 ] = new Bone ("leafBone" );
170+ boneArray [0 ].addChild (boneArray [1 ]);
171+ Skeleton skeleton = new Skeleton (boneArray );
172+ SkeletonWire skeletonWire = new SkeletonWire (skeleton );
173+
174+ SkeletonWire deepClone = Cloner .deepClone (skeletonWire );
175+ Assert .assertNotNull (deepClone );
176+ Assert .assertNotEquals (deepClone , skeletonWire );
177+
178+ AssetManager assetManager = new DesktopAssetManager ();
179+ SkeletonWire saveAndLoad
180+ = BinaryExporter .saveAndLoad (assetManager , skeletonWire );
181+ Assert .assertNotNull (saveAndLoad );
182+ Assert .assertNotEquals (deepClone , saveAndLoad );
183+ }
184+
185+ /**
186+ * Test cloning/saving/loading a WireBox.
187+ */
188+ @ Test
189+ public void testCloneWireBox () {
190+ WireBox box = new WireBox (0.5f , 0.5f , 0.5f );
191+
192+ WireBox deepClone = Cloner .deepClone (box );
193+ Assert .assertNotNull (deepClone );
194+ Assert .assertNotEquals (deepClone , box );
195+
196+ AssetManager assetManager = new DesktopAssetManager ();
197+ WireBox saveAndLoad = BinaryExporter .saveAndLoad (assetManager , box );
198+ Assert .assertNotNull (saveAndLoad );
199+ Assert .assertNotEquals (deepClone , saveAndLoad );
200+ }
201+
202+ /**
203+ * Test cloning/saving/loading a WireSphere.
204+ */
205+ @ Test
206+ public void testCloneWireSphere () {
207+ WireSphere sphere = new WireSphere (1f );
208+
209+ WireSphere deepClone = Cloner .deepClone (sphere );
210+ Assert .assertNotNull (deepClone );
211+ Assert .assertNotEquals (deepClone , sphere );
212+
213+ AssetManager assetManager = new DesktopAssetManager ();
214+ WireSphere saveAndLoad
215+ = BinaryExporter .saveAndLoad (assetManager , sphere );
216+ Assert .assertNotNull (saveAndLoad );
217+ Assert .assertNotEquals (deepClone , saveAndLoad );
218+ }
57219
58220 /**
59221 * Test cloning/saving/loading a WireFrustum.
@@ -65,10 +227,11 @@ public void testIssue1462() {
65227 vertices [vertexIndex ] = new Vector3f ();
66228 }
67229 WireFrustum wireFrustum = new WireFrustum (vertices );
68- WireFrustum deepClone = ( WireFrustum ) Cloner .deepClone (wireFrustum );
230+ WireFrustum deepClone = Cloner .deepClone (wireFrustum );
69231 Assert .assertNotNull (deepClone );
70232 Assert .assertNotEquals (deepClone , wireFrustum );
71233
234+ AssetManager assetManager = new DesktopAssetManager ();
72235 WireFrustum saveAndLoad
73236 = BinaryExporter .saveAndLoad (assetManager , wireFrustum );
74237 Assert .assertNotNull (saveAndLoad );
0 commit comments