NOTE: currently, only the first 100 points in the display data are used for the registration.
target is a display data containing target points.
actor is an actor that will receive the transformation.
threshold is an absolute measure used to control the iterative loop. The loop will continue until the root mean square error is less than this value, or, the number of iterations is exceeded.
precision is an absolute measure on the difference between the last iteration's solution and the current iteration. If this difference is less than precision, a saddle point is detected in in the minimization.
iterations is an upper bound on the number of iterations.
/* create some points */
display_data new: data1 points=( 0,0,0, 0,1,0, 0,0,1, 0,1,1);
/* data2 will contain transformed points from data1 */ display_data new: data2;
/* a transformation filter to test the process */ transform_filter new: trans1 data_in=data1 data_out=data2 ;
/* setup a registration */ register_display_data new: rdd source=data1 target=trans1 actor=bill threshold=0 precision=0 ;
/* a guy to transform */ actor new: bill;
/* register data1 with data2 */ trans1 position+ (5, 10, 15) rotate_z:30 rotate_x: 10 rotate_y: 20 ;
/* do the registration */ rdd tick!;
/* check the position and orientation */ trans1 print: (orientation, position); bill print: (orientation, position);