#include "CubeRobot.h" CubeRobot::CubeRobot(Mesh* cube) { //SetMesh(cube); //Uncomment if you want a local origin maker! SceneNode* body = new SceneNode(cube, Vector4(1, 0, 0, 1)); //Red body->SetModelScale(Vector3(10, 15, 5)); body->SetTransform(Matrix4::Translation(Vector3(0, 35, 0))); body->SetBoundingRadius(15.0f); AddChild(body); head = new SceneNode(cube, Vector4(0, 1, 0, 1)); //Green head->SetModelScale(Vector3(5, 5, 5)); head->SetTransform(Matrix4::Translation(Vector3(0, 30, 0))); head->SetBoundingRadius(5.0f); body->AddChild(head); leftArm = new SceneNode(cube, Vector4(0, 0, 1, 1)); leftArm->SetModelScale(Vector3(3, -18, 3)); leftArm->SetTransform(Matrix4::Translation(Vector3(-12, 30, -1))); leftArm->SetBoundingRadius(18.0f); body->AddChild(leftArm); rightArm = new SceneNode(cube, Vector4(0, 0, 1, 1)); rightArm->SetModelScale(Vector3(3, -18, 3)); rightArm->SetTransform(Matrix4::Translation(Vector3(12, 30, -1))); rightArm->SetBoundingRadius(18.0f); body->AddChild(rightArm); SceneNode* leftLeg = new SceneNode(cube, Vector4(0, 0, 1, 1)); leftLeg->SetModelScale(Vector3(3, -17.5, 3)); leftLeg->SetTransform(Matrix4::Translation(Vector3(-8, 0, 0))); leftLeg->SetBoundingRadius(18.0f); body->AddChild(leftLeg); SceneNode* rightLeg = new SceneNode(cube, Vector4(0, 0, 1, 1)); rightLeg->SetModelScale(Vector3(3, -17.5, 3)); rightLeg->SetTransform(Matrix4::Translation(Vector3(8, 0, 0))); rightLeg->SetBoundingRadius(18.0f); body->AddChild(rightLeg); } void CubeRobot::Update(float dt) { transform = transform * Matrix4::Rotation(30.0f * dt, Vector3(0, 1, 0)); head->SetTransform(head->GetTransform() * Matrix4::Rotation(-30.0f * dt, Vector3(0, 1, 0))); leftArm->SetTransform(leftArm->GetTransform() * Matrix4::Rotation(-30.0f * dt, Vector3(1, 0, 0))); rightArm->SetTransform(rightArm->GetTransform() * Matrix4::Rotation(-30.0f * dt, Vector3(1, 0, 0))); SceneNode::Update(dt); } //#include "CubeRobot.h" // //CubeRobot::CubeRobot(Mesh * cube) { // // SetMesh ( cube ); // Uncomment if you want a local origin marker ! // SceneNode * body = new SceneNode(cube, Vector4(1, 0, 0, 1)); // Red ! // body -> SetModelScale(Vector3(10, 15, 5)); // body -> SetTransform(Matrix4::Translation(Vector3(0, 35, 0))); // AddChild(body); // // head = new SceneNode(cube, Vector4(0, 1, 0, 1)); // Green ! // head -> SetModelScale(Vector3(5, 5, 5)); // head -> SetTransform(Matrix4::Translation(Vector3(0, 30, 0))); // body -> AddChild(head); // // leftArm = new SceneNode(cube, Vector4(0, 0, 1, 1)); // Blue ! // leftArm -> SetModelScale(Vector3(3, -18, 3)); // leftArm -> SetTransform(Matrix4::Translation(Vector3(-12, 30, -1))); // body -> AddChild(leftArm); // // rightArm = new SceneNode(cube, Vector4(0, 0, 1, 1)); // Blue ! // rightArm -> SetModelScale(Vector3(3, -18, 3)); // rightArm -> SetTransform(Matrix4::Translation(Vector3(12, 30, -1))); // body -> AddChild(rightArm); // // SceneNode * leftLeg = new SceneNode(cube, Vector4(0, 0, 1, 1)); // Blue ! // leftLeg -> SetModelScale(Vector3(3, -17.5, 3)); // leftLeg -> SetTransform(Matrix4::Translation(Vector3(-8, 0, 0))); // body -> AddChild(leftLeg); // // SceneNode * rightLeg = new SceneNode(cube, Vector4(0, 0, 1, 1)); // Blue ! // rightLeg -> SetModelScale(Vector3(3, -17.5, 3)); // rightLeg -> SetTransform(Matrix4::Translation(Vector3(8, 0, 0))); // body -> AddChild(rightLeg); // //} // // //void CubeRobot::Update(float dt) { // transform = transform * // Matrix4::Rotation(30.0f * dt, Vector3(0, 1, 0)); // // head -> SetTransform(head -> GetTransform() * // Matrix4::Rotation(-30.0f * dt, Vector3(0, 1, 0))); // // // // leftArm -> SetTransform(leftArm -> GetTransform() * // Matrix4::Rotation(-30.0f * dt, Vector3(1, 0, 0))); // // rightArm -> SetTransform(rightArm -> GetTransform() * // Matrix4::Rotation(30.0f * dt, Vector3(1, 0, 0))); // // SceneNode::Update(dt); // //}