public override void CreateTransformMatrix(Vector3 Position, Vector3 Rotation) { this.Position = Position; this.Rotation = Rotation; switch (TriggerShape) { case TriggerLightShape.Sphere: sphereBound = new BoundingSphere(Position, Radius); transformMatrix = Matrix.Scaling(Radius * 2); break; case TriggerLightShape.Cube: transformMatrix = Matrix.Scaling(ScaleX * 2, ScaleY * 2, ScaleZ * 2); break; case TriggerLightShape.Cylinder: transformMatrix = Matrix.Scaling(Radius * 2, Height * 2, Radius * 2); break; case TriggerLightShape.NotInUse: base.CreateTransformMatrix(Position, Rotation); return; } transformMatrix = transformMatrix * Matrix.RotationZ(ReadWriteCommon.BAMStoRadians(Rotation.Z)) * Matrix.RotationY(ReadWriteCommon.BAMStoRadians(Rotation.Y)) * Matrix.RotationX(ReadWriteCommon.BAMStoRadians(Rotation.X)) * Matrix.Translation(Position); }
public override void Draw(SharpRenderer renderer, string[][] modelNames, int modelMiscSetting, bool isSelected) { base.Draw(renderer, modelNames, modelMiscSetting, isSelected); string flagModelName = "S01_PN_HATA0.DFF"; if (Type < 8 && Program.MainForm.renderer.dffRenderer.DFFModels.ContainsKey(flagModelName)) { renderData.worldViewProjection = Matrix.Scaling(Scale) * Matrix.RotationX(ReadWriteCommon.BAMStoRadians(Rotation.X)) * Matrix.RotationY(ReadWriteCommon.BAMStoRadians(Rotation.Y)) * Matrix.RotationZ(ReadWriteCommon.BAMStoRadians(Rotation.Z)) * Matrix.RotationY(MathUtil.DegreesToRadians(FlagAngle)) * Matrix.Translation(Position) * renderer.viewProjection; renderData.Color = isSelected ? renderer.selectedObjectColor : Vector4.One; renderer.Device.SetFillModeDefault(); renderer.Device.SetCullModeDefault(); renderer.Device.SetBlendStateAlphaBlend(); renderer.Device.ApplyRasterState(); renderer.Device.UpdateAllStates(); renderer.Device.UpdateData(renderer.tintedBuffer, renderData); renderer.Device.DeviceContext.VertexShader.SetConstantBuffer(0, renderer.tintedBuffer); renderer.tintedShader.Apply(); Program.MainForm.renderer.dffRenderer.DFFModels[flagModelName].Render(renderer.Device); } }
public void CreateTransformMatrix() { if (TriggerShape == 1) //plane { triggerPosWorld = Matrix.Scaling(TriggerScale.X, TriggerScale.Y, 1f); } else if (TriggerShape == 3) // cube { triggerPosWorld = Matrix.Scaling(TriggerScale); } else if (TriggerShape == 4) // cyl { triggerPosWorld = Matrix.Scaling(TriggerScale.X, TriggerScale.Y, TriggerScale.X); } else // sphere { triggerPosWorld = Matrix.Scaling(TriggerScale / 2); } triggerPosWorld = triggerPosWorld * Matrix.RotationX(ReadWriteCommon.BAMStoRadians(TriggerRotX)) * Matrix.RotationY(ReadWriteCommon.BAMStoRadians(TriggerRotY)) * Matrix.RotationZ(ReadWriteCommon.BAMStoRadians(TriggerRotZ)) * Matrix.Translation(TriggerPosition); pointAWorld = Matrix.Scaling(5) * Matrix.Translation(PointA); pointBWorld = Matrix.Scaling(5) * Matrix.Translation(PointB); pointCWorld = Matrix.Scaling(5) * Matrix.Translation(PointC); camPosWorld = Matrix.Scaling(5) * Matrix.Translation(CamPos); CreateBounding(); }
public override void CreateTransformMatrix(Vector3 Position, Vector3 Rotation) { this.Position = Position; this.Rotation = Rotation; transformMatrix = Matrix.RotationY(ReadWriteCommon.BAMStoRadians(Rotation.Y)) * Matrix.RotationX(ReadWriteCommon.BAMStoRadians(Rotation.X)) * Matrix.RotationZ(ReadWriteCommon.BAMStoRadians(Rotation.Z)) * Matrix.Translation(Position); positionsList = new List <Vector3>(NumberOfRings); if (Type == RingType.Normal) // single ring { positionsList.Add(Vector3.Zero); } else if (Type == RingType.Line) // line of rings { if (NumberOfRings < 2) { return; } for (int i = 0; i < NumberOfRings; i++) { positionsList.Add(new Vector3(0, 0, TotalLenght * i / (NumberOfRings - 1))); } } else if (Type == RingType.Circle) // circle { if (NumberOfRings < 1) { return; } for (int i = 0; i < NumberOfRings; i++) { positionsList.Add((Vector3)Vector3.Transform(new Vector3(0, 0, -Radius), Matrix.RotationY(2 * (float)Math.PI * i / NumberOfRings))); } } else if (Type == RingType.Arch) // arch { if (NumberOfRings < 2) { return; } float angle = TotalLenght / Radius; for (int i = 0; i < NumberOfRings; i++) { Matrix Locator = Matrix.Translation(new Vector3(Radius, 0, 0)); positionsList.Add((Vector3)Vector3.Transform(Vector3.Zero, Locator * Matrix.RotationY(angle / (NumberOfRings - 1) * i) * Matrix.Invert(Locator))); } } }
public override void CreateTransformMatrix() { transformMatrix = Matrix.RotationZ(ReadWriteCommon.BAMStoRadians((int)Rotation.Z)) * Matrix.RotationX(ReadWriteCommon.BAMStoRadians((int)Rotation.X)) * Matrix.RotationY(ReadWriteCommon.BAMStoRadians((int)Rotation.Y) + MathUtil.Pi) * Matrix.Translation(Position); CreateBoundingBox(); }
public override void CreateTransformMatrix(Vector3 Position, Vector3 Rotation) { this.Position = Position; this.Rotation = Rotation; transformMatrix = Matrix.Scaling(ScaleX, ScaleY, ScaleZ) * Matrix.RotationX(ReadWriteCommon.BAMStoRadians(Rotation.X)) * Matrix.RotationY(ReadWriteCommon.BAMStoRadians(Rotation.Y)) * Matrix.RotationZ(ReadWriteCommon.BAMStoRadians(Rotation.Z)) * Matrix.Translation(Position); }
public override void CreateTransformMatrix(Vector3 Position, Vector3 Rotation) { this.Position = Position; this.Rotation = Rotation; transformMatrix = Matrix.RotationY(ReadWriteCommon.BAMStoRadians((int)Rotation.Y) + MathUtil.Pi) * Matrix.RotationX(ReadWriteCommon.BAMStoRadians((int)Rotation.X)) * Matrix.RotationZ(ReadWriteCommon.BAMStoRadians((int)Rotation.Z)) * Matrix.Translation(Position); }
public override void CreateTransformMatrix(Vector3 Position, Vector3 Rotation) { this.Position = Position; this.Rotation = Rotation; sphereBound = new BoundingSphere(Position, Radius); transformMatrix = Matrix.Scaling(Radius * 2) * Matrix.RotationY(ReadWriteCommon.BAMStoRadians(Rotation.Y)) * Matrix.RotationX(ReadWriteCommon.BAMStoRadians(Rotation.X)) * Matrix.RotationZ(ReadWriteCommon.BAMStoRadians(Rotation.Z)) * Matrix.Translation(Position); }
public override void Draw(SharpRenderer renderer) { base.Draw(renderer); string flagModelName = "S01_PN_HATA0.DFF"; if (FlagType < 8 && renderer.dffRenderer.DFFModels.ContainsKey(flagModelName)) { SetRendererStates(renderer); renderData.worldViewProjection = Matrix.Scaling(Scale) * Matrix.RotationX(ReadWriteCommon.BAMStoRadians(Rotation.X)) * Matrix.RotationY(ReadWriteCommon.BAMStoRadians(Rotation.Y)) * Matrix.RotationZ(ReadWriteCommon.BAMStoRadians(Rotation.Z)) * Matrix.RotationY(MathUtil.DegreesToRadians(FlagAngle)) * Matrix.Translation(Position) * renderer.viewProjection; renderer.Device.UpdateData(renderer.tintedBuffer, renderData); renderer.Device.DeviceContext.VertexShader.SetConstantBuffer(0, renderer.tintedBuffer); renderer.dffRenderer.DFFModels[flagModelName].Render(renderer.Device); } }
public override void CreateTransformMatrix(Vector3 Position, Vector3 Rotation) { Vector3 box = Program.MainForm.ParticleEditor.GetBoxForSetParticle(Number - 50); if (box != Vector3.Zero) { this.Position = Position; this.Rotation = Rotation; box.X = Math.Max(1f, box.X); box.Y = Math.Max(1f, box.Y); box.Z = Math.Max(1f, box.Z); transformMatrix = Matrix.Scaling(box * 2) * Matrix.RotationX(ReadWriteCommon.BAMStoRadians((int)Rotation.X)) * Matrix.RotationY(ReadWriteCommon.BAMStoRadians((int)Rotation.Y)) * Matrix.RotationZ(ReadWriteCommon.BAMStoRadians((int)Rotation.Z)) * Matrix.Translation(Position); } else { base.CreateTransformMatrix(Position, Rotation); } }
public void NewMatrix(Vector3 Position, int Rotation) { world = Matrix.Scaling(20f, 20f, 30f) * Matrix.RotationY(ReadWriteCommon.BAMStoRadians(Rotation)) * Matrix.Translation(Position); }
public override void CreateTransformMatrix(Vector3 Position, Vector3 Rotation) { this.Position = Position; this.Rotation = Rotation; transformMatrix = Matrix.RotationY(ReadWriteCommon.BAMStoRadians(Rotation.Y)) * Matrix.RotationX(ReadWriteCommon.BAMStoRadians(Rotation.X)) * Matrix.RotationZ(ReadWriteCommon.BAMStoRadians(Rotation.Z)) * Matrix.Translation(Position); positionsList = new List <Matrix>(NumberOfRings); switch (Type) // single ring { case RingType.Normal: positionsList.Add(Matrix.Identity); break; case RingType.Line: // line of rings if (NumberOfRings < 2) { return; } for (int i = 0; i < NumberOfRings; i++) { positionsList.Add(Matrix.Translation(0, 0, TotalLenght * i / (NumberOfRings - 1))); } break; case RingType.Circle: // circle if (NumberOfRings < 1) { return; } for (int i = 0; i < NumberOfRings; i++) { //positionsList.Add(Matrix.Translation((Vector3)Vector3.Transform(new Vector3(0, 0, -Radius), Matrix.RotationY(2 * (float)Math.PI * i / NumberOfRings)))); positionsList.Add(Matrix.Translation(0, 0, -Radius) * Matrix.RotationY(2 * (float)Math.PI * i / NumberOfRings)); } break; case RingType.Arch: // arch if (NumberOfRings < 2) { return; } float angle = TotalLenght / Radius; for (int i = 0; i < NumberOfRings; i++) { Matrix Locator = Matrix.Translation(new Vector3(Radius, 0, 0)); //positionsList.Add((Vector3)Vector3.Transform(Vector3.Zero, Locator // * Matrix.RotationY(angle / (NumberOfRings - 1) * i) // * Matrix.Invert(Locator))); positionsList.Add(Locator * Matrix.RotationY(angle / (NumberOfRings - 1) * i) * Matrix.Invert(Locator)); } break; } }
public Matrix DefaultTransformMatrix(float yAdd = 0) => Matrix.RotationY(ReadWriteCommon.BAMStoRadians((int)Rotation.Y) + yAdd) * Matrix.RotationX(ReadWriteCommon.BAMStoRadians((int)Rotation.X)) * Matrix.RotationZ(ReadWriteCommon.BAMStoRadians((int)Rotation.Z)) * Matrix.Translation(Position);