2 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
20 #include <dali/public-api/dali-core.h>
21 #include <dali-test-suite-utils.h>
27 int UtcDaliDynamicsJointConstructor(void)
29 tet_infoline("UtcDaliDynamicsJointConstructor - DynamicsJoint::DynamicsJoint");
31 TestApplication application;
34 application.SendNotification();
40 DALI_TEST_CHECK( !joint );
44 int UtcDaliDynamicsJointLinearLimit(void)
46 TestApplication application;
49 application.SendNotification();
53 DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
54 DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
59 // cannot create dynamics world, log failure and exit
60 DALI_TEST_CHECK( false );
64 DynamicsBodyConfig bodyConfig(DynamicsBodyConfig::New());
65 Actor actor1(Actor::New());
66 actor1.EnableDynamics(bodyConfig);
67 Actor actor2(Actor::New());
68 actor2.EnableDynamics(bodyConfig);
70 DynamicsJoint joint( actor1.AddDynamicsJoint(actor2, Vector3() ) );
74 tet_infoline("UtcDaliDynamicsJointLinearLimit - DynamicsJoint::SetLinearLimit()");
75 joint.SetLinearLimit(DynamicsJoint::LINEAR_X, 0.0f, 1.0f);
77 DALI_TEST_CHECK( true );
81 int UtcDaliDynamicsJointAngularLimit(void)
83 TestApplication application;
86 application.SendNotification();
90 DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
91 DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
95 // cannot create dynamics world, log failure and exit
96 DALI_TEST_CHECK( false );
100 DynamicsBodyConfig bodyConfig(DynamicsBodyConfig::New());
101 Actor actor1(Actor::New());
102 actor1.EnableDynamics(bodyConfig);
103 Actor actor2(Actor::New());
104 actor2.EnableDynamics(bodyConfig);
106 DynamicsJoint joint( actor1.AddDynamicsJoint(actor2, Vector3() ) );
108 tet_infoline("UtcDaliDynamicsJointAngularLimit - DynamicsJoint::SetAngularLimit()");
109 joint.SetAngularLimit(DynamicsJoint::ANGULAR_X, Degree(0.0f), Degree(1.0f) );
110 DALI_TEST_CHECK( true );
114 int UtcDaliDynamicsJointEnableSpring(void)
116 TestApplication application;
119 application.SendNotification();
120 application.Render();
121 application.Render();
123 DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
124 DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
128 // cannot create dynamics world, log failure and exit
129 DALI_TEST_CHECK( false );
133 DynamicsBodyConfig bodyConfig(DynamicsBodyConfig::New());
134 Actor actor1(Actor::New());
135 actor1.EnableDynamics(bodyConfig);
136 Actor actor2(Actor::New());
137 actor2.EnableDynamics(bodyConfig);
139 DynamicsJoint joint( actor1.AddDynamicsJoint(actor2, Vector3() ) );
141 tet_infoline("UtcDaliDynamicsJointEnableSpring");
142 joint.EnableSpring(DynamicsJoint::LINEAR_X, true );
143 DALI_TEST_CHECK( true );
147 int UtcDaliDynamicsJointSetSpringStiffness(void)
149 TestApplication application;
152 application.SendNotification();
153 application.Render();
154 application.Render();
156 DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
157 DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
161 // cannot create dynamics world, log failure and exit
162 DALI_TEST_CHECK( false );
166 DynamicsBodyConfig bodyConfig(DynamicsBodyConfig::New());
167 Actor actor1(Actor::New());
168 actor1.EnableDynamics(bodyConfig);
169 Actor actor2(Actor::New());
170 actor2.EnableDynamics(bodyConfig);
172 DynamicsJoint joint( actor1.AddDynamicsJoint(actor2, Vector3() ) );
174 tet_infoline("UtcDaliDynamicsJointSetSpringStiffness");
175 joint.SetSpringStiffness(DynamicsJoint::LINEAR_X, 1.0f );
176 DALI_TEST_CHECK( true );
180 int UtcDaliDynamicsJointSetSpringCenterPoint(void)
182 TestApplication application;
185 application.SendNotification();
186 application.Render();
187 application.Render();
189 DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
190 DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
194 // cannot create dynamics world, log failure and exit
195 DALI_TEST_CHECK( false );
199 DynamicsBodyConfig bodyConfig(DynamicsBodyConfig::New());
200 Actor actor1(Actor::New());
201 actor1.EnableDynamics(bodyConfig);
202 Actor actor2(Actor::New());
203 actor2.EnableDynamics(bodyConfig);
205 DynamicsJoint joint( actor1.AddDynamicsJoint(actor2, Vector3() ) );
207 tet_infoline("UtcDaliDynamicsJointSetSpringCenterPoint");
208 joint.SetSpringCenterPoint(DynamicsJoint::LINEAR_X, 0.5f );
209 DALI_TEST_CHECK( true );
213 int UtcDaliDynamicsJointEnableMotor(void)
215 TestApplication application;
218 application.SendNotification();
219 application.Render();
220 application.Render();
222 DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
223 DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
227 // cannot create dynamics world, log failure and exit
228 DALI_TEST_CHECK( false );
232 DynamicsBodyConfig bodyConfig(DynamicsBodyConfig::New());
233 Actor actor1(Actor::New());
234 actor1.EnableDynamics(bodyConfig);
235 Actor actor2(Actor::New());
236 actor2.EnableDynamics(bodyConfig);
238 DynamicsJoint joint( actor1.AddDynamicsJoint(actor2, Vector3() ) );
240 tet_infoline("UtcDaliDynamicsJointEnableMotor");
241 joint.EnableMotor(DynamicsJoint::LINEAR_X, true );
242 DALI_TEST_CHECK( true );
246 int UtcDaliDynamicsJointSetMotorVelocity(void)
248 TestApplication application;
251 application.SendNotification();
252 application.Render();
253 application.Render();
255 DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
256 DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
260 // cannot create dynamics world, log failure and exit
261 DALI_TEST_CHECK( false );
265 DynamicsBodyConfig bodyConfig(DynamicsBodyConfig::New());
266 Actor actor1(Actor::New());
267 actor1.EnableDynamics(bodyConfig);
268 Actor actor2(Actor::New());
269 actor2.EnableDynamics(bodyConfig);
271 DynamicsJoint joint( actor1.AddDynamicsJoint(actor2, Vector3() ) );
273 tet_infoline("UtcDaliDynamicsJointSetMotorVelocity");
274 joint.SetMotorVelocity(DynamicsJoint::LINEAR_X, 1.0f );
275 DALI_TEST_CHECK( true );
279 int UtcDaliDynamicsJointSetMotorForce(void)
281 TestApplication application;
284 application.SendNotification();
285 application.Render();
286 application.Render();
288 DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
289 DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
293 // cannot create dynamics world, log failure and exit
294 DALI_TEST_CHECK( false );
298 DynamicsBodyConfig bodyConfig(DynamicsBodyConfig::New());
299 Actor actor1(Actor::New());
300 actor1.EnableDynamics(bodyConfig);
301 Actor actor2(Actor::New());
302 actor2.EnableDynamics(bodyConfig);
304 DynamicsJoint joint( actor1.AddDynamicsJoint(actor2, Vector3() ) );
306 tet_infoline("UtcDaliDynamicsJointSetMotorForce");
307 joint.SetMotorForce(DynamicsJoint::LINEAR_X, 0.5f );
308 DALI_TEST_CHECK( true );
312 int UtcDaliDynamicsJointGetActor(void)
314 TestApplication application;
317 application.SendNotification();
318 application.Render();
319 application.Render();
321 DynamicsWorldConfig worldConfig(DynamicsWorldConfig::New());
322 DynamicsWorld world( Stage::GetCurrent().InitializeDynamics(worldConfig) );
326 // cannot create dynamics world, log failure and exit
327 DALI_TEST_CHECK( false );
331 DynamicsBodyConfig bodyConfig(DynamicsBodyConfig::New());
332 Actor actor1(Actor::New());
333 actor1.EnableDynamics(bodyConfig);
334 Actor actor2(Actor::New());
335 actor2.EnableDynamics(bodyConfig);
337 DynamicsJoint joint( actor1.AddDynamicsJoint(actor2, Vector3() ) );
339 tet_infoline("UtcDaliDynamicsJointGetActor");
340 DALI_TEST_CHECK( joint.GetActor(true) == actor1 && joint.GetActor(false) == actor2 );