Esempio n. 1
0
        public RenderObjectGroup GetRenderObjects(Table.Table table, Origin origin, bool asRightHanded)
        {
            var mesh = GetBaseMesh();

            var(preMatrix, _) = GetPreMatrix(table, origin, asRightHanded);
            var postMatrix = GetPostMatrix(table, origin);

            return(new RenderObjectGroup(_data.Name, "HitTargets", postMatrix, new RenderObject(
                                             _data.Name,
                                             mesh.Transform(preMatrix),
                                             new PbrMaterial(table.GetMaterial(_data.Material), table.GetTexture(_data.Image)),
                                             _data.IsVisible
                                             )));
        }
        public RenderObjectGroup GetRenderObjects(Table.Table table, Origin origin, bool asRightHanded = true)
        {
            var mesh = GetMesh(table);

            var(preVertexMatrix, preNormalsMatrix) = GetPreMatrix(table, origin, asRightHanded);
            var postMatrix = GetPostMatrix(table, origin);

            return(new RenderObjectGroup(_data.Name, "Rubbers", postMatrix, new RenderObject(
                                             _data.Name,
                                             mesh.Transform(preVertexMatrix, preNormalsMatrix),
                                             new PbrMaterial(table.GetMaterial(_data.Material), table.GetTexture(_data.Image)),
                                             _data.IsVisible
                                             )));
        }
Esempio n. 3
0
        public static Trigger GetDefault(Table.Table table)
        {
            var triggerData = new TriggerData(table.GetNewName <Trigger>("Trigger"), table.Width / 2f, table.Height / 2f)
            {
                DragPoints = new[] {
                    new DragPointData(table.Width / 2f - 50f, table.Height / 2f - 50f),
                    new DragPointData(table.Width / 2f - 50f, table.Height / 2f + 50f),
                    new DragPointData(table.Width / 2f + 50f, table.Height / 2f + 50f),
                    new DragPointData(table.Width / 2f + 50f, table.Height / 2f - 50f)
                }
            };

            return(new Trigger(triggerData));
        }
        /// <summary>
        /// Updates the hit object with parameters common to the surface.
        /// </summary>
        /// <param name="hitObjects"></param>
        /// <param name="events"></param>
        /// <param name="table"></param>
        /// <returns></returns>
        private HitObject[] UpdateCommonParameters(HitObject[] hitObjects, Table.Table table)
        {
            foreach (var obj in hitObjects)
            {
                obj.ApplyPhysics(_data, table);

                if (_data.HitEvent)
                {
                    obj.FireEvents = true;
                    obj.Threshold  = _data.Threshold;
                }
            }
            return(hitObjects);
        }
Esempio n. 5
0
        public static Surface GetDefault(Table.Table table)
        {
            var surfaceData = new SurfaceData(
                table.GetNewName <Surface>("Wall"),
                new[] {
                new DragPointData(table.Width / 2f - 50f, table.Height / 2f - 50f),
                new DragPointData(table.Width / 2f - 50f, table.Height / 2f + 50f),
                new DragPointData(table.Width / 2f + 50f, table.Height / 2f + 50f),
                new DragPointData(table.Width / 2f + 50f, table.Height / 2f - 50f)
            }
                );

            return(new Surface(surfaceData));
        }
Esempio n. 6
0
        public Mesh GetMesh(string id, Table.Table table, Origin origin, bool asRightHanded)
        {
            switch (id)
            {
            case Bulb:
                var bulbMesh = GetBulbMesh(table, origin);
                return(asRightHanded ? bulbMesh.Transform(Matrix3D.RightHanded) : bulbMesh);

            case Socket:
                var socketMesh = GetSocketMesh(table, origin);
                return(asRightHanded ? socketMesh.Transform(Matrix3D.RightHanded) : socketMesh);
            }
            throw new ArgumentException("Unknown light mesh \"" + id + "\".");
        }
Esempio n. 7
0
 public static void ResolveJumpStatement(JumpStatement jumpStatement, Table.Table table)
 {
     if (jumpStatement.IsContinue() | jumpStatement.IsBreak())
     {
         if (!jumpStatement.IsSituatedInLoop())
         {
             ReportError(new OperatorMustBeSituatedInLoop(jumpStatement.IsContinue() ? "сontinue" : "break", jumpStatement.SourceContext));
         }
     }
     else
     if (((ReturnStatement)jumpStatement).ReturnBody != null)
     {
         ResolveExpression(((ReturnStatement)jumpStatement).ReturnBody, table);
     }
 }
Esempio n. 8
0
        public static void ResolveMethodDeclaration(MethodDeclaration method)
        {
            Table.Table MethodTable = Table.Table.CreateTable(GlobalTable.Table);

            ResolveMainMethodDeclaration(method);
            ResolveMethodArguments(method.Arguments, MethodTable);
            if (!method.IsExternal)
            {
                if (!(method.ReturnType is Void))
                {
                    ResolveReturnInBody(method.Body);
                }
                ResolveEmbeddedStatement(method.Body, MethodTable);
            }
        }
		private Mesh GetSocketMesh(Table.Table table, Origin origin)
		{
			var socketMesh = SocketMesh.Clone();
			var height = table.GetSurfaceHeight(_data.Surface, _data.Center.X, _data.Center.Y) * table.GetScaleZ();
			var transX = origin == Origin.Global ? _data.Center.X : 0f;
			var transY = origin == Origin.Global ? _data.Center.Y : 0f;
			var transZ = origin == Origin.Global ? height : 0f;

			foreach (var vertex in socketMesh.Vertices) {
				vertex.X = vertex.X * _data.MeshRadius + transX;
				vertex.Y = vertex.Y * _data.MeshRadius + transY;
				vertex.Z = vertex.Z * _data.MeshRadius * table.GetScaleZ() + transZ;
			}
			return socketMesh;
		}
Esempio n. 10
0
        public Orchestrator(ILogger logger)
        {
            var cells = new List <Cell.Cell>();
            var index = 1;

            _numberOfCells.GenerateForLoop(() => { cells.Add(new EmptyCell(index)); index++; });

            var robot = new Robot.Robot(index, _validMove, _calculateIndex);

            cells.Add(robot);

            var table = new Table.Table(logger, cells);

            _boss = new Boss.Boss(logger, table, robot);
        }
        private Dictionary <string, Mesh> GetMeshes(Table.Table table, Origin origin)
        {
            if (_data.Center == null)
            {
                throw new InvalidOperationException($"Cannot export bumper {_data.Name} without center.");
            }
            var matrix = new Matrix3D().RotateZMatrix(MathF.DegToRad(_data.Orientation));
            var height = table.GetSurfaceHeight(_data.Surface, _data.Center.X, _data.Center.Y) * table.GetScaleZ();

            return(new Dictionary <string, Mesh> {
                { "Base", GenerateMesh(_scaledBaseMesh, matrix, z => z * table.GetScaleZ() + height, origin) },
                { "Ring", GenerateMesh(_scaledRingMesh, matrix, z => z * table.GetScaleZ() + height, origin) },
                { "Skirt", GenerateMesh(_scaledSocketMesh, matrix, z => z * table.GetScaleZ() + (height + 5.0f), origin) },
                { "Cap", GenerateMesh(_scaledCapMesh, matrix, z => (z + _data.HeightScale) * table.GetScaleZ() + height, origin) }
            });
        }
Esempio n. 12
0
        public RenderObjectGroup GetRenderObjects(Table.Table table, Origin origin, bool asRightHanded = true,
                                                  string parent = null, PbrMaterial material = null)
        {
            var postMatrix = GetPostMatrix(table, origin);

            return(new RenderObjectGroup(_data.Name, parent ?? "Primitives", postMatrix, new RenderObject(
                                             _data.Name,
                                             GetTransformedMesh(table, origin, asRightHanded),
                                             material ?? new PbrMaterial(
                                                 table.GetMaterial(_data.Material),
                                                 table.GetTexture(_data.Image),
                                                 table.GetTexture(_data.NormalMap)
                                                 ),
                                             _data.IsVisible
                                             )));
        }
Esempio n. 13
0
        Matrix3D IRenderable.TransformationMatrix(Table.Table table, Origin origin)
        {
            switch (origin)
            {
            case Origin.Original:
                var rotMatrix   = new Matrix3D().RotateZMatrix(MathF.DegToRad(Data.Orientation));
                var transMatrix = new Matrix3D().SetTranslation(Data.Center.X, Data.Center.Y, 0f);
                return(rotMatrix.Multiply(transMatrix));

            case Origin.Global:
                return(Matrix3D.Identity);

            default:
                throw new ArgumentOutOfRangeException(nameof(origin), origin, "Unknown origin " + origin);
            }
        }
Esempio n. 14
0
        private bool _solState;         // m_solState

        public FlipperMover(FlipperData data, Table.Table table, IItem item)
        {
            var tableData = table.Data;

            if (data.FlipperRadiusMin > 0 && data.FlipperRadiusMax > data.FlipperRadiusMin)
            {
                data.FlipperRadius = data.FlipperRadiusMax - (data.FlipperRadiusMax - data.FlipperRadiusMin) /* m_ptable->m_globalDifficulty*/;
                data.FlipperRadius = MathF.Max(data.FlipperRadius, data.BaseRadius - data.EndRadius + 0.05f);
            }
            else
            {
                data.FlipperRadius = data.FlipperRadiusMax;
            }

            EndRadius     = MathF.Max(data.EndRadius, 0.01f);         // radius of flipper end
            FlipperRadius = MathF.Max(data.FlipperRadius, 0.01f);     // radius of flipper arc, center-to-center radius
            AngleStart    = MathF.DegToRad(data.StartAngle);
            AngleEnd      = MathF.DegToRad(data.EndAngle);

            if (AngleEnd == AngleStart)
            {
                // otherwise hangs forever in collisions/updates
                AngleEnd += 0.0001f;
            }

            var height     = table.GetSurfaceHeight(data.Surface, data.Center.X, data.Center.Y);
            var baseRadius = MathF.Max(data.BaseRadius, 0.01f);

            HitCircleBase = new HitCircle(data.Center, baseRadius, height, height + data.Height, ItemType.Flipper, item);

            EnableRotateEvent = 0;
            AngleSpeed        = 0;

            _solState = false;

            var ratio = (baseRadius - EndRadius) / FlipperRadius;

            // model inertia of flipper as that of rod of length flipr around its end
            var mass = data.GetFlipperMass(tableData);

            Inertia = (float)(1.0 / 3.0) * mass * (FlipperRadius * FlipperRadius);

            // F2 Norm, used in Green's transform, in FPM time search  // =  sinf(faceNormOffset)
            ZeroAngNorm.X = MathF.Sqrt(1.0f - ratio * ratio);
            // F1 norm, change sign of x component, i.E -zeroAngNorm.X // = -cosf(faceNormOffset)
            ZeroAngNorm.Y = -ratio;
        }
Esempio n. 15
0
        private Mesh GetSocketMesh(Table.Table table, Origin origin)
        {
            var socketMesh = SocketMesh.Clone();
            var height     = table.GetSurfaceHeight(_data.Surface, _data.Center.X, _data.Center.Y) * table.GetScaleZ();
            var transX     = origin == Origin.Global ? _data.Center.X : 0f;
            var transY     = origin == Origin.Global ? _data.Center.Y : 0f;
            var transZ     = origin == Origin.Global ? height : 0f;

            for (var i = 0; i < socketMesh.Vertices.Length; i++)
            {
                socketMesh.Vertices[i].X = socketMesh.Vertices[i].X * _data.MeshRadius + transX;
                socketMesh.Vertices[i].Y = socketMesh.Vertices[i].Y * _data.MeshRadius + transY;
                socketMesh.Vertices[i].Z = socketMesh.Vertices[i].Z * _data.MeshRadius * table.GetScaleZ() + transZ;
            }

            return(socketMesh);
        }
        /// <summary>
        /// Initializes the effect.
        /// Resolves object references, extracts source image data.
        /// </summary>
        /// <param name="Table">Table object containing the effect.</param>
        public override void Init(Table.Table Table)
        {
            InitOK = false;
            Pixels = null;
            base.Init(Table);

            //TODO: Insert replace values for file pattern
            if (BitmapFilePattern.IsValid)
            {
                FileInfo FI = BitmapFilePattern.GetFirstMatchingFile(Table.Pinball.GlobalConfig.GetReplaceValuesDictionary());
                if (FI != null && FI.Exists)
                {
                    FastImage BM;
                    try
                    {
                        BM = Table.Bitmaps[FI.FullName];
                    }
                    catch (Exception E)
                    {
                        Log.Exception("MatrixBitmapEffectBase {0} cant initialize.  Could not load file {1}.".Build(Name, FI.FullName), E);
                        return;
                    }

                    if (BM.Frames.ContainsKey(BitmapFrameNumber))
                    {
                        Log.Debug("BitmapEffectBase. Grabbing image clip: W: {0}, H:{1}, BML: {2}, BMT: {3}, BMW: {4}, BMH: {5}".Build(new object[] { AreaWidth, AreaHeight, BitmapLeft, BitmapTop, BitmapWidth, BitmapHeight }));
                        Pixels = BM.Frames[BitmapFrameNumber].GetClip(AreaWidth, AreaHeight, BitmapLeft, BitmapTop, BitmapWidth, BitmapHeight, DataExtractMode).Pixels;
                    }
                    else
                    {
                        Log.Warning("MatrixBitmapEffectBase {0} cant initialize. Frame {1} does not exist in source image {2}.".Build(Name, BitmapFrameNumber, FI.FullName));
                    }
                }
                else
                {
                    Log.Warning("MatrixBitmapEffectBase {0} cant initialize. No file matches the BitmapFilePattern {1} is invalid".Build(Name, BitmapFilePattern.ToString()));
                }
            }
            else
            {
                Log.Warning("MatrixBitmapEffectBase {0} cant initialize. The BitmapFilePattern {1} is invalid".Build(Name, BitmapFilePattern.ToString()));
            }


            InitOK = (Pixels != null && MatrixLayer != null);
        }
		public Matrix3D GetPostMatrix(Table.Table table, Origin origin)
		{
			switch (origin) {
				case Origin.Original:
					return new Matrix3D().SetTranslation(
						_data.Center.X,
						_data.Center.Y,
						table.GetSurfaceHeight(_data.Surface, _data.Center.X, _data.Center.Y) * table.GetScaleZ()
					);

				case Origin.Global:
					return Matrix3D.Identity;

				default:
					throw new ArgumentOutOfRangeException(nameof(origin), origin, "Unknown origin " + origin);
			}
		}
Esempio n. 18
0
        private Mesh GetBulbMesh(Table.Table table, Origin origin)
        {
            var bulbMesh = BulbMesh.Clone();
            var height   = table.GetSurfaceHeight(_data.Surface, _data.Center.X, _data.Center.Y);
            var transX   = origin == Origin.Global ? _data.Center.X : 0f;
            var transY   = origin == Origin.Global ? _data.Center.Y : 0f;
            var transZ   = origin == Origin.Global ? height : 0f;

            for (var i = 0; i < bulbMesh.Vertices.Length; i++)
            {
                bulbMesh.Vertices[i].X = bulbMesh.Vertices[i].X * _data.MeshRadius + transX;
                bulbMesh.Vertices[i].Y = bulbMesh.Vertices[i].Y * _data.MeshRadius + transY;
                bulbMesh.Vertices[i].Z = bulbMesh.Vertices[i].Z * _data.MeshRadius + transZ;
            }

            return(bulbMesh);
        }
        public RenderObjectGroup GetRenderObjects(Table.Table table, bool asRightHanded = true)
        {
            var renderObjects = new List <RenderObject>();
            var sideMesh      = GenerateSideMesh(table);
            var topMesh       = GenerateTopMesh(table);

            if (sideMesh != null)
            {
                renderObjects.Add(GetRenderObject(table, Side, asRightHanded, sideMesh));
            }
            if (topMesh != null)
            {
                renderObjects.Add(GetRenderObject(table, Top, asRightHanded, topMesh));
            }

            return(new RenderObjectGroup(_data.Name, "Surfaces", Matrix3D.Identity, renderObjects.ToArray()));
        }
Esempio n. 20
0
        public PbrMaterial GetMaterial(string id, Table.Table table)
        {
            switch (id)
            {
            case Base:
                return(new PbrMaterial(table.GetMaterial(_data.BaseMaterial), Texture.BumperBase));

            case Cap:
                return(new PbrMaterial(table.GetMaterial(_data.CapMaterial), Texture.BumperCap));

            case Ring:
                return(new PbrMaterial(table.GetMaterial(_data.RingMaterial), Texture.BumperRing));

            case Skirt:
                return(new PbrMaterial(table.GetMaterial(_data.SocketMaterial), Texture.BumperSocket));
            }
            throw new ArgumentException("Unknown bumper id \"" + id + "\".");
        }
Esempio n. 21
0
 public KickerHit(KickerData data, float radius, float height, Table.Table table) : base(data.Center.Clone(), radius, height, height + data.HitHeight, ItemType.Kicker)
 {
     HitMesh = new Vertex3D[KickerHitMesh.Vertices.Length];
     if (!data.LegacyMode)
     {
         var rad = Radius * 0.8f;
         for (var t = 0; t < KickerHitMesh.Vertices.Length; t++)
         {
             // find the right normal by calculating the distance from current ball position to vertex of the kicker mesh
             var vPos = new Vertex3D(KickerHitMesh.Vertices[t].X, KickerHitMesh.Vertices[t].Y, KickerHitMesh.Vertices[t].Z);
             vPos.X     = vPos.X * rad + data.Center.X;
             vPos.Y     = vPos.Y * rad + data.Center.Y;
             vPos.Z     = vPos.Z * rad * table.GetScaleZ() + height;
             HitMesh[t] = vPos;
         }
     }
     IsEnabled = data.IsEnabled;
 }
Esempio n. 22
0
        public static Rubber GetDefault(Table.Table table)
        {
            var x          = table.Width / 2f;
            var y          = table.Height / 2f;
            var rubberData = new RubberData(table.GetNewName <Rubber>("Rubber"))
            {
                DragPoints = new[] {
                    new DragPointData(x, y - 50f)
                    {
                        IsSmooth = true
                    },
                    new DragPointData(x - 50f * MathF.Cos(MathF.PI / 4), y - 50f * MathF.Sin(MathF.PI / 4))
                    {
                        IsSmooth = true
                    },
                    new DragPointData(x - 50f, y)
                    {
                        IsSmooth = true
                    },
                    new DragPointData(x - 50f * MathF.Cos(MathF.PI / 4), y + 50f * MathF.Sin(MathF.PI / 4))
                    {
                        IsSmooth = true
                    },
                    new DragPointData(x, y + 50f)
                    {
                        IsSmooth = true
                    },
                    new DragPointData(x + 50f * MathF.Cos(MathF.PI / 4), y + 50f * MathF.Sin(MathF.PI / 4))
                    {
                        IsSmooth = true
                    },
                    new DragPointData(x + 50f, y)
                    {
                        IsSmooth = true
                    },
                    new DragPointData(x + 50f * MathF.Cos(MathF.PI / 4), y - 50f * MathF.Sin(MathF.PI / 4))
                    {
                        IsSmooth = true
                    },
                }
            };

            return(new Rubber(rubberData));
        }
Esempio n. 23
0
        public static Light GetDefault(Table.Table table)
        {
            var x         = table.Width / 2f;
            var y         = table.Height / 2f;
            var lightData = new LightData(table.GetNewName <Light>("Light"), table.Width / 2f, table.Height / 2f)
            {
                DragPoints = new[] {
                    new DragPointData(x, y - 50f)
                    {
                        IsSmooth = true
                    },
                    new DragPointData(x - 50f * MathF.Cos(MathF.PI / 4), y - 50f * MathF.Sin(MathF.PI / 4))
                    {
                        IsSmooth = true
                    },
                    new DragPointData(x - 50f, y)
                    {
                        IsSmooth = true
                    },
                    new DragPointData(x - 50f * MathF.Cos(MathF.PI / 4), y + 50f * MathF.Sin(MathF.PI / 4))
                    {
                        IsSmooth = true
                    },
                    new DragPointData(x, y + 50f)
                    {
                        IsSmooth = true
                    },
                    new DragPointData(x + 50f * MathF.Cos(MathF.PI / 4), y + 50f * MathF.Sin(MathF.PI / 4))
                    {
                        IsSmooth = true
                    },
                    new DragPointData(x + 50f, y)
                    {
                        IsSmooth = true
                    },
                    new DragPointData(x + 50f * MathF.Cos(MathF.PI / 4), y - 50f * MathF.Sin(MathF.PI / 4))
                    {
                        IsSmooth = true
                    },
                }
            };

            return(new Light(lightData));
        }
Esempio n. 24
0
        private HitObject SetupHitObject(HitObject obj, Table.Table table)
        {
            if (!_primitive.UseAsPlayfield)
            {
                obj.ApplyPhysics(_data, table);
            }
            else
            {
                obj.SetElasticity(table.Data.Elasticity, table.Data.ElasticityFalloff);
                obj.SetFriction(table.Data.Friction);
                obj.SetScatter(MathF.DegToRad(table.Data.Scatter));
                obj.SetEnabled(true);
            }

            obj.Threshold  = _data.Threshold;
            obj.E          = true;
            obj.FireEvents = _data.HitEvent;
            return(obj);
        }
Esempio n. 25
0
        public RenderObjectGroup GetRenderObjects(Table.Table table, Origin origin, bool asRightHanded)
        {
            var(preMatrix, _) = GetPreMatrix(table, origin, asRightHanded);
            var postMatrix = GetPostMatrix(table, origin);

            return(new RenderObjectGroup(_data.Name, "Gates", postMatrix, new RenderObject(
                                             "Wire",
                                             GetBaseMesh().Transform(preMatrix),
                                             new PbrMaterial(table.GetMaterial(_data.Material)),
                                             _data.IsVisible
                                             ),
                                         new RenderObject(
                                             "Bracket",
                                             GateBracketMesh.Clone().Transform(preMatrix),
                                             new PbrMaterial(table.GetMaterial(_data.Material)),
                                             _data.IsVisible && _data.ShowBracket
                                             )
                                         ));
        }
Esempio n. 26
0
        public RenderObjectGroup GetRenderObjects(Table.Table table, Origin origin, bool asRightHanded)
        {
            var(preMatrix, _) = GetPreMatrix(table, origin, asRightHanded);
            var postMatrix = GetPostMatrix(table, origin);

            return(new RenderObjectGroup(_data.Name, "Spinners", postMatrix, new RenderObject(
                                             "Plate",
                                             SpinnerPlateMesh.Clone().Transform(preMatrix),
                                             new PbrMaterial(table.GetMaterial(_data.Material), table.GetTexture(_data.Image)),
                                             _data.IsVisible
                                             ),
                                         new RenderObject(
                                             "Bracket",
                                             SpinnerBracketMesh.Clone().Transform(preMatrix),
                                             new PbrMaterial(GetBracketMaterial(), table.GetTexture(_data.Image)),
                                             _data.IsVisible && _data.ShowBracket
                                             )
                                         ));
        }
        private Dictionary <string, Mesh> GenerateFlatMesh(Table.Table table)
        {
            var meshes = new Dictionary <string, Mesh>();
            var rv     = GetRampVertex(table, -1, true);

            meshes["Floor"] = GenerateFlatFloorMesh(table, rv);

            if (_data.RightWallHeightVisible > 0.0)
            {
                meshes["RightWall"] = GenerateFlatRightWall(table, rv);
            }

            if (_data.LeftWallHeightVisible > 0.0)
            {
                meshes["LeftWall"] = GenerateFlatLeftWall(table, rv);
            }

            return(meshes);
        }
Esempio n. 28
0
        protected override Tuple <Matrix3D, Matrix3D> GetTransformationMatrix(Table.Table table)
        {
            // scale matrix
            var scaleMatrix = new Matrix3D();

            scaleMatrix.SetScaling(Scale.X, Scale.Y, Scale.Z);

            // translation matrix
            var transMatrix = new Matrix3D();

            transMatrix.SetTranslation(Position.X, Position.Y, Position.Z + table.TableHeight);

            // translation + rotation matrix
            var rotTransMatrix = new Matrix3D();

            rotTransMatrix.SetTranslation(_data.RotAndTra[3], _data.RotAndTra[4], _data.RotAndTra[5]);

            var tempMatrix = new Matrix3D();

            tempMatrix.RotateZMatrix(MathF.DegToRad(_data.RotAndTra[2]));
            rotTransMatrix.Multiply(tempMatrix);
            tempMatrix.RotateYMatrix(MathF.DegToRad(_data.RotAndTra[1]));
            rotTransMatrix.Multiply(tempMatrix);
            tempMatrix.RotateXMatrix(MathF.DegToRad(_data.RotAndTra[0]));
            rotTransMatrix.Multiply(tempMatrix);

            tempMatrix.RotateZMatrix(MathF.DegToRad(_data.RotAndTra[8]));
            rotTransMatrix.Multiply(tempMatrix);
            tempMatrix.RotateYMatrix(MathF.DegToRad(_data.RotAndTra[7]));
            rotTransMatrix.Multiply(tempMatrix);
            tempMatrix.RotateXMatrix(MathF.DegToRad(_data.RotAndTra[6]));
            rotTransMatrix.Multiply(tempMatrix);

            var fullMatrix = scaleMatrix.Clone();

            fullMatrix.Multiply(rotTransMatrix);
            fullMatrix.Multiply(transMatrix);              // fullMatrix = Smatrix * RTmatrix * Tmatrix
            scaleMatrix.SetScaling(1.0f, 1.0f, table.GetScaleZ());
            fullMatrix.Multiply(scaleMatrix);

            return(new Tuple <Matrix3D, Matrix3D>(fullMatrix, null));
        }
Esempio n. 29
0
        private static void AddTable(IDbConnection inMemoryConnection, Table.Table table)
        {
            var sb = new StringBuilder();

            sb.Append("CREATE TABLE["); sb.Append(table.NameDB); sb.Append("](");

            Column primaryColumn = null;

            foreach (var column in table.Columns)
            {
                sb.Append('['); sb.Append(column.NameDB); sb.Append(']');

                var typeName = GetSingleColumnType(column);

                sb.Append(typeName);

                if (column.Length > 0)
                {
                    sb.Append('('); sb.Append(column.Length); sb.Append(')');
                }

                sb.Append(',');

                if (column.IsPrimary)
                {
                    primaryColumn = column;
                }
            }

            sb.Length--;

            if (primaryColumn != null)
            {
            }

            sb.Append(')');

            var command = inMemoryConnection.CreateCommand();

            command.CommandText = sb.ToString();
            command.ExecuteNonQuery();
        }
Esempio n. 30
0
        public static MetalWireGuide GetDefault(Table.Table table)
        {
            var x = table.Width / 2f;
            var y = table.Height / 2f;
            var metalWireGuideData = new MetalWireGuideData(table.GetNewName <MetalWireGuide>("MetalWireGuide"))
            {
                DragPoints = new[] {
                    new DragPointData(x, y - 100f)
                    {
                        IsSmooth = true
                    },
                    new DragPointData(x, y)
                    {
                        IsSmooth = true
                    },
                }
            };

            return(new MetalWireGuide(metalWireGuideData));
        }
 protected FirstlySolutionMethod(Supplier[] suppliers, Consumer[] consumers)
 {
     _table = new Table.Table(suppliers, consumers);
 }
Esempio n. 32
0
 public PotentialsMethod(Table.Table table)
 {
     _table = table;
 }
Esempio n. 33
0
 /// <summary>
 /// Finishes the EffectEffect.<br/>
 /// Releases the references to the target effect and to the table object.
 /// </summary>
 public override void Finish()
 {
     TargetEffect = null;
     Table = null;
     base.Finish();
 }
Esempio n. 34
0
 /// <summary>
 /// Initializes the EffectEffect. <br/>
 /// Resolves the name of the TargetEffect.
 /// </summary>
 /// <param name="Table">Table object containing the effect.</param>
 public override void Init(Table.Table Table)
 {
     this.Table = Table;
     ResolveEffectName(Table);
 }
 /// <summary>
 /// Finish does all necessary cleanupwork before the effect is discarded.
 /// </summary>
 public override void Finish()
 {
     base.Finish();
     Toy = null;
     this.Table = null;
 }