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()); }
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()); }
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; }
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()); }
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()); }
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); }
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); }
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); }
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(); }
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; }
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)); }