public override void render(float elapsedTime) { Device d3dDevice = GuiController.Instance.D3dDevice; TgcKinectSkeletonData data = tgcKinect.update(); if (data.Active) { tgcKinect.DebugSkeleton.render(data.Current.KinectSkeleton); Vector3 headPos = TgcKinectUtils.toVector3(data.Current.KinectSkeleton.Joints[JointType.Head].Position); Vector3 centerPos = TgcKinectUtils.toVector3(data.Current.KinectSkeleton.Joints[JointType.HipCenter].Position); float length = Vector3.Length(headPos - centerPos); BigLogger.log("Length", length); BigLogger.log("HipCenter", data.Current.CenterPos); BigLogger.log("RightHandPos", data.Current.RightHandPos); BigLogger.log("LefttHandPos", data.Current.LefttHandPos); BigLogger.renderLog(); } GuiController.Instance.UserVars["tracking"] = data.Active.ToString(); center.render(); bounds.render(); }
public override void render(float elapsedTime) { TgcModifiers modifiers = GuiController.Instance.Modifiers; Vector2 size = (Vector2)modifiers.getValue("size"); Vector3 position = (Vector3)modifiers.getValue("position"); collider.Center = position; collider.Radius = size.X; collider.Length = size.Y; if (TgcCollisionUtils.testSphereCylinder(collisionableSphere, collider)) { collisionableSphere.setRenderColor(collisionColor); } else { collisionableSphere.setRenderColor(noCollisionColor); } if (TgcCollisionUtils.testAABBCylinder(collisionableAABB, collider)) { collisionableAABB.setRenderColor(collisionColor); } else { collisionableAABB.setRenderColor(noCollisionColor); } if (TgcCollisionUtils.testCylinderCylinder(collisionableCylinder, collider)) { collisionableCylinder.setRenderColor(collisionColor); } else { collisionableCylinder.setRenderColor(noCollisionColor); } collider.render(); collisionableSphere.render(); collisionableAABB.render(); collisionableCylinder.render(); }
public override void render(float elapsedTime) { Device d3dDevice = GuiController.Instance.D3dDevice; //Velocidad de movimiento 2D tgcKinect.Hands2dSpeed = new Vector2((float)GuiController.Instance.Modifiers["speedX"], (float)GuiController.Instance.Modifiers["speedY"]); //Actualizar estado de kinect TgcKinectSkeletonData data = tgcKinect.update(); if (data.Active) { //Render de esqueleto debug tgcKinect.DebugSkeleton.render(data.Current.KinectSkeleton); //Debug de pos de manos bool showValues = (bool)GuiController.Instance.Modifiers["showValues"]; if (showValues) { BigLogger.log("RightHandPos", data.Current.RightHandPos); BigLogger.log("LefttHandPos", data.Current.LefttHandPos); BigLogger.renderLog(); } //Dibujar cursores rightHandPointer.Position = data.Current.RightHandPos; leftHandPointer.Position = data.Current.LefttHandPos; GuiController.Instance.Drawer2D.beginDrawSprite(); rightHandPointer.render(); leftHandPointer.render(); GuiController.Instance.Drawer2D.endDrawSprite(); } //Dibujar limites de escena center.render(); bounds.render(); }
public override void render(float elapsedTime) { Device d3dDevice = GuiController.Instance.D3dDevice; //Tomar tracking de kinect TgcKinectSkeletonData data = tgcKinect.update(); if (data.Active) { //Render de esqueleto tgcKinect.DebugSkeleton.render(data.Current.KinectSkeleton); //Analizar gestos Gesture gesture; if (gestureAnalizer.analize(data, out gesture)) { switch (gesture.Type) { //Gesto de abrir cajon case GestureType.OpenZ: //Buscar si fue cerca de algun cajon valido foreach (GestureLocker cajon in cajones) { if (cajon.validateGesture(gesture)) { cajon.open(); break; } } break; //Gesto de cerrar cajon case GestureType.CloseZ: //Buscar si fue cerca de algun cajon valido foreach (GestureLocker cajon in cajones) { if (cajon.validateGesture(gesture)) { cajon.close(); break; } } break; } } } //Dibujar cajones foreach (GestureLocker l in cajones) { l.update(); l.HandleSphere.render(); l.Mesh.render(); l.Mesh.BoundingBox.render(); } //Dibujar BoundingSphere de manos del esqueleto data.Current.RightHandSphere.render(); data.Current.LeftHandSphere.render(); //Dibujar mueble mueble.render(); center.render(); sceneBounds.render(); }
public override void render(float elapsedTime) { Device d3dDevice = GuiController.Instance.D3dDevice; TgcKinectSkeletonData data = tgcKinect.update(); if (data.Active) { //render esqueleto kinect tgcKinect.DebugSkeleton.render(data.Current.KinectSkeleton); //Analizar gestos Gesture gesture; if (gestureAnalizer.analize(data, out gesture)) { switch (gesture.Type) { //Gesto de abrir cajon case GestureType.OpenZ: abrirCajon(gesture.Pos); break; //Gesto de cerrar cajon case GestureType.CloseZ: cerrarCajon(gesture.Pos); break; } } } foreach (TgcMesh m in _meshes) { m.render(); } if (GuiController.Instance.D3dInput.keyPressed(Microsoft.DirectX.DirectInput.Key.Z)) { foreach (CajonFocus cajon in cajones) { cajon.open(); } } if (GuiController.Instance.D3dInput.keyPressed(Microsoft.DirectX.DirectInput.Key.X)) { foreach (CajonFocus cajon in cajones) { cajon.close(); } } foreach (CajonFocus cajon in cajones) { cajon.update(); cajon.render(); } /* * foreach (FocusSet c in _conjuntos) * { * //c.animate(); * //c.Render(); * } */ center.render(); bounds.render(); }
public override void render(float elapsedTime) { TgcModifiers modifiers = GuiController.Instance.Modifiers; Vector2 size = (Vector2)modifiers.getValue("size"); Vector3 position = (Vector3)modifiers.getValue("position"); collider.Center = position; collider.Radius = size.X; collider.Length = size.Y; collider.updateValues(); if (TgcCollisionUtils.testSphereCylinder(collisionableSphere, collider)) { collisionableSphere.setRenderColor(collisionColor); } else { collisionableSphere.setRenderColor(noCollisionColor); } if (TgcCollisionUtils.testAABBCylinder(collisionableAABB, collider)) { collisionableAABB.setRenderColor(collisionColor); } else { collisionableAABB.setRenderColor(noCollisionColor); } if (TgcCollisionUtils.testCylinderCylinder(collisionableCylinder, collider)) { collisionableCylinder.setRenderColor(collisionColor); } else { collisionableCylinder.setRenderColor(noCollisionColor); } if (pickingTimeLeft > 0) { pickingTimeLeft -= elapsedTime; } else { collider.setRenderColor(noCollisionColor); } if (GuiController.Instance.D3dInput.buttonPressed(TgcViewer.Utils.Input.TgcD3dInput.MouseButtons.BUTTON_LEFT)) { TgcPickingRay pickingRay = new TgcPickingRay(); pickingRay.updateRay(); if (TgcCollisionUtils.testRayCylinder(pickingRay.Ray, collider)) { pickingTimeLeft = PICKING_TIME; collider.setRenderColor(pickingColor); } } collider.render(); collisionableSphere.render(); collisionableAABB.render(); collisionableCylinder.render(); }
public override void Render() { PreRender(); var velocidadCaminar = 50f * ElapsedTime; //Calcular proxima posicion de personaje segun Input var d3dInput = TgcD3dInput.Instance; var moving = false; var movement = new Vector3(0, 0, 0); //Adelante if (d3dInput.keyDown(Key.W)) { movement.Z = velocidadCaminar; moving = true; } //Atras if (d3dInput.keyDown(Key.S)) { movement.Z = -velocidadCaminar; moving = true; } //Derecha if (d3dInput.keyDown(Key.D)) { movement.X = velocidadCaminar; moving = true; } //Izquierda if (d3dInput.keyDown(Key.A)) { movement.X = -velocidadCaminar; moving = true; } //Salto if (d3dInput.keyDown(Key.Space)) { movement.Y = velocidadCaminar; moving = true; } //Agachar if (d3dInput.keyDown(Key.LeftControl)) { movement.Y = -velocidadCaminar; moving = true; } //Si hubo desplazamiento if (moving) { //Aplicar movimiento box.move(movement); } //Hacer que la camara siga al personaje en su nueva posicion camaraInterna.Target = box.Position; //Detectar colision con triangulo if (TgcCollisionUtils.testTriangleAABB(triangle[0].Position, triangle[1].Position, triangle[2].Position, box.BoundingBox)) { box.BoundingBox.render(); triagleAABB.render(); } //Detectar colision con el otro AABB if (TgcCollisionUtils.testAABBAABB(box.BoundingBox, box2.BoundingBox)) { box.BoundingBox.render(); box2.BoundingBox.render(); } //Detectar colision con la esfera if (TgcCollisionUtils.testSphereAABB(sphere, box.BoundingBox)) { box.BoundingBox.render(); sphere.setRenderColor(Color.Red); } else { sphere.setRenderColor(Color.Yellow); } //Detectar colision con la obb if (TgcCollisionUtils.testObbAABB(obb, box.BoundingBox)) { box.BoundingBox.render(); obb.setRenderColor(Color.Red); } else { obb.setRenderColor(Color.Yellow); } //Dibujar box.render(); box2.render(); sphere.render(); obb.render(); //triangulo D3DDevice.Instance.Device.Transform.World = Matrix.Identity; D3DDevice.Instance.Device.VertexFormat = CustomVertex.PositionColored.Format; D3DDevice.Instance.Device.DrawUserPrimitives(PrimitiveType.TriangleList, 1, triangle); PostRender(); }
public override void render(float elapsedTime) { Device d3dDevice = GuiController.Instance.D3dDevice; //Tomar tracking de kinect TgcKinectSkeletonData data = tgcKinect.update(); if (data.Active) { //Render de esqueleto tgcKinect.DebugSkeleton.render(data.Current.KinectSkeleton); if (Vector3.Length(data.Current.CenterPos - sceneCenter) <= 30f) { sceneCenterBox.Color = Color.Red; sceneCenterBox.updateValues(); //Analizar gestos Gesture gesture; if (gestureAnalizer.analize(data, out gesture)) { switch (gesture.Type) { case GestureType.OpenLeft: if (door.validateGesture(gesture)) { door.open(); } break; case GestureType.OpenRight: if (door.validateGesture(gesture)) { door.close(); } break; } } } else { sceneCenterBox.Color = Color.Blue; sceneCenterBox.updateValues(); } } //Dibujar puerta door.update(); door.Mesh.render(); //Dibujar BoundingSphere de manos del esqueleto data.Current.RightHandSphere.render(); data.Current.LeftHandSphere.render(); //Dibujar mueble mueble.render(); sceneBounds.render(); sceneCenterBox.render(); }
public override void Render() { PreRender(); var size = (Vector2)Modifiers.getValue("size"); var position = (Vector3)Modifiers.getValue("position"); collider.Center = position; collider.Radius = size.X; collider.Length = size.Y; collider.updateValues(); if (TgcCollisionUtils.testSphereCylinder(collisionableSphere, collider)) { collisionableSphere.setRenderColor(collisionColor); } else { collisionableSphere.setRenderColor(noCollisionColor); } if (TgcCollisionUtils.testAABBCylinder(collisionableAABB, collider)) { collisionableAABB.setRenderColor(collisionColor); } else { collisionableAABB.setRenderColor(noCollisionColor); } if (TgcCollisionUtils.testCylinderCylinder(collisionableCylinder, collider)) { collisionableCylinder.setRenderColor(collisionColor); } else { collisionableCylinder.setRenderColor(noCollisionColor); } if (pickingTimeLeft > 0) { pickingTimeLeft -= ElapsedTime; } else { collider.setRenderColor(noCollisionColor); } if (TgcD3dInput.Instance.buttonPressed(TgcD3dInput.MouseButtons.BUTTON_LEFT)) { var pickingRay = new TgcPickingRay(); pickingRay.updateRay(); if (TgcCollisionUtils.testRayCylinder(pickingRay.Ray, collider)) { pickingTimeLeft = PICKING_TIME; collider.setRenderColor(pickingColor); } } collider.render(); collisionableSphere.render(); collisionableAABB.render(); collisionableCylinder.render(); PostRender(); }