|
@@ -58,7 +58,8 @@
|
|
|
|
|
|
var loader = new THREE.ColladaLoader();
|
|
|
loader.options.convertUpAxis = true;
|
|
|
- loader.load( './models/collada/kawada-hironx.dae', function ( collada ) {
|
|
|
+ // loader.load( './models/collada/kawada-hironx.dae', function ( collada ) {
|
|
|
+ loader.load( './models/collada/abb_irb52_7_120.dae', function ( collada ) {
|
|
|
|
|
|
dae = collada.scene;
|
|
|
|
|
@@ -135,17 +136,25 @@
|
|
|
|
|
|
var target = {};
|
|
|
|
|
|
- for ( var i = 0; i < kinematics.joints.length; i ++ ) {
|
|
|
+ for ( var prop in kinematics.joints ) {
|
|
|
|
|
|
- var joint = kinematics.joints[ i ];
|
|
|
+ if ( kinematics.joints.hasOwnProperty( prop ) ) {
|
|
|
|
|
|
- var old = tweenParameters[ i ];
|
|
|
+ if ( ! kinematics.joints[ prop ].static ) {
|
|
|
|
|
|
- var position = old ? old : joint.zeroPosition;
|
|
|
+ var joint = kinematics.joints[ prop ];
|
|
|
|
|
|
- tweenParameters[ i ] = position;
|
|
|
+ var old = tweenParameters[ prop ];
|
|
|
|
|
|
- target[ i ] = THREE.Math.randInt( joint.limits.min, joint.limits.max )
|
|
|
+ var position = old ? old : joint.zeroPosition;
|
|
|
+
|
|
|
+ tweenParameters[ prop ] = position;
|
|
|
+
|
|
|
+ target[ prop ] = THREE.Math.randInt( joint.limits.min, joint.limits.max )
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
@@ -153,9 +162,17 @@
|
|
|
|
|
|
kinematicsTween.onUpdate( function() {
|
|
|
|
|
|
- for ( var i = 0; i < kinematics.joints.length; i ++ ) {
|
|
|
+ for ( var prop in kinematics.joints ) {
|
|
|
+
|
|
|
+ if ( kinematics.joints.hasOwnProperty( prop ) ) {
|
|
|
+
|
|
|
+ if ( ! kinematics.joints[ prop ].static ) {
|
|
|
+
|
|
|
+ kinematics.setJointValue( prop, this[ prop ] );
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
- kinematics.setJointValue( i, this[ i ] );
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
@@ -192,11 +209,11 @@
|
|
|
|
|
|
var timer = Date.now() * 0.0001;
|
|
|
|
|
|
- camera.position.x = Math.cos( timer ) * 17;
|
|
|
+ camera.position.x = Math.cos( timer ) * 20;
|
|
|
camera.position.y = 10;
|
|
|
- camera.position.z = Math.sin( timer ) * 17;
|
|
|
+ camera.position.z = Math.sin( timer ) * 20;
|
|
|
|
|
|
- camera.lookAt( scene.position );
|
|
|
+ camera.lookAt( new THREE.Vector3( 0, 5, 0 ) );
|
|
|
|
|
|
particleLight.position.x = Math.sin( timer * 4 ) * 3009;
|
|
|
particleLight.position.y = Math.cos( timer * 5 ) * 4000;
|