private void M2SliderScale_ValueChanged(object sender, RoutedPropertyChangedEventArgs <double> e) { M2SceneNode node = ModelSceneService.Instance.MainM2SceneNode; if (node != null) { float scale = (float)e.NewValue; M2Move move = node.M2Move; if (move != null) { move.Scale = new vector3df(scale, scale, scale); } else { matrix4 mat = new matrix4(true); node.GetRelativeTransformation(out mat); matrix4 newMat = new matrix4(true); newMat.RotationRadians = mat.RotationRadians; newMat.Scale = new vector3df(scale, scale, scale); newMat.Translation = mat.Translation; node.SetRelativeTransformation(ref newMat); } node.Update(true); } }
private void M2ScaleDefault_Click(object sender, RoutedEventArgs e) { M2SceneNode node = ModelSceneService.Instance.MainM2SceneNode; if (node != null) { float scale = 1.0f; M2Move move = node.M2Move; if (move != null) { move.Scale = new vector3df(scale, scale, scale); } else { matrix4 mat = new matrix4(true); node.GetRelativeTransformation(out mat); matrix4 newMat = new matrix4(true); newMat.RotationRadians = mat.RotationRadians; newMat.Scale = new vector3df(scale, scale, scale); newMat.Translation = mat.Translation; node.SetRelativeTransformation(ref newMat); } node.Update(true); } }
public M2SceneNode SetMainM2SceneNode(string filename, bool npc) { if (Client.Instance.GetPlayer().GetRideNpcId() != 0) { Client.Instance.GetPlayer().RideOnModel(0, E_M2_STATES.EMS_STAND); } RemoveMainSceneNode(); M2SceneNode node = Engine.Instance.SceneManager.AddM2SceneNode(filename, null, npc); if (node != null) { switch (node.Type) { case M2Type.MT_INTERFACE: { if (node.M2Fsm != null) { node.M2Fsm.ResetState(); } node.PlayAnimation("Stand", 0, true, 0); node.SetCamera(0); } break; default: { M2Move move = node.M2Move; if (move != null) { move.Dir = new vector3df(0, 0, -1); } else { matrix4 mat = new matrix4(true); mat.RotationDegrees = new vector3df(0, 90, 0); node.SetRelativeTransformation(ref mat); } if (node.M2Fsm != null) { node.M2Fsm.ResetState(); } node.PlayAnimation("Stand", 0, true, 0); } break; } } Engine.Instance.SceneManager.SetDebugM2SceneNode(node); mainM2SceneNode = node; RaiseMainM2SceneNodeChanged(); return(node); }
private void menuWmoScale_SubmenuOpened(object sender, RoutedEventArgs e) { WMOSceneNode node = ModelSceneService.Instance.MainWMOSceneNode; if (node != null) { matrix4 mat = new matrix4(true); node.GetRelativeTransformation(out mat); wmoSliderScale.Value = mat.Scale.X; } }
public M2SceneNode SetMainM2SceneNode(string filename, bool npc) { RemoveMainSceneNode(); M2SceneNode node = Engine.Instance.SceneManager.AddM2SceneNode(filename, null, npc); if (node != null) { switch (node.Type) { case M2Type.MT_INTERFACE: { node.ResetState(); node.PlayAnimation("Stand", 0, true, 0); node.SetCamera(0); } break; default: { matrix4 mat = new matrix4(true); mat.RotationDegrees = new vector3df(0, 90, 0); node.SetRelativeTransformation(ref mat); node.ResetState(); node.PlayAnimation("Stand", 0, true, 0); } break; } } Engine.Instance.SceneManager.SetDebugM2SceneNode(node); mainM2SceneNode = node; RaiseMainM2SceneNodeChanged(); return(node); }
public WMOSceneNode SetMainWMOSceneNode(string filename) { if (Client.Instance.GetPlayer().GetRideNpcId() != 0) { Client.Instance.GetPlayer().RideOnModel(0, E_M2_STATES.EMS_STAND); } RemoveMainSceneNode(); WMOSceneNode node = Engine.Instance.SceneManager.AddWMOSceneNode(filename, null); if (node != null) { float scale = 1.0f; matrix4 mat = new matrix4(true); node.GetRelativeTransformation(out mat); matrix4 newMat = new matrix4(true); newMat.RotationRadians = mat.RotationRadians; newMat.Scale = new vector3df(scale, scale, scale); newMat.Translation = mat.Translation; node.SetRelativeTransformation(ref newMat); node.Update(true); } Engine.Instance.SceneManager.SetDebugWMOSceneNode(node); mainWMOSceneNode = node; RaiseMainWMOSceneNodeChanged(); Player player = Client.Instance.GetPlayer(); player.SetM2AsTarget(null, 15, (float)(Math.PI / 6.0f)); return(node); }
public static extern void gs_matrix_get(out matrix4 dst);
public static extern void vec4_transform(out Vector4 dst, out Vector4 v, out matrix4 m);
public static extern void matrix4_translate4v(out matrix4 dst, out matrix4 m, out Vector4 v);
public static extern void matrix4_rotate_aa(out matrix4 dst, out matrix4 m, out axisang aa);
public static extern bool matrix4_inv(out matrix4 dst, out matrix4 m);
public static extern void matrix4_transpose(out matrix4 dst, out matrix4 m);
public static extern void matrix4_scale(out matrix4 dst, out matrix4 m, out Vector3 v);
public static extern void matrix4_rotate(out matrix4 dst, out matrix4 m, out quat q);
public static extern float matrix4_determinant(out matrix4 m);
public static extern void gs_matrix_mul(out matrix4 matrix);
public static extern void obs_sceneitem_get_box_transform(obs_sceneitem_t item, out matrix4 transform);
public static extern void vec3_transform(out Vector3 dst, out Vector3 v, out matrix4 m);
public static extern void matrix3_from_matrix4(out matrix3 dst, out matrix4 m);
public static extern void gs_effect_set_matrix4(gs_eparam_t param, out matrix4 val);
public static extern void gs_matrix_set(out matrix4 matrix);
public static extern void obs_sceneitem_get_draw_transform(obs_sceneitem_t item, out matrix4 transform);