Toward Programming of Assembly Tasks by Demonstration in Virtual Environments