GLUI_Rotation *GLUI::add_rotation_to_panel( GLUI_Panel *panel, char *name, float *value_ptr, int id, GLUI_Update_CB callback ) { GLUI_Rotation *control; control = new GLUI_Rotation; if ( control ) { control->set_ptr_val( value_ptr ); control->user_id = id; control->set_name( name ); control->callback = callback; add_control( panel, control ); control->init_live(); /*** Init the live 4x4 matrix. This is different than the standard live variable behavior, since the original value of the 4x4 matrix is ignored and reset to Identity ***/ if ( value_ptr != NULL ) { int i, j, index; for( i=0; i<4; i++ ) { for( j=0; j<4; j++ ) { index = i*4+j; if ( i==j ) value_ptr[index] = 1.0; else value_ptr[index] = 0.0; } } } /*init_ball(); */ return control; } else { return NULL; } }