int main () { printf ("Results of node_bind3_test:\n"); Node::Pointer node (Node::Create ()), parent1 (Node::Create ()), parent2 (Node::Create ()); node->SetPosition (1, 2, 3); node->SetOrientation (degree (90.0f), 1, 0, 0); node->SetScale (-1, 2, 3); parent1->SetPosition (-1, -5, 2); parent1->SetOrientation (degree (90.0f), 0, 1, 0); parent1->SetScale (-1, -2, 1); parent1->SetPosition (8, 2, 3); parent1->SetOrientation (degree (90.0f), 0, 0, 1); parent1->SetScale (2, 3, 1); node->BindToParent (*parent1); printf ("before\n position: "); dump_position (*node); printf ("\n orientation: "); dump_orientation (*node); printf ("\n scale: "); dump_scale (*node); printf ("\n"); node->BindToParent (*parent2, NodeBindMode_AddRef, NodeTransformSpace_World); printf ("after rebind\n position: "); dump_position (*node); printf ("\n orientation: "); dump_orientation (*node); printf ("\n scale: "); dump_scale (*node); printf ("\n"); node->Unbind (NodeTransformSpace_World); printf ("after unbind\n position: "); dump_position (*node); printf ("\n orientation: "); dump_orientation (*node); printf ("\n scale: "); dump_scale (*node); printf ("\n"); return 0; }
int main () { printf ("Results of node_transform_world_scale_test:\n"); Node::Pointer node (Node::Create ()), parent (Node::Create ()); node->BindToParent (*parent); printf ("set scale result: "); node->SetScale (1, 2, 3); dump_scale (*node); printf ("\n"); printf ("translate parent\n"); parent->Translate (0, 2, 0); printf ("parent position: "); dump_position (*parent); printf ("\nnode scale: "); dump_scale (*node); printf ("\n"); printf ("rotate parent\n"); parent->Rotate (degree (30.f), degree (0.f), degree (0.f)); printf ("parent orientation: "); dump_orientation (*parent); printf ("\nnode scale: "); dump_scale (*node); printf ("\n"); printf ("scale parent\n"); parent->Scale (2, 3, -1); printf ("parent scale: "); dump_scale (*parent); printf ("\nnode scale: "); dump_scale (*node); printf ("\n"); printf ("no parent-scale inherit\n"); node->SetScaleInherit (false); printf ("node scale: "); dump_scale (*node); printf ("\n"); return 0; }
virtual int Run(int argc, char* argv[]) { dWorld world; world.setGravity(0, 0, -1.0); dMass m; m.setSphereTotal(1.0, 0.2); dBody ball(world); ball.setMass(m); ball.setPosition(0, 0, 1.0); while(true) { const dReal stepsize = 0.1; world.step(stepsize); dump_position(ball.getPosition()); if(get_cin_key() == 'q') break; } return 0; }