private void CreatePlane() { PlaneObject temp = Prefabs.instance.InstantiatePrefab <PlaneObject>(Prefabs.instance.planeObject); temp.Initialize(position, width, length); planeObject = temp; }
public IList <SequenceData> OutputSequence(IList <MotionObjectInfo> selected, IList <ProcParam <MotionProcEnv> > args, IEnumerable <ReadOnlyMotionFrame> frames, ProgressInformation progressInfo) { List <SequenceData> ret = new List <SequenceData>(); foreach (MotionObjectInfo info in selected) { TimeSeriesValues values = new TimeSeriesValues("area"); foreach (var frame in frames) { PlaneObject sphere = frame[info] as PlaneObject; if (sphere != null) { try { values[frame.Time] = new decimal?[] { sphere.GetDimensions() }; } catch (ArithmeticException) { values[frame.Time] = null; } } else { values[frame.Time] = null; } } SequenceData data = new SequenceData(values, null, PathEx.GiveName("Area", info.Name)); ret.Add(data); } return(ret); }
private void RotatePlaneObject(double rotateAngle) { Matrix3D matrix = PlaneObject.GetTransform(); Transform3DGroup group = new Transform3DGroup(); group.Children.Add(new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(0, 0, 1), rotateAngle))); group.Children.Add(new TranslateTransform3D(new Vector3D(matrix.OffsetX, matrix.OffsetY, matrix.OffsetZ))); PlaneObject.Transform = group; }
public IClippingPlane ToItem(AGSSerializationContext context) { TypedParameter isClipped = new TypedParameter(typeof(bool), IsPlaneObjectClipped); TypedParameter obj = new TypedParameter(typeof(IObject), PlaneObject.ToItem(context)); TypedParameter list = new TypedParameter(typeof(List <IRenderLayer>), LayersToClip == null ? null : LayersToClip.Select(c => c.ToItem(context))); var plane = context.Resolver.Container.Resolve <IClippingPlane>(isClipped, obj, list); return(plane); }
public PlaneObject CreatePlane() { if (!PlaneCollector.Empty()) { return(PlaneCollector.Reuse()); } PlaneObject t = new PlaneObject(); t.Entity.transform.localPosition = new Vector3(0, 100); return(t); }
void OnMouseDown() { if (!selected && renderer.isVisible && !hasTurret) { renderer.material.color = Color.blue; selected = true; selection = this; } else { renderer.material.color = Color.white; selected = false; } }
public ImageGameObjectUtility(Texture aTex, System.Nullable <Vector2> aSize = null) { ParentObject = new GameObject("genImageObjectParent"); //PlaneObject = GameObject.CreatePrimitive(PrimitiveType.Plane); PlaneObject = (GameObject)GameObject.Instantiate(ManagerManager.Manager.mReferences.mPlanePrefab); //GameObject.DestroyImmediate(PlaneObject.GetComponent<BoxCollider>()); PlaneMaterial = new Material(ManagerManager.Manager.mReferences.mDefaultCharacterShader); PlaneObject.GetComponent <Renderer>().material = PlaneMaterial; set_new_texture(aTex, aSize); PlaneObject.transform.rotation = Quaternion.AngleAxis(90, Vector3.right) * PlaneObject.transform.rotation; PlaneObject.transform.parent = ParentObject.transform; ParentObject.transform.position = new Vector3(12321, 124345, 1234); //this will solve some one frame appearance glitches }
protected override void LoadContent() { boxModel = content.Load <Model>("content/box"); sphereModel = content.Load <Model>("content/sphere"); capsuleModel = content.Load <Model>("content/capsule"); carModel = content.Load <Model>("content/car"); wheelModel = content.Load <Model>("content/wheel"); staticModel = content.Load <Model>("content/staticmesh"); planeModel = content.Load <Model>("content/plane"); pinModel = content.Load <Model>("content/pin"); compoundModel = content.Load <Model>("content/compound"); cylinderModel = content.Load <Model>("content/cylinder"); /* * try * { * // some video card can't handle the >16 bit index type of the terrain * terrainModel = content.Load<Model>("content/terrain"); * HeightmapObject heightmapObj = new HeightmapObject(this, terrainModel, Vector2.Zero); * this.Components.Add(heightmapObj); * } * catch (Exception) * {*/ // if that happens just createa a ground plane PlaneObject planeObj = new PlaneObject(this, planeModel, 15.0f); this.Components.Add(planeObj); //} TriangleMeshObject triObj = new TriangleMeshObject(this, staticModel, Matrix.Identity, Vector3.Zero); this.Components.Add(triObj); carObject = new CarObject(this, carModel, wheelModel, true, true, 30.0f, 5.0f, 4.7f, 5.0f, 0.20f, 0.4f, 0.05f, 0.45f, 0.3f, 1, 520.0f, physicSystem.Gravity.Length()); carObject.Car.Chassis.Body.MoveTo(new Vector3(-5, -13, 5), Matrix.Identity); carObject.Car.EnableCar(); carObject.Car.Chassis.Body.AllowFreezing = false; this.Components.Add(carObject); camera.Position = Vector3.Down * 12 + Vector3.Backward * 30.0f; CreateScene6(); base.LoadContent(); }
public PlaneModel() { AirplaneModel.Content = GetAirplaneModel(); AirplaneModel.Children.Add(Label); Random rnd = new Random(); rotateAngle = rnd.Next(0, 360); PlaneObject.Children.Add(AirplaneModel); PlaneObject.Children[0].Transform = new TranslateTransform3D(new Vector3D(0, rnd.Next(200, 1500), 0)); Transform3DGroup group = new Transform3DGroup(); group.Children.Add(new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(0, 0, 1), rotateAngle))); group.Children.Add(new TranslateTransform3D(new Vector3D(rnd.Next(1000, 1500), rnd.Next(1000, 1500), rnd.Next(300, 800)))); PlaneObject.Transform = group; PlaneObject.SetName("Aircraft"); }
protected override void LoadContent() { boxModel = content.Load <Model>("Content/box"); sphereModel = content.Load <Model>("Content/sphere"); capsuleModel = content.Load <Model>("Content/capsule"); carModel = content.Load <Model>("Content/car"); wheelModel = content.Load <Model>("Content/wheel"); staticModel = content.Load <Model>("Content/StaticMesh"); planeModel = content.Load <Model>("Content/plane"); pinModel = content.Load <Model>("Content/pin"); compoundModel = content.Load <Model>("Content/compound"); cylinderModel = content.Load <Model>("Content/cylinder"); try { terrainModel = content.Load <Model>("content/terrain"); var heightmapObj = new HeightmapObject(this, terrainModel, Vector2.Zero); Components.Add(heightmapObj); } catch (Exception ex) { Console.WriteLine(ex); var planeObj = new PlaneObject(this, planeModel, 15.0f); Components.Add(planeObj); } var triObj = new TriangleMeshObject(this, staticModel, Matrix.Identity, Vector3.Zero); Components.Add(triObj); carObject = new CarObject(this, carModel, wheelModel, true, true, 30.0f, 5.0f, 4.7f, 5.0f, 0.20f, 0.4f, 0.05f, 0.45f, 0.3f, 1, 520.0f, physicSystem.Gravity.Length()); carObject.Car.Chassis.Body.MoveTo(new Vector3(-5, -13, 5), Matrix.Identity); carObject.Car.EnableCar(); carObject.Car.Chassis.Body.AllowFreezing = false; Components.Add(carObject); camera.Position = Vector3.Down * 12 + Vector3.Backward * 30.0f; CreateScene6(); base.LoadContent(); }
public void set_new_texture(Texture aTex, System.Nullable <Vector2> aSize = null) { aSize *= GameConstants.SCALE; if (aSize == null) { if (aTex != null) { BaseDimension = new Vector2(aTex.width, aTex.height); } else { BaseDimension = new Vector2(1, 1); } } else { BaseDimension = aSize.Value; } PlaneObject.GetComponent <Renderer>().material.mainTexture = aTex; PixelDimension = BaseDimension; }
/// <summary> /// Should do scene and object initialization common to client and server /// </summary> public virtual void InitializeEnvironment() { bool useCustomTerrain = false; if (useCustomTerrain) { try { terrain = new Terrain(new Vector3(0, -15, 0), // position //new Vector3(100f, .1f, 100f), // X with, possible y range, Z depth new Vector3(15000f, .55f, 15000f), // X with, possible y range, Z depth 100, 100, graphicsDevice, moon); objectsToAdd.Add(terrain.ID, terrain); } catch (Exception E) { System.Diagnostics.Debug.WriteLine(E.StackTrace); } } else { try { // some video cards can't handle the >16 bit index type of the terrain //HeightmapObject heightmapObj = new HeightmapObject(terrainModel, Vector2.Zero, new Vector3(0, 0, 0)); //objectsToAdd.Add(heightmapObj.ID, heightmapObj); } catch (Exception E) { // if that happens just create a ground plane planeObj = new PlaneObject(planeModel, 0.0f, new Vector3(0, -15, 0), 0); objectsToAdd.Add(planeObj.ID, planeObj); System.Diagnostics.Debug.WriteLine(E.StackTrace); } } }
static void RenderLightGizmo(GameObject obj, GizmoType gizmoType) { PlaneObject planeObject = obj.GetComponent <PlaneObject>(); if (planeObject != null) { Gizmos.color = Color.blue; Gizmos.DrawRay(obj.transform.position, obj.transform.forward); Vector3[] points = new Vector3[4]; Plane plane = planeObject.plane; points[0] = drawCubeAndReturnPosition(ref obj, new Vector3(plane.size.x, plane.size.y)); points[1] = drawCubeAndReturnPosition(ref obj, new Vector3(plane.size.x, -plane.size.y)); points[2] = drawCubeAndReturnPosition(ref obj, new Vector3(-plane.size.x, -plane.size.y)); points[3] = drawCubeAndReturnPosition(ref obj, new Vector3(-plane.size.x, plane.size.y)); Gizmos.DrawLine(points[0], points[1]); Gizmos.DrawLine(points[0], points[3]); Gizmos.DrawLine(points[1], points[2]); Gizmos.DrawLine(points[2], points[3]); planeObject.OnValidate(); } }
void Start() { FPS_text = GameObject.Find("Canvas/FPS").GetComponent <TextMeshProUGUI>(); Stopwatch sw = new Stopwatch(); sw.Start(); cursorMaterial = Resources.Load("UnlitColor") as Material; float[,] GetBufferData(int port) { UnityBuffer unityBuffer = new UnityBuffer(); if (unityBuffer.connect(host: "127.0.0.1", port: port)) { print("connected"); unityBuffer.header = unityBuffer.getHeader(); float[,] data = unityBuffer.getFloatData(0, unityBuffer.header.nSamples - 1); //print(data.GetLength(0)); //print(data.GetLength(1)); return(data); } else { print("connection failed..."); return(new float[0, 0]); } } void printArrayDimensions(float[,] array) { print(array.GetLength(0)); print(array.GetLength(1)); } // get trajectories List <float[, ]> trajectory = new List <float[, ]>(); foreach (var port in ports) { print(port); trajectory.Add(GetBufferData(port)); printArrayDimensions(trajectory[trajectory.Count - 1]); } // get colors float[,] target_positions = GetBufferData(1002); printArrayDimensions(target_positions); // build cursors for (int TRIAL = 0; TRIAL < Number.trials; TRIAL++) { // reshape float[,] trajectory_to_use = new float[Number.frames, Number.axes]; for (int FRAME = 0; FRAME < Number.frames; FRAME++) { for (int AXIS = 0; AXIS < Number.axes; AXIS++) { //print(TRIAL.ToString() + ":" + FRAME.ToString() + ":" + AXIS.ToString()); trajectory_to_use[FRAME, AXIS] = trajectory[AXIS][TRIAL, FRAME]; } } Color colorToUse = colors[(int)target_positions[TRIAL, 0] - 1]; float randomValue = Random.Range(.25f, 1); colorToUse.r = colorToUse.r * randomValue; colorToUse.g = colorToUse.g * randomValue; colorToUse.b = colorToUse.b * randomValue; PlaneObject cursorPlane = PlaneObject.Create(width: Sizes.cursor, length: Sizes.cursor, widthSegments: 1, lengthSegments: 1); cursorPlane.gameObject.GetComponent <Renderer>().material = cursorMaterial; cursorPlane.gameObject.GetComponent <Renderer>().material.color = colorToUse; cursors.Add(new Cursor(gameObject: cursorPlane.gameObject, trajectory: trajectory_to_use)); //cursors[cursors.Count - 1].gameObject.transform.localScale = new Vector3(.1f, .1f, .1f) * 15; //cursors[cursors.Count - 1].gameObject.GetComponent<Renderer>().material = cursorMaterial; //cursors[cursors.Count - 1].gameObject.GetComponent<Renderer>().material.color = colorToUse; } // add target positions for (int TARGET = 0; TARGET < Number.targetPositions; TARGET++) { GameObject target = Create.Polygon(position: new Vector3(targetPositions[TARGET].x, 0, targetPositions[TARGET].y), rotation: new Vector3(-90, 0, 0), radius: Sizes.target, edgeThickness: .1f, nSegments: Defaults.nSegementsCircle, color: Color.white, //colors[TARGET], sortingOrder: 2); //GameObject target = GameObject.CreatePrimitive(PrimitiveType.Plane); //target.transform.localScale = new Vector3(.1f, .1f, .1f) * 15; //target.transform.position = new Vector3(targetPositions[TARGET].x, 0, targetPositions[TARGET].y); //target.GetComponent<Renderer>().material = cursorMaterial; //target.GetComponent<Renderer>().material.color = colors[TARGET]; target.name = TARGET.ToString(); } print(sw.Elapsed.Seconds); }
public void RecyclePlane(PlaneObject Plane) { PlaneCollector.Collect(Plane); }
void Start() { Stopwatch sw = new Stopwatch(); sw.Start(); // timeVector setup for (int FRAME = 0; FRAME < Number.frames; FRAME++) { timeVector[FRAME] = (float)FRAME / 144; } // scene setup FPS_text = GameObject.Find("Canvas/FPS").GetComponent <TextMeshProUGUI>(); cursorMaterial = Resources.Load("UnlitColor") as Material; timeText = GameObject.Find("Canvas/Time").GetComponent <TextMeshProUGUI>(); sessionText = GameObject.Find("Canvas/Session").GetComponent <TextMeshProUGUI>(); // session setup float[,] GetBufferData(int port) { UnityBuffer unityBuffer = new UnityBuffer(); if (unityBuffer.connect(host: "127.0.0.1", port: port)) { print("connected: " + port.ToString()); unityBuffer.header = unityBuffer.getHeader(); float[,] data = unityBuffer.getFloatData(0, unityBuffer.header.nSamples - 1); return(data); } else { print("connection failed..."); return(new float[0, 0]); } } void printArrayDimensions(float[,] array) { print(array.GetLength(0)); print(array.GetLength(1)); } // reshape method List <Vector2> reshapeTrajectory(List <float[, ]> trajectoryData, int TRIAL, float xMod, float yMod) { List <Vector2> trajectoryToUse = new List <Vector2>(); for (int FRAME = 0; FRAME < Number.frames; FRAME++) { Vector2 position = new Vector2(); for (int AXIS = 0; AXIS < Number.axes; AXIS++) { //print(TRIAL.ToString() + ":" + FRAME.ToString() + ":" + AXIS.ToString()); if (AXIS == 0) { position[AXIS] = trajectoryData[AXIS][TRIAL, FRAME] + xMod; } else { position[AXIS] = trajectoryData[AXIS][TRIAL, FRAME] + yMod; } } trajectoryToUse.Add(position); } return(trajectoryToUse); } void AddCursors(int[] ports, string parentName, CursorType cursorType, float xMod, float yMod, float[,] target_positions, GameObject grandParent) { GameObject parent = new GameObject(name: parentName); parent.transform.parent = grandParent.transform; // get trajectories List <float[, ]> trajectory = new List <float[, ]>(); foreach (var port in ports) { //print(port); trajectory.Add(GetBufferData(port)); //printArrayDimensions(trajectory[trajectory.Count - 1]); } // build cursors for (int TRIAL = 0; TRIAL < Number.trials; TRIAL++) { List <Vector2> cursorTrajectory = reshapeTrajectory(trajectory, TRIAL, xMod, yMod); Color colorToUse = colors[(int)target_positions[TRIAL, 0] - 1]; float randomValue = UnityEngine.Random.Range(.25f, 1); colorToUse.r = colorToUse.r * randomValue; colorToUse.g = colorToUse.g * randomValue; colorToUse.b = colorToUse.b * randomValue; GameObject SpawnCursorObject() { switch (cursorType) { case CursorType.cursor: GameObject cursorObject1 = PlaneObject.Create(width: Sizes.cursor, length: Sizes.cursor, widthSegments: 1, lengthSegments: 1).gameObject; cursorObject1.GetComponent <Renderer>().material = cursorMaterial; cursorObject1.GetComponent <Renderer>().material.color = colorToUse; return(cursorObject1); case CursorType.gaze: GameObject cursorObject2 = Create.Polygon(position: Vector3.zero, rotation: new Vector3(-90, 0, 0), radius: Sizes.gaze, edgeThickness: .1f, nSegments: Defaults.nSegementsCircle, color: colorToUse, sortingOrder: 1); return(cursorObject2); default: return(new GameObject()); } } GameObject cursorObject = SpawnCursorObject(); cursorObject.name = "cursor." + TRIAL.ToString(); cursorObject.transform.parent = parent.transform; cursors.Add(new Cursor(gameObject: cursorObject, trajectory: cursorTrajectory)); } } // add target positions void DrawTargets(float xMod, float yMod, string parentName, GameObject grandParent) { GameObject targets = new GameObject(name: parentName); targets.transform.parent = grandParent.transform; for (int TARGET = 0; TARGET < Number.targetPositions; TARGET++) { GameObject target = Create.Polygon(position: new Vector3(targetPositions[TARGET].x + xMod, 0, targetPositions[TARGET].y + yMod), rotation: new Vector3(-90, 0, 0), radius: Sizes.target, edgeThickness: .1f, nSegments: Defaults.nSegementsCircle, color: Color.white, //colors[TARGET], sortingOrder: 2); target.name = "target." + TARGET.ToString(); target.transform.parent = targets.transform; } } //int[] sessionsToUse = new int[] { 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 }; int[] sessionsToUse = new int[] { 12, 13, 14, 15, 16, 17 }; int sessionCount = 0; void prepareSession(int SESSION) { print("***************************************************************"); print("SESSION: " + SESSION.ToString()); sessionText.text = "S" + Labels.session[SESSION]; GameObject grandParentObject = new GameObject(name: Labels.session[SESSION]); float yModToUse = 0; for (int CONTROL = 0; CONTROL < Number.control; CONTROL++) { DrawTargets(xMod[CONTROL], yModToUse, "targets." + Labels.control[CONTROL], grandParentObject); } float[,] target_positions_solo = GetBufferData(Ports.target_positions_solo); AddCursors(Ports.P1, "P1", CursorType.cursor, xMod[0], yModToUse, target_positions_solo, grandParentObject); AddCursors(Ports.P2, "P2", CursorType.cursor, xMod[0], yModToUse, target_positions_solo, grandParentObject); AddCursors(Ports.P1_gaze_solo, "P1_gaze_solo", CursorType.gaze, xMod[0], yModToUse, target_positions_solo, grandParentObject); AddCursors(Ports.P2_gaze_solo, "P2_gaze_solo", CursorType.gaze, xMod[0], yModToUse, target_positions_solo, grandParentObject); float[,] target_positions_joint = GetBufferData(Ports.target_positions_joint); AddCursors(Ports.joint, "joint", CursorType.cursor, xMod[1], yModToUse, target_positions_joint, grandParentObject); AddCursors(Ports.P1_gaze_joint, "P1_gaze_joint", CursorType.gaze, xMod[1], yModToUse, target_positions_joint, grandParentObject); AddCursors(Ports.P2_gaze_joint, "P2_gaze_joint", CursorType.gaze, xMod[1], yModToUse, target_positions_joint, grandParentObject); } prepareSession(1); void StartOBSrecording() { var proc = new System.Diagnostics.Process { StartInfo = new System.Diagnostics.ProcessStartInfo // get process by window name - super dodge - also cannot run Pathly from unity { FileName = @"C:\Program Files (x86)\obs-studio\OBSCommand_v1.5.4\OBSCommand\OBSCommand.exe", Arguments = "/startrecording", UseShellExecute = false, RedirectStandardOutput = true, CreateNoWindow = true } }; proc.Start(); } StartOBSrecording(); print(sw.Elapsed.Seconds); }
void Start() { Stopwatch sw = new Stopwatch(); sw.Start(); // timeVector setup for (int FRAME = 0; FRAME < Number.frames; FRAME++) { timeVector[FRAME] = (float)FRAME / 144; } // scene setup FPS_text = GameObject.Find("Canvas/FPS_text").GetComponent <TextMeshProUGUI>(); cursorMaterial = Resources.Load("UnlitColor") as Material; // add target positions void DrawTargets(float xMod, string parentName) { GameObject targets = new GameObject(name: parentName); for (int TARGET = 0; TARGET < Number.targetPositions; TARGET++) { GameObject target = Create.Polygon(position: new Vector3(targetPositions[TARGET].x + xMod, 0, targetPositions[TARGET].y), rotation: new Vector3(-90, 0, 0), radius: Sizes.target, edgeThickness: .1f, nSegments: Defaults.nSegementsCircle, color: Color.white, //colors[TARGET], sortingOrder: 2); target.name = "target." + TARGET.ToString(); target.transform.parent = targets.transform; } } for (int CONTROL = 0; CONTROL < Number.control; CONTROL++) { DrawTargets(xMod[CONTROL], "targets." + Labels.control[CONTROL]); } // session setup float[,] GetBufferData(int port) { UnityBuffer unityBuffer = new UnityBuffer(); if (unityBuffer.connect(host: "127.0.0.1", port: port)) { print("connected"); unityBuffer.header = unityBuffer.getHeader(); float[,] data = unityBuffer.getFloatData(0, unityBuffer.header.nSamples - 1); return(data); } else { print("connection failed..."); return(new float[0, 0]); } } void printArrayDimensions(float[,] array) { print(array.GetLength(0)); print(array.GetLength(1)); } // reshape method List <Vector2> reshapeTrajectory(List <float[, ]> trajectoryData, int TRIAL, float xMod) { List <Vector2> trajectoryToUse = new List <Vector2>(); for (int FRAME = 0; FRAME < Number.frames; FRAME++) { Vector2 position = new Vector2(); for (int AXIS = 0; AXIS < Number.axes; AXIS++) { //print(TRIAL.ToString() + ":" + FRAME.ToString() + ":" + AXIS.ToString()); if (AXIS == 0) { position[AXIS] = trajectoryData[AXIS][TRIAL, FRAME] + xMod; } else { position[AXIS] = trajectoryData[AXIS][TRIAL, FRAME]; } } trajectoryToUse.Add(position); } return(trajectoryToUse); } void AddCursors(int[] ports, string parentName, CursorType cursorType, float xMod, float[,] target_positions) { GameObject parent = new GameObject(name: parentName); // get trajectories List <float[, ]> trajectory = new List <float[, ]>(); foreach (var port in ports) { print(port); trajectory.Add(GetBufferData(port)); printArrayDimensions(trajectory[trajectory.Count - 1]); } // build cursors for (int TRIAL = 0; TRIAL < Number.trials; TRIAL++) { List <Vector2> cursorTrajectory = reshapeTrajectory(trajectory, TRIAL, xMod); Color colorToUse = colors[(int)target_positions[TRIAL, 0] - 1]; float randomValue = UnityEngine.Random.Range(.25f, 1); colorToUse.r = colorToUse.r * randomValue; colorToUse.g = colorToUse.g * randomValue; colorToUse.b = colorToUse.b * randomValue; GameObject SpawnCursorObject() { switch (cursorType) { case CursorType.cursor: GameObject cursorObject1 = PlaneObject.Create(width: Sizes.cursor, length: Sizes.cursor, widthSegments: 1, lengthSegments: 1).gameObject; cursorObject1.GetComponent <Renderer>().material = cursorMaterial; cursorObject1.GetComponent <Renderer>().material.color = colorToUse; return(cursorObject1); case CursorType.gaze: GameObject cursorObject2 = Create.Polygon(position: Vector3.zero, rotation: new Vector3(-90, 0, 0), radius: Sizes.gaze, edgeThickness: .1f, nSegments: Defaults.nSegementsCircle, color: colorToUse, sortingOrder: 1); return(cursorObject2); default: return(new GameObject()); } } GameObject cursorObject = SpawnCursorObject(); cursorObject.name = "cursor." + TRIAL.ToString(); cursorObject.transform.parent = parent.transform; cursors.Add(new Cursor(gameObject: cursorObject, trajectory: cursorTrajectory)); } } float[,] target_positions_solo = GetBufferData(Ports.target_positions_solo); AddCursors(Ports.P1, "P1", CursorType.cursor, xMod[0], target_positions_solo); AddCursors(Ports.P2, "P2", CursorType.cursor, xMod[0], target_positions_solo); AddCursors(Ports.P1_gaze_solo, "P1_gaze_solo", CursorType.gaze, xMod[0], target_positions_solo); AddCursors(Ports.P2_gaze_solo, "P2_gaze_solo", CursorType.gaze, xMod[0], target_positions_solo); float[,] target_positions_joint = GetBufferData(Ports.target_positions_joint); AddCursors(Ports.joint, "joint", CursorType.cursor, xMod[1], target_positions_joint); AddCursors(Ports.P1_gaze_joint, "P1_gaze_joint", CursorType.gaze, xMod[1], target_positions_joint); AddCursors(Ports.P2_gaze_joint, "P2_gaze_joint", CursorType.gaze, xMod[1], target_positions_joint); print(sw.Elapsed.Seconds); }
// Token: 0x060041AA RID: 16810 RVA: 0x0014CDD4 File Offset: 0x0014B1D4 private void CreateButton(int id, Vector3 position) { PlaneObject planeObject = PlaneObject.Create(0.67f, 0.67f, 2, 2); planeObject.gameObject.GetComponent <MeshRenderer>().sharedMaterial.color = new Color(1f, 1f, 1f, 1f); BoxCollider boxCollider = planeObject.gameObject.AddComponent <BoxCollider>(); boxCollider.isTrigger = true; planeObject.gameObject.transform.position = position; ButtonTrigger buttonTrigger = planeObject.gameObject.AddComponent <ButtonTrigger>(); buttonTrigger.ID = id; this.buttons.Add(planeObject.gameObject); switch (id) { case 0: planeObject.gameObject.GetComponent <Renderer>().material = new Material(Shader.Find("Unlit/Transparent")); planeObject.gameObject.GetComponent <Renderer>().material.mainTexture = this.GetTexture(Resources.Load("icons/triangle") as Texture2D); break; case 1: planeObject.gameObject.GetComponent <Renderer>().material = new Material(Shader.Find("Unlit/Transparent")); planeObject.gameObject.GetComponent <Renderer>().material.mainTexture = this.GetTexture(Resources.Load("icons/plane") as Texture2D); break; case 2: planeObject.gameObject.GetComponent <Renderer>().material = new Material(Shader.Find("Unlit/Transparent")); planeObject.gameObject.GetComponent <Renderer>().material.mainTexture = this.GetTexture(Resources.Load("icons/circle") as Texture2D); break; case 3: planeObject.gameObject.GetComponent <Renderer>().material = new Material(Shader.Find("Unlit/Transparent")); planeObject.gameObject.GetComponent <Renderer>().material.mainTexture = this.GetTexture(Resources.Load("icons/ellipse") as Texture2D); break; case 4: planeObject.gameObject.GetComponent <Renderer>().material = new Material(Shader.Find("Unlit/Transparent")); planeObject.gameObject.GetComponent <Renderer>().material.mainTexture = this.GetTexture(Resources.Load("icons/ring") as Texture2D); break; case 5: planeObject.gameObject.GetComponent <Renderer>().material = new Material(Shader.Find("Unlit/Transparent")); planeObject.gameObject.GetComponent <Renderer>().material.mainTexture = this.GetTexture(Resources.Load("icons/box") as Texture2D); break; case 6: planeObject.gameObject.GetComponent <Renderer>().material = new Material(Shader.Find("Unlit/Transparent")); planeObject.gameObject.GetComponent <Renderer>().material.mainTexture = this.GetTexture(Resources.Load("icons/cylinder") as Texture2D); break; case 7: planeObject.gameObject.GetComponent <Renderer>().material = new Material(Shader.Find("Unlit/Transparent")); planeObject.gameObject.GetComponent <Renderer>().material.mainTexture = this.GetTexture(Resources.Load("icons/cone") as Texture2D); break; case 8: planeObject.gameObject.GetComponent <Renderer>().material = new Material(Shader.Find("Unlit/Transparent")); planeObject.gameObject.GetComponent <Renderer>().material.mainTexture = this.GetTexture(Resources.Load("icons/sphere") as Texture2D); break; case 9: planeObject.gameObject.GetComponent <Renderer>().material = new Material(Shader.Find("Unlit/Transparent")); planeObject.gameObject.GetComponent <Renderer>().material.mainTexture = this.GetTexture(Resources.Load("icons/ellipsoid") as Texture2D); break; case 10: planeObject.gameObject.GetComponent <Renderer>().material = new Material(Shader.Find("Unlit/Transparent")); planeObject.gameObject.GetComponent <Renderer>().material.mainTexture = this.GetTexture(Resources.Load("icons/pyramid") as Texture2D); break; case 11: planeObject.gameObject.GetComponent <Renderer>().material = new Material(Shader.Find("Unlit/Transparent")); planeObject.gameObject.GetComponent <Renderer>().material.mainTexture = this.GetTexture(Resources.Load("icons/geosphere") as Texture2D); break; case 12: planeObject.gameObject.GetComponent <Renderer>().material = new Material(Shader.Find("Unlit/Transparent")); planeObject.gameObject.GetComponent <Renderer>().material.mainTexture = this.GetTexture(Resources.Load("icons/tube") as Texture2D); break; case 13: planeObject.gameObject.GetComponent <Renderer>().material = new Material(Shader.Find("Unlit/Transparent")); planeObject.gameObject.GetComponent <Renderer>().material.mainTexture = this.GetTexture(Resources.Load("icons/capsule") as Texture2D); break; case 14: planeObject.gameObject.GetComponent <Renderer>().material = new Material(Shader.Find("Unlit/Transparent")); planeObject.gameObject.GetComponent <Renderer>().material.mainTexture = this.GetTexture(Resources.Load("icons/roundedBox") as Texture2D); break; case 15: planeObject.gameObject.GetComponent <Renderer>().material = new Material(Shader.Find("Unlit/Transparent")); planeObject.gameObject.GetComponent <Renderer>().material.mainTexture = this.GetTexture(Resources.Load("icons/torus") as Texture2D); break; case 16: planeObject.gameObject.GetComponent <Renderer>().material = new Material(Shader.Find("Unlit/Transparent")); planeObject.gameObject.GetComponent <Renderer>().material.mainTexture = this.GetTexture(Resources.Load("icons/torusKnot") as Texture2D); break; case 17: planeObject.gameObject.GetComponent <Renderer>().material = new Material(Shader.Find("Unlit/Transparent")); planeObject.gameObject.GetComponent <Renderer>().material.mainTexture = this.GetTexture(Resources.Load("icons/arc") as Texture2D); break; case 18: planeObject.gameObject.GetComponent <Renderer>().material = new Material(Shader.Find("Unlit/Transparent")); planeObject.gameObject.GetComponent <Renderer>().material.mainTexture = this.GetTexture(Resources.Load("icons/sphericalcone") as Texture2D); break; case 19: planeObject.gameObject.GetComponent <Renderer>().material = new Material(Shader.Find("Unlit/Transparent")); planeObject.gameObject.GetComponent <Renderer>().material.mainTexture = this.GetTexture(Resources.Load("icons/superellipsoid") as Texture2D); break; } if (planeObject) { planeObject.gameObject.transform.position = position + new Vector3(0f, 0.1f, 0f); } }
// Token: 0x060041A6 RID: 16806 RVA: 0x0014C3B4 File Offset: 0x0014A7B4 public void OnButtonHit(int id) { this.animTimeout = this.animTimeMax; BaseObject baseObject = null; switch (id) { case 0: { baseObject = Triangle.Create(1f, 0); float[] array = new float[6]; array[0] = 4f; array[1] = 4f; this.shapeParamsMax = array; float[] array2 = new float[6]; array2[0] = 1f; array2[1] = 1f; this.shapeParamsStart = array2; break; } case 1: baseObject = PlaneObject.Create(1f, 1f, 1, 1); this.shapeParamsMax = new float[] { 4f, 4f, 1f, 1f, 0f, 0f }; this.shapeParamsStart = new float[] { 1f, 1f, 1f, 1f, 0f, 0f }; break; case 2: { baseObject = Circle.Create(1f, 3); float[] array3 = new float[6]; array3[0] = 2.5f; array3[1] = 40f; this.shapeParamsMax = array3; float[] array4 = new float[6]; array4[0] = 1f; array4[1] = 3f; this.shapeParamsStart = array4; break; } case 3: baseObject = Ellipse.Create(1f, 0.5f, 3); this.shapeParamsMax = new float[] { 2.5f, 1.2f, 40f, 0f, 0f, 0f }; this.shapeParamsStart = new float[] { 1f, 0.5f, 3f, 0f, 0f, 0f }; break; case 4: baseObject = Ring.Create(0.5f, 1f, 3); this.shapeParamsMax = new float[] { 1f, 2.5f, 40f, 0f, 0f, 0f }; this.shapeParamsStart = new float[] { 0.5f, 1f, 3f, 0f, 0f, 0f }; break; case 5: baseObject = Box.Create(1f, 1f, 1f, 1, 1, 1, false, null, PivotPosition.Botttom); this.shapeParamsMax = new float[] { 2.5f, 2.5f, 2.5f, 1f, 1f, 1f }; this.shapeParamsStart = new float[] { 1f, 1f, 1f, 1f, 1f, 1f }; break; case 6: baseObject = Cylinder.Create(1f, 3f, 3, 1, (!this.flatNormals) ? NormalsType.Vertex : NormalsType.Face, PivotPosition.Botttom); this.shapeParamsMax = new float[] { 1.25f, 4f, 40f, 1f, 0f, 0f, 0f }; this.shapeParamsStart = new float[] { 1f, 3f, 3f, 1f, 0f, 0f, 0f }; break; case 7: baseObject = Cone.Create(1f, 0f, 0f, 2f, 3, 10, (!this.flatNormals) ? NormalsType.Vertex : NormalsType.Face, PivotPosition.Botttom); this.shapeParamsMax = new float[] { 1.25f, 0f, 4f, 40f, 10f, 0f, 0f }; this.shapeParamsStart = new float[] { 1f, 1f, 2f, 3f, 10f, 0f, 0f }; break; case 8: { baseObject = Sphere.Create(1f, 4, 0f, 0f, 0f, (!this.flatNormals) ? NormalsType.Vertex : NormalsType.Face, PivotPosition.Botttom); float[] array5 = new float[6]; array5[0] = 2.25f; array5[1] = 40f; this.shapeParamsMax = array5; float[] array6 = new float[6]; array6[0] = 1f; array6[1] = 4f; this.shapeParamsStart = array6; break; } case 9: baseObject = Ellipsoid.Create(1f, 1f, 1f, 4, (!this.flatNormals) ? NormalsType.Vertex : NormalsType.Face, PivotPosition.Botttom); this.shapeParamsMax = new float[] { 1.25f, 2.45f, 2.5f, 40f, 0f, 0f, 0f }; this.shapeParamsStart = new float[] { 1f, 1f, 1f, 4f, 0f, 0f, 0f }; break; case 10: baseObject = Pyramid.Create(1f, 1f, 1f, 1, 1, 1, false, PivotPosition.Botttom); this.shapeParamsMax = new float[] { 2.7f, 2.7f, 1.7f, 1f, 1f, 1f, 0f, 0f, 0f }; this.shapeParamsStart = new float[] { 1f, 1f, 1f, 1f, 1f, 1f, 0f, 0f, 0f }; break; case 11: { baseObject = GeoSphere.Create(1f, 0, GeoSpherePrimitive.BaseType.Icosahedron, (!this.flatNormals) ? NormalsType.Vertex : NormalsType.Face, PivotPosition.Botttom); float[] array7 = new float[6]; array7[0] = 2.45f; array7[1] = 4f; this.shapeParamsMax = array7; float[] array8 = new float[6]; array8[0] = 1f; this.shapeParamsStart = array8; break; } case 12: baseObject = Tube.Create(0.8f, 1f, 1f, 3, 1, 0f, false, (!this.flatNormals) ? NormalsType.Vertex : NormalsType.Face, PivotPosition.Botttom); this.shapeParamsMax = new float[] { 0.8f, 1.5f, 4f, 40f, 0f, 0f, 0f, 0f }; this.shapeParamsStart = new float[] { 0.8f, 1f, 1f, 3f, 0f, 0f, 0f, 0f }; break; case 13: baseObject = Capsule.Create(1f, 1f, 4, 1, false, (!this.flatNormals) ? NormalsType.Vertex : NormalsType.Face, PivotPosition.Botttom); this.shapeParamsMax = new float[] { 1.2f, 4f, 40f, 1f, 0f, 0f, 0f }; this.shapeParamsStart = new float[] { 1f, 1f, 4f, 1f, 0f, 0f, 0f }; break; case 14: baseObject = RoundedCube.Create(1f, 1f, 1f, 1, 0.2f, (!this.flatNormals) ? NormalsType.Vertex : NormalsType.Face, PivotPosition.Botttom); this.shapeParamsMax = new float[] { 1.6f, 1.6f, 1.6f, 20f, 0.6f, 0f, 0f, 0f }; this.shapeParamsStart = new float[] { 1f, 1f, 1f, 1f, 0.2f, 0f, 0f, 0f }; break; case 15: baseObject = Torus.Create(1f, 0.5f, 4, 4, 0f, (!this.flatNormals) ? NormalsType.Vertex : NormalsType.Face, PivotPosition.Botttom); this.shapeParamsMax = new float[] { 1.6f, 0.8f, 40f, 40f, 0f, 0f, 0f }; this.shapeParamsStart = new float[] { 1f, 0.5f, 4f, 4f, 0f, 0f, 0f }; break; case 16: baseObject = TorusKnot.Create(0.5f, 0.3f, 10, 4, 2, 3, (!this.flatNormals) ? NormalsType.Vertex : NormalsType.Face, PivotPosition.Botttom); this.shapeParamsMax = new float[] { 1f, 0.5f, 120f, 40f, 2f, 3f, 0f, 0f, 0f }; this.shapeParamsStart = new float[] { 0.5f, 0.3f, 10f, 4f, 2f, 3f, 0f, 0f, 0f }; break; case 17: baseObject = Arc.Create(1f, 1f, 1f, 1f, 10, PivotPosition.Botttom); ((Arc)baseObject).gizmo.gameObject.transform.localPosition = new Vector3(-1f, -1f, 0f); this.shapeParamsMax = new float[] { 4f, 3f, 2f, 1f, 20f, -1f }; this.shapeParamsStart = new float[] { 0.5f, 0.5f, 0.1f, 0.5f, 0f, 0f }; break; case 18: baseObject = SphericalCone.Create(1f, 20, 180f, (!this.flatNormals) ? NormalsType.Vertex : NormalsType.Face, PivotPosition.Botttom); this.shapeParamsMax = new float[] { 2f, 40f, 20f, 0f, 0f, 0f }; this.shapeParamsStart = new float[] { 1f, 20f, 360f, 0f, 0f, 0f }; break; case 19: baseObject = SuperEllipsoid.Create(1f, 1f, 1f, 20, 0.5f, 1f, (!this.flatNormals) ? NormalsType.Vertex : NormalsType.Face, PivotPosition.Botttom); this.shapeParamsMax = new float[] { 2f, 2f, 2f, 20f, 0.5f, 1f, 0f, 0f, 0f }; this.shapeParamsStart = new float[] { 0.5f, 0.5f, 0.5f, 1f, 0f, 0f, 0f, 0f, 0f }; break; case 20: this.textureToggle = !this.textureToggle; break; case 21: this.flatNormals = !this.flatNormals; break; } if (baseObject) { if (this.shapeOld) { UnityEngine.Object.Destroy(this.shapeOld.gameObject); } this.shapeOld = this.shapeMain; this.shapeMain = baseObject; this.shapeMain.gameObject.GetComponent <Renderer>().material = new Material(this.GetSpecularShader()); this.shapeMain.gameObject.GetComponent <Renderer>().material.SetColor("_Color", new Color(1f, 0.7058824f, 0.7058824f)); this.shapeMain.gameObject.GetComponent <Renderer>().material.SetColor("_SpecColor", Color.white); this.shapeMain.gameObject.transform.position = this.prevPosition.position; this.nextShowTimeout = this.nextShowTimeoutMax; this.shapeID = id; } if (this.textureToggle) { this.shapeMain.GetComponent <MeshRenderer>().sharedMaterial = (Resources.Load("Checker") as Material); } else { this.shapeMain.GetComponent <MeshRenderer>().sharedMaterial = new Material(this.GetSpecularShader()); this.shapeMain.gameObject.GetComponent <Renderer>().material.SetColor("_Color", new Color(1f, 0.7058824f, 0.7058824f)); this.shapeMain.gameObject.GetComponent <Renderer>().material.SetColor("_SpecColor", Color.white); } }
void AddCursors(int[] ports, string parentName, CursorType cursorType, float xMod, float yMod, float[,] target_positions, GameObject grandParent) { GameObject parent = new GameObject(name: parentName); parent.transform.parent = grandParent.transform; // get trajectories List <float[, ]> trajectory = new List <float[, ]>(); foreach (var port in ports) { //print(port); trajectory.Add(GetBufferData(port)); //printArrayDimensions(trajectory[trajectory.Count - 1]); } // build cursors for (int TRIAL = 0; TRIAL < Number.trials; TRIAL++) { List <Vector2> cursorTrajectory = reshapeTrajectory(trajectory, TRIAL, xMod, yMod); Color colorToUse = colors[(int)target_positions[TRIAL, 0] - 1]; float randomValue = UnityEngine.Random.Range(.25f, 1); colorToUse.r = colorToUse.r * randomValue; colorToUse.g = colorToUse.g * randomValue; colorToUse.b = colorToUse.b * randomValue; GameObject SpawnCursorObject() { switch (cursorType) { case CursorType.cursor: GameObject cursorObject1 = PlaneObject.Create(width: Sizes.cursor, length: Sizes.cursor, widthSegments: 1, lengthSegments: 1).gameObject; cursorObject1.GetComponent <Renderer>().material = cursorMaterial; cursorObject1.GetComponent <Renderer>().material.color = colorToUse; return(cursorObject1); case CursorType.gaze: GameObject cursorObject2 = Create.Polygon(position: Vector3.zero, rotation: new Vector3(-90, 0, 0), radius: Sizes.gaze, edgeThickness: .1f, nSegments: Defaults.nSegementsCircle, color: colorToUse, sortingOrder: 1); return(cursorObject2); default: return(new GameObject()); } } GameObject cursorObject = SpawnCursorObject(); cursorObject.name = "cursor." + TRIAL.ToString(); cursorObject.transform.parent = parent.transform; cursors.Add(new Cursor(gameObject: cursorObject, trajectory: cursorTrajectory)); } }