Esempio n. 1
0
    IEnumerator FactoryRunner()
    {
        PrimitiveFactory factory = new PrimitiveFactory();
        PrimitiveClient  client  = new PrimitiveClient(factory);

        runningClient = client;
        for (int i = 0; i < 5; i++)
        {
            client.CreateProducts(typeof(PrimitiveA));
            client.CreateProducts(typeof(PrimitiveB));
        }

        StartCoroutine(client.Run());

        while (client.isRunning)
        {
            yield return(new WaitForEndOfFrame());
        }

        PrimitiveFactory2 factory2 = new PrimitiveFactory2();
        PrimitiveClient   client2  = new PrimitiveClient(factory2);

        runningClient = client2;
        for (int i = 0; i < 5; i++)
        {
            client2.CreateProducts(typeof(PrimitiveA));
            client2.CreateProducts(typeof(PrimitiveB));
        }
        StartCoroutine(client2.Run());
    }
Esempio n. 2
0
        public T CreateMockObject()
        {
            IFactory <T> factory = null;

            if (typeof(T).IsPrimitive || typeof(T) == typeof(string) || typeof(T) == typeof(decimal))
            {
                factory = new PrimitiveFactory <T>();
            }
            else if (typeof(T).IsArray)
            {
                factory = new ArrayFactory <T>();
            }
            else if (typeof(IEnumerable).IsAssignableFrom(typeof(T)))
            {
                factory = new CollectionFactory <T>();
            }
            else if (typeof(T).IsClass && typeof(T) != typeof(string))
            {
                factory = new ClassFactory <T>();
            }
            else if (typeof(T).IsValueType)
            {
                factory = null; //TODO: Handle structs
            }

            return(factory.Create());
        }
Esempio n. 3
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            GL.Enable(EnableCap.DepthTest);
            GL.Disable(EnableCap.CullFace);

            SceneManager.LoadScene("Content/Scenes/Game.txt");

            return;

            SceneManager.CurrentScene      = new Scene();
            SceneManager.CurrentScene.Name = "Game.txt";

            GameObject camera = GameObject.Instantiate(null) as GameObject;

            camera.Name = "Main Camera";
            camera.LocalTransform.Position = new Vector3(10, 15, 10);

            Camera camComponent = camera.AddComponent <Camera>();

            camComponent.orthographic = false;

            quadObject      = GameObject.Instantiate(null, Vector3.Zero, Quaternion.Identity) as GameObject;
            quadObject.Name = "Muro";
            quadObject.LocalTransform.Scale = new Vector3(0.05f, 0.05f, 0.05f);

            MeshRenderer renderer = quadObject.AddComponent <MeshRenderer>();

            StaticModel model = new StaticModel("Content/Models/muro.fbx");

            renderer.StaticMesh = model;

            GameObject sun = GameObject.Instantiate(null, new Vector3(0, 5, 5), Quaternion.Identity) as GameObject;

            sun.Name = "Sun";
            sun.AddComponent <DirectionalLight>();
            MeshRenderer sunRenderer = sun.AddComponent <MeshRenderer>();

            StaticModel sunModel = PrimitiveFactory.CreateCube(1);

            sunRenderer.StaticMesh = sunModel;
            Material sunmat = new Material(new Shader("Content/Shaders/default"));

            sunmat.DiffuseTexture           = new Texture2D("Content/Images/checker.png");
            sunModel.Meshes[0].MeshMaterial = sunmat;

            GameObject plane = GameObject.Instantiate(null, new Vector3(-10, 0, -10), Quaternion.Identity) as GameObject;

            plane.Name = "Plane";
            MeshRenderer planeRenderer = plane.AddComponent <MeshRenderer>();

            StaticModel planeModel = PrimitiveFactory.CreatePlane(20, 20);

            planeRenderer.StaticMesh = planeModel;
            Material mat = new Material(new Shader("Content/Shaders/default"));

            mat.DiffuseTexture = new Texture2D("Content/Images/checker.png");
            planeModel.Meshes[0].MeshMaterial = mat;
        }
Esempio n. 4
0
        public static GameWorld BuildNewVertexBuffer()
        {
            var world = new GameWorld();

            world.OnLoading += () =>
            {
                world.Entities.Add(PrimitiveFactory.BuildPlane(new Vector3(0, -3, 0), Quaternion.Identity, Vector3.One * 5, Color.Green, 2, 2));
                //world.Entities.Add(PrimitiveFactory.BuildPlane(new Vector3(0, -1, 0), Quaternion.Identity, Vector3.One * 3, Color.LightGreen, 2, 2));

                var c = PrimitiveFactory.BuildCube(new Vector3(0, 0, 0), Quaternion.Identity, Vector3.One, Color.Green);
                //c.OnUpdate += _this => _this.RotateY(0.01f);
                world.Entities.Add(c);

                world.Entities.Add(new TerrainManager(new Vector3(0, 0, 0), Quaternion.Identity, Vector3.One));

                //c = PrimitiveFactory.BuildCube(new Vector3(-3, 0, 0), Quaternion.Identity, Vector3.One, Color.Blue);
                //c.OnUpdate += _this => _this.RotateX(0.01f);
                //world.Entities.Add(c);

                //c = PrimitiveFactory.BuildCube(new Vector3(3, 0, 0), Quaternion.Identity, Vector3.One, Color.Blue);
                //c.OnUpdate += _this => _this.RotateZ(0.01f);
                //world.Entities.Add(c);
            };

            return(world);
        }
        List <byte> IConcreteAction.Serialize(object dataObject)
        {
            IPrimitive primitive = PrimitiveFactory.MakePrimitive(type);

            byte[] representBytes = primitive.GetByteStream(dataObject);
            return(representBytes.ToList());
        }
Esempio n. 6
0
        public App(int width, int height)
        {
            WorldSize              = new Vector3(200, 200, 200);
            lastTime               = 0;
            SceneRoot              = new GameObject("SceneRoot", this);
            Shaders                = new Dictionary <string, Shader>();
            Materials              = new Dictionary <string, Material>();
            destroyed              = new List <DestructableObject>();
            DefaultBlendFactorSrc  = BlendingFactorSrc.SrcAlpha;
            DefaultBlendFactorDest = BlendingFactorDest.OneMinusSrcAlpha;

            Window              = new GameWindow(width, height, new GraphicsMode(32, 24, 0, 0));
            Window.Load        += OnLoadInternal;
            Window.Resize      += OnResizeInternal;
            Window.Closing     += Window_Closing;
            Window.UpdateFrame += OnUpdateInternal;
            Window.RenderFrame += OnRenderInternal;
            SceneRenderer       = new SceneRenderer(this);
            SetupGL();

            var cameraContainer = CreateGameObject("Camera");

            ActiveCamera = cameraContainer.AddComponent <Camera>();
            stopWatch    = new System.Diagnostics.Stopwatch();
            stopWatch.Start();
            time = new System.Diagnostics.Stopwatch();
            time.Start();

            Shaders.Add("unlit", new Shader("Shaders/unlit.glsl", "vertex", null, "fragment"));
            Shaders.Add("screen", new Shader("Shaders/screen.glsl", "vertex", null, "fragment"));
            Shaders.Add("screenCA", new Shader("Shaders/chromaticAbberation.glsl", "vertex", null, "fragment"));
            Shaders.Add("text", new Shader("Shaders/text.glsl", "vertex", null, "fragment"));
            Shaders.Add("gol", new Shader("Shaders/gol.glsl", "vertex", null, "fragment"));
            Shaders.Add("lit", new Shader("Shaders/lit.glsl", "vertex", null, "fragment"));
            Materials.Add("unlit", new Material(Shaders["unlit"], RenderMode.Opaque));
            Materials.Add("lit", new Material(Shaders["lit"], RenderMode.Opaque));
            GameObjectFactory = new GameObjectFactory(this);
            PrimitiveFactory  = new PrimitiveFactory();
            //var cs = new Jitter.Collision.CollisionSystemPersistentSAP();

            //PhysicsWorld = new Jitter.World(cs);

            //PhysicsWorld.Gravity = new Jitter.LinearMath.JVector(0, -9.81f, 0);

            var collisionConfig = new BulletSharp.DefaultCollisionConfiguration();

            PhysicsWorld = new BulletSharp.DiscreteDynamicsWorld(
                new BulletSharp.CollisionDispatcher(collisionConfig),
                new BulletSharp.DbvtBroadphase(),
                new BulletSharp.SequentialImpulseConstraintSolver(),
                collisionConfig);

            Ray.Init(this);

            Window.Run(60.0);
        }
        object IConcreteAction.Deserialize(StreamExtractorHandler streamExtractor)
        {
            IPrimitive lenStrPrimitive = PrimitiveFactory.MakePrimitive(typeof(ushort));
            ushort     lenStr          = (ushort)lenStrPrimitive.GetValueField(streamExtractor);

            lenStr *= 2;
            byte[] bytesRepresentString = streamExtractor(lenStr);
            object recordObject         = Encoding.Unicode.GetString(bytesRepresentString);

            return(recordObject);
        }
        private int[] RecoveryDimensional(StreamExtractorHandler streamExtractor) //восстановление измерений
        {
            byte rank = RankRecovery(streamExtractor);

            int[]      lengths         = new int[rank];
            IPrimitive lengthPrimitive = PrimitiveFactory.MakePrimitive(typeof(ushort));

            for (int dimension = 0; dimension < rank; dimension++)
            {
                lengths[dimension] = (ushort)lengthPrimitive.GetValueField(streamExtractor);
            }
            return(lengths);
        }
        public string Generate(MetaModel model)
        {
            var factory = new PrimitiveFactory();
            var code    = new CodeBlock();

            code.Add(GenerateHeader())
            .Add(InitMethodGenerator.GenerateCode(model))
            .Add(VariablesGenerator.GenerateCode(model))
            .Add(PrepareMethodGenerator.GenerateCode(model))
            .Add(new EntryFunctionGenerator(model, factory).Generate())
            .Add(GenerateRoutines())
            .Add(GenerateModules(model));
            return(code.ToCode());
        }
Esempio n. 10
0
        List <byte> IConcreteAction.Serialize(object dataObject)
        {
            var resultStream = new List <byte>();

            string     str           = (string)dataObject;
            IPrimitive rankPrimitive = PrimitiveFactory.MakePrimitive(typeof(ushort));

            byte[] rank = rankPrimitive.GetByteStream((ushort)str.Length);
            resultStream.AddRange(rank);

            byte[] data = Encoding.Unicode.GetBytes(str);
            resultStream.AddRange(data);

            return(resultStream);
        }
Esempio n. 11
0
        internal void CreateCubeGameObject()
        {
            GameObject obj = GameObject.Instantiate(null) as GameObject;

            obj.Name = "Cube" + currentScene.GameObjects.Count;

            Material mat = new Material(new Shader("Content/Shaders/default"));

            mat.DiffuseTexture = new Texture2D("Content/Images/cube.png");

            MeshRenderer renderer = obj.AddComponent <MeshRenderer>();

            renderer.StaticMesh = PrimitiveFactory.CreateCube(1);

            renderer.StaticMesh.Meshes[0].MeshMaterial = mat;

            AddObjectToHierarchy(obj);
        }
Esempio n. 12
0
        private int[] RecordAndExtractDimensional()
        {
            IPrimitive rankPrimitive = PrimitiveFactory.MakePrimitive(typeof(byte));

            byte[] rank = rankPrimitive.GetByteStream((byte)array.Rank);
            resultStream.AddRange(rank);

            IPrimitive lengthPrimitive = PrimitiveFactory.MakePrimitive(typeof(ushort));

            int[] lengths = new int[array.Rank];
            for (int dimension = 0; dimension < array.Rank; dimension++)
            {
                lengths[dimension] = array.GetLength(dimension);

                byte[] bytesToWrite = lengthPrimitive.GetByteStream((ushort)lengths[dimension]);
                resultStream.AddRange(bytesToWrite);
            }
            return(lengths);
        }
Esempio n. 13
0
        private void CreateSymbols(float scale)
        {
            // constraint arrows
            if (this._constraintSymbolList == 0)
            {
                this._constraintSymbolList = Gl.glGenLists(1);
            }
            Gl.glNewList(this._constraintSymbolList, Gl.GL_COMPILE);
            PrimitiveFactory.CreateConstraintArrow(scale);
            Gl.glEndList();

            //load arrows
            if (this._loadSymbolList == 0)
            {
                this._loadSymbolList = Gl.glGenLists(1);
            }
            Gl.glNewList(this._loadSymbolList, Gl.GL_COMPILE);
            PrimitiveFactory.CreateLoadArrow(scale);
            Gl.glEndList();
        }
Esempio n. 14
0
        public void createcard(int arrindex, int cardid)
        {
            CardType type = CardTypeManager.getInstance().get(cardid);
            Card     card = new Card(cardid, type, false);

            UnityEngine.Object.Destroy(this.cardRule);
            cardRule      = PrimitiveFactory.createPlane();
            cardRule.name = "CardRule";
            CardView cardView = cardRule.AddComponent <CardView>();

            cardView.init(this, card, -1);
            cardView.applyHighResTexture();
            cardView.setLayer(8);
            Vector3 vccopy = Camera.main.transform.localPosition;

            Camera.main.transform.localPosition = new Vector3(0f, 1f, -10f);
            cardRule.transform.localPosition    = Camera.main.ScreenToWorldPoint(new Vector3((float)Screen.width * 0.3f, (float)Screen.height * 0.6f, 0.9f));;

            cardRule.transform.localEulerAngles = new Vector3(90f, 180f, 0f);
            cardRule.transform.localScale       = new Vector3(9.3f, 0.1f, 15.7f);// CardView.CardLocalScale(100f);
            cardtext = cardRule.renderer.material.mainTexture;
            Vector3 ttvec1 = Camera.main.WorldToScreenPoint(cardRule.renderer.bounds.min);
            Vector3 ttvec2 = Camera.main.WorldToScreenPoint(cardRule.renderer.bounds.max);
            Rect    ttrec  = new Rect(ttvec1.x, Screen.height - ttvec2.y, ttvec2.x - ttvec1.x, ttvec2.y - ttvec1.y);

            scalefactor = (float)(Screen.height / 1.9) / ttrec.height;
            cardRule.transform.localScale = new Vector3(cardRule.transform.localScale.x * scalefactor, cardRule.transform.localScale.y, cardRule.transform.localScale.z * scalefactor);
            ttvec1   = Camera.main.WorldToScreenPoint(cardRule.renderer.bounds.min);
            ttvec2   = Camera.main.WorldToScreenPoint(cardRule.renderer.bounds.max);
            ttrec    = new Rect(ttvec1.x, Screen.height - ttvec2.y, ttvec2.x - ttvec1.x, ttvec2.y - ttvec1.y);
            cardrect = ttrec;
            gettextures(cardView);
            this.cardReadyToDraw = true;
            Camera.main.transform.localPosition = vccopy;
            //Console.WriteLine("CARD: " + clink);

            this.clicked = 0;
        }
Esempio n. 15
0
        private byte RankRecovery(StreamExtractorHandler streamExtractor) // восстановление числа измерений
        {
            IPrimitive rankPrimitive = PrimitiveFactory.MakePrimitive(typeof(byte));

            return((byte)rankPrimitive.GetValueField(streamExtractor));
        }
        object IConcreteAction.Deserialize(StreamExtractorHandler streamExtractor)
        {
            IPrimitive primitive = PrimitiveFactory.MakePrimitive(type);

            return(primitive.GetValueField(streamExtractor));
        }