private void SetTransformEdit() { IsEntryReady = false; if (FrameResource.IsFrameType(currentObject)) { FrameObjectBase fObject = (currentObject as FrameObjectBase); CurrentEntry.Text = fObject.Name.String; PositionXNumeric.Value = Convert.ToDecimal(fObject.Matrix.Position.X); PositionYNumeric.Value = Convert.ToDecimal(fObject.Matrix.Position.Y); PositionZNumeric.Value = Convert.ToDecimal(fObject.Matrix.Position.Z); RotationXNumeric.Value = Convert.ToDecimal(fObject.Matrix.Rotation.X); RotationYNumeric.Value = Convert.ToDecimal(fObject.Matrix.Rotation.Y); RotationZNumeric.Value = Convert.ToDecimal(fObject.Matrix.Rotation.Z); ScaleXNumeric.Enabled = ScaleYNumeric.Enabled = ScaleZNumeric.Enabled = true; ScaleXNumeric.Value = Convert.ToDecimal(fObject.Matrix.Scale.X); ScaleYNumeric.Value = Convert.ToDecimal(fObject.Matrix.Scale.Y); ScaleZNumeric.Value = Convert.ToDecimal(fObject.Matrix.Scale.Z); } else if (currentObject is ResourceTypes.Collisions.Collision.Placement) { ResourceTypes.Collisions.Collision.Placement placement = (currentObject as ResourceTypes.Collisions.Collision.Placement); CurrentEntry.Text = placement.Hash.ToString(); PositionXNumeric.Value = Convert.ToDecimal(placement.Position.X); PositionYNumeric.Value = Convert.ToDecimal(placement.Position.Y); PositionZNumeric.Value = Convert.ToDecimal(placement.Position.Z); RotationXNumeric.Value = Convert.ToDecimal(placement.Rotation.X); RotationYNumeric.Value = Convert.ToDecimal(placement.Rotation.Y); RotationZNumeric.Value = Convert.ToDecimal(placement.Rotation.Z); ScaleXNumeric.Value = ScaleYNumeric.Value = ScaleZNumeric.Value = 0.0M; ScaleXNumeric.Enabled = ScaleYNumeric.Enabled = ScaleZNumeric.Enabled = false; } IsEntryReady = true; }
public void UpdateObject() { if (IsEntryReady && currentObject != null) { if (FrameResource.IsFrameType(currentObject)) { FrameObjectBase fObject = (currentObject as FrameObjectBase); fObject.Matrix.Position = new Vector3(Convert.ToSingle(PositionXNumeric.Value), Convert.ToSingle(PositionYNumeric.Value), Convert.ToSingle(PositionZNumeric.Value)); fObject.Matrix.SetRotationMatrix(new Vector3(Convert.ToSingle(RotationXNumeric.Value), Convert.ToSingle(RotationYNumeric.Value), Convert.ToSingle(RotationZNumeric.Value))); fObject.Matrix.SetScaleMatrix(new Vector3(Convert.ToSingle(ScaleXNumeric.Value), Convert.ToSingle(ScaleYNumeric.Value), Convert.ToSingle(ScaleZNumeric.Value))); } else if (currentObject is ResourceTypes.Collisions.Collision.Placement) { ResourceTypes.Collisions.Collision.Placement placement = (currentObject as ResourceTypes.Collisions.Collision.Placement); placement.Position = new Vector3(Convert.ToSingle(PositionXNumeric.Value), Convert.ToSingle(PositionYNumeric.Value), Convert.ToSingle(PositionZNumeric.Value)); placement.Rotation = new Vector3(Convert.ToSingle(RotationXNumeric.Value), Convert.ToSingle(RotationYNumeric.Value), Convert.ToSingle(RotationZNumeric.Value)); } } }
private void SetTransformEdit() { IsEntryReady = false; if (FrameResource.IsFrameType(currentObject)) { FrameObjectBase fObject = (currentObject as FrameObjectBase); Vector3 position = Vector3.Zero; Quaternion rotation2 = Quaternion.Identity; Vector3 scale = Vector3.Zero; Matrix4x4.Decompose(fObject.LocalTransform, out scale, out rotation2, out position); CurrentEntry.Text = fObject.Name.ToString(); PositionXNumeric.Value = Convert.ToDecimal(position.X); PositionYNumeric.Value = Convert.ToDecimal(position.Y); PositionZNumeric.Value = Convert.ToDecimal(position.Z); Vector3 rotation = rotation2.ToEuler(); RotationXNumeric.Value = Convert.ToDecimal(rotation.X); RotationYNumeric.Value = Convert.ToDecimal(rotation.Y); RotationZNumeric.Value = Convert.ToDecimal(rotation.Z); ScaleXNumeric.Enabled = ScaleYNumeric.Enabled = ScaleZNumeric.Enabled = true; ScaleXNumeric.Value = Convert.ToDecimal(scale.X); ScaleYNumeric.Value = Convert.ToDecimal(scale.Y); ScaleZNumeric.Value = Convert.ToDecimal(scale.Z); } else if (currentObject is ResourceTypes.Collisions.Collision.Placement) { ResourceTypes.Collisions.Collision.Placement placement = (currentObject as ResourceTypes.Collisions.Collision.Placement); CurrentEntry.Text = placement.Hash.ToString(); PositionXNumeric.Value = Convert.ToDecimal(placement.Position.X); PositionYNumeric.Value = Convert.ToDecimal(placement.Position.Y); PositionZNumeric.Value = Convert.ToDecimal(placement.Position.Z); Vector3 placementRotation = placement.RotationDegrees; RotationXNumeric.Value = Convert.ToDecimal(placementRotation.X); RotationYNumeric.Value = Convert.ToDecimal(placementRotation.Y); RotationZNumeric.Value = Convert.ToDecimal(placementRotation.Z); ScaleXNumeric.Value = ScaleYNumeric.Value = ScaleZNumeric.Value = 0.0M; ScaleXNumeric.Enabled = ScaleYNumeric.Enabled = ScaleZNumeric.Enabled = false; } IsEntryReady = true; }
public void UpdateObject() { if (IsEntryReady && currentObject != null) { Vector3 position = new Vector3(Convert.ToSingle(PositionXNumeric.Value), Convert.ToSingle(PositionYNumeric.Value), Convert.ToSingle(PositionZNumeric.Value)); Vector3 rotation = new Vector3(Convert.ToSingle(RotationXNumeric.Value), Convert.ToSingle(RotationYNumeric.Value), Convert.ToSingle(RotationZNumeric.Value)); Vector3 scale = new Vector3(Convert.ToSingle(ScaleXNumeric.Value), Convert.ToSingle(ScaleYNumeric.Value), Convert.ToSingle(ScaleZNumeric.Value)); if (FrameResource.IsFrameType(currentObject)) { FrameObjectBase fObject = (currentObject as FrameObjectBase); fObject.LocalTransform = MatrixUtils.SetMatrix(rotation, scale, position); } else if (currentObject is ResourceTypes.Collisions.Collision.Placement) { ResourceTypes.Collisions.Collision.Placement placement = (currentObject as ResourceTypes.Collisions.Collision.Placement); placement.Position = position; placement.RotationDegrees = rotation; } } }