/// <summary> /// Velocidad de incremento del mouse cuando traslada un objeto, segun la distancia del objeto a la camara /// </summary> public static float getMouseTranslateIncrementSpeed(MeshCreatorCamera camera, TgcBoundingAxisAlignBox aabb, float movement) { var dist = distanceFromCameraToObject(camera, aabb); return(movement * dist / 50); }
/// <summary> /// Velocidad de incremento XY con el mouse, segun la distancia /// del objeto a la camara /// </summary> public static TGCVector2 getMouseIncrementXYSpeed(MeshCreatorCamera camera, TgcBoundingAxisAlignBox aabb, TGCVector2 mouseMove) { var dist = distanceFromCameraToObject(camera, aabb); mouseMove.Multiply(dist / 500); return(mouseMove); }
/// <summary> /// Velocidad de de zoom de la rueda del mouse segun la distancia de un punto a la camara /// </summary> public static float getMouseZoomSpeed(MeshCreatorCamera camera, TGCVector3 p) { var dist = distanceFromCameraToPoint(camera, p); if (dist < 100) { return(0.01f); } return(0.10f); }
/// <summary> /// Incremento de tamaño de los ejes del Gizmo de traslacion segun la distancia de un punto a la camara /// </summary> public static float getTranslateGizmoSizeIncrement(MeshCreatorCamera camera, TGCVector3 p) { return(distanceFromCameraToPoint(camera, p) / 500); }
/// <summary> /// Velocidad de incremento del mouse cuando escala un objeto, segun la distancia del objeto a la camara /// </summary> public static float getMouseScaleIncrementSpeed(MeshCreatorCamera camera, TgcBoundingAxisAlignBox aabb, float scaling) { var dist = distanceFromCameraToObject(camera, aabb); return(scaling * dist / 1000); }
/// <summary> /// Velocidad de incremento de altura en Y con el mouse, segun la distancia /// del objeto a la camara /// </summary> public static float getMouseIncrementHeightSpeed(MeshCreatorCamera camera, TgcBoundingAxisAlignBox aabb, float heightY) { var dist = distanceFromCameraToObject(camera, aabb); return(heightY * dist / 500); }
/// <summary> /// Distancia entre un objeto y la camara /// </summary> public static float distanceFromCameraToObject(MeshCreatorCamera camera, TgcBoundingAxisAlignBox aabb) { return(distanceFromCameraToPoint(camera, aabb.calculateBoxCenter())); }
/// <summary> /// Distancia entre un punto y la camara /// </summary> public static float distanceFromCameraToPoint(MeshCreatorCamera camera, TGCVector3 p) { return(TGCVector3.Length(camera.getPosition() - p)); }