public CElegans(float length, int size, string neurons, string connections, string muscles, GameObject wormGO, GameObject neuronHolder, GameObject musclesHolder, GameObject masspointHolder, GameObject springHolder) { this.wormGO = wormGO; this.neuronHolder = neuronHolder; this.musclesHolder = musclesHolder; this.masspointHolder = masspointHolder; this.springHolder = springHolder; this.size = size; this.length = length; dl = length; dx = dl * 0.5f * 73.0f / 60.0f; /*Width Profile*/ float[] wp = { 0.35f, 0.50f, 0.61f, 0.68f, 0.75f, 0.81f, 0.85f, 0.88f, 0.91f, 0.93f, 0.95f, 0.97f, 0.99f, 1.00f, 0.99f, 0.98f, 0.97f, 0.96f, 0.95f, 0.93f, 0.91f, 0.88f, 0.83f, 0.79f, 0.70f, 0.53f, 0.34f }; vshift = wormGO.transform.position + new Vector3(dl * size / 4.0f + 0.5f, 0.0f, dl / 3.0f / 2.0f); verlet.Constants = new VerletUniversalConstantsBridge(); verlet.CreateSimulatedShape(wormGO.transform.position, new VerletTestWorm.VerletWormFactory()); // Head. table[nextTable++] = new Neuron[MAX_NEURONS_IN_TABLE_ENTRY]; // Body. for (int i = 1; i < size + 1; i++) { table[nextTable++] = new Neuron[MAX_NEURONS_IN_TABLE_ENTRY]; } #region Muscles addMuscle(new Muscle(verlet.MassPoints, 0 * 9 + 1, 1 * 9 + 1, "VL02")); addMuscle(new Muscle(verlet.MassPoints, 2 * 9 + 1, 1 * 9 + 1, "VL02")); addMuscle(new Muscle(verlet.MassPoints, 2 * 9 + 1, 3 * 9 + 1, "VL04")); addMuscle(new Muscle(verlet.MassPoints, 4 * 9 + 1, 3 * 9 + 1, "VL04")); addMuscle(new Muscle(verlet.MassPoints, 4 * 9 + 1, 5 * 9 + 1, "VL06")); addMuscle(new Muscle(verlet.MassPoints, 6 * 9 + 1, 5 * 9 + 1, "VL06")); addMuscle(new Muscle(verlet.MassPoints, 6 * 9 + 1, 7 * 9 + 1, "VL08")); addMuscle(new Muscle(verlet.MassPoints, 8 * 9 + 1, 7 * 9 + 1, "VL08")); addMuscle(new Muscle(verlet.MassPoints, 8 * 9 + 1, 9 * 9 + 1, "VL10")); addMuscle(new Muscle(verlet.MassPoints, 10 * 9 + 1, 9 * 9 + 1, "VL10")); addMuscle(new Muscle(verlet.MassPoints, 10 * 9 + 1, 11 * 9 + 1, "VL12")); addMuscle(new Muscle(verlet.MassPoints, 12 * 9 + 1, 11 * 9 + 1, "VL12")); addMuscle(new Muscle(verlet.MassPoints, 12 * 9 + 1, 13 * 9 + 1, "VL14")); addMuscle(new Muscle(verlet.MassPoints, 14 * 9 + 1, 13 * 9 + 1, "VL14")); addMuscle(new Muscle(verlet.MassPoints, 14 * 9 + 1, 15 * 9 + 1, "VL16")); addMuscle(new Muscle(verlet.MassPoints, 16 * 9 + 1, 15 * 9 + 1, "VL16")); addMuscle(new Muscle(verlet.MassPoints, 16 * 9 + 1, 17 * 9 + 1, "VL18")); addMuscle(new Muscle(verlet.MassPoints, 18 * 9 + 1, 17 * 9 + 1, "VL18")); addMuscle(new Muscle(verlet.MassPoints, 18 * 9 + 1, 19 * 9 + 1, "VL20")); addMuscle(new Muscle(verlet.MassPoints, 20 * 9 + 1, 19 * 9 + 1, "VL20")); addMuscle(new Muscle(verlet.MassPoints, 20 * 9 + 1, 21 * 9 + 1, "VL21")); addMuscle(new Muscle(verlet.MassPoints, 22 * 9 + 1, 21 * 9 + 1, "VL21")); addMuscle(new Muscle(verlet.MassPoints, 22 * 9 + 1, 23 * 9 + 1, "VL22")); addMuscle(new Muscle(verlet.MassPoints, 24 * 9 + 1, 23 * 9 + 1, "VL22")); addMuscle(new Muscle(verlet.MassPoints, 24 * 9 + 1, 25 * 9 + 1, "VL23")); addMuscle(new Muscle(verlet.MassPoints, 26 * 9 + 1, 25 * 9 + 1, "VL23")); addMuscle(new Muscle(verlet.MassPoints, 0 * 9 + 2, 1 * 9 + 2, "VR02")); addMuscle(new Muscle(verlet.MassPoints, 2 * 9 + 2, 1 * 9 + 2, "VR02")); addMuscle(new Muscle(verlet.MassPoints, 2 * 9 + 2, 3 * 9 + 2, "VR04")); addMuscle(new Muscle(verlet.MassPoints, 4 * 9 + 2, 3 * 9 + 2, "VR04")); addMuscle(new Muscle(verlet.MassPoints, 4 * 9 + 2, 5 * 9 + 2, "VR06")); addMuscle(new Muscle(verlet.MassPoints, 6 * 9 + 2, 5 * 9 + 2, "VR06")); addMuscle(new Muscle(verlet.MassPoints, 6 * 9 + 2, 7 * 9 + 2, "VR08")); addMuscle(new Muscle(verlet.MassPoints, 8 * 9 + 2, 7 * 9 + 2, "VR08")); addMuscle(new Muscle(verlet.MassPoints, 8 * 9 + 2, 9 * 9 + 2, "VR10")); addMuscle(new Muscle(verlet.MassPoints, 10 * 9 + 2, 9 * 9 + 2, "VR10")); addMuscle(new Muscle(verlet.MassPoints, 10 * 9 + 2, 11 * 9 + 2, "VR12")); addMuscle(new Muscle(verlet.MassPoints, 12 * 9 + 2, 11 * 9 + 2, "VR12")); addMuscle(new Muscle(verlet.MassPoints, 12 * 9 + 2, 13 * 9 + 2, "VR14")); addMuscle(new Muscle(verlet.MassPoints, 14 * 9 + 2, 13 * 9 + 2, "VR14")); addMuscle(new Muscle(verlet.MassPoints, 14 * 9 + 2, 15 * 9 + 2, "VR16")); addMuscle(new Muscle(verlet.MassPoints, 16 * 9 + 2, 15 * 9 + 2, "VR16")); addMuscle(new Muscle(verlet.MassPoints, 16 * 9 + 2, 17 * 9 + 2, "VR18")); addMuscle(new Muscle(verlet.MassPoints, 18 * 9 + 2, 17 * 9 + 2, "VR18")); addMuscle(new Muscle(verlet.MassPoints, 18 * 9 + 2, 19 * 9 + 2, "VR20")); addMuscle(new Muscle(verlet.MassPoints, 20 * 9 + 2, 19 * 9 + 2, "VR20")); addMuscle(new Muscle(verlet.MassPoints, 20 * 9 + 2, 21 * 9 + 2, "VR22")); addMuscle(new Muscle(verlet.MassPoints, 22 * 9 + 2, 21 * 9 + 2, "VR22")); addMuscle(new Muscle(verlet.MassPoints, 22 * 9 + 2, 23 * 9 + 2, "VR23")); addMuscle(new Muscle(verlet.MassPoints, 24 * 9 + 2, 23 * 9 + 2, "VR23")); addMuscle(new Muscle(verlet.MassPoints, 24 * 9 + 2, 25 * 9 + 2, "VR24")); addMuscle(new Muscle(verlet.MassPoints, 26 * 9 + 2, 25 * 9 + 2, "VR24")); addMuscle(new Muscle(verlet.MassPoints, 1 * 9 + 3, 2 * 9 + 3, "VR01")); addMuscle(new Muscle(verlet.MassPoints, 3 * 9 + 3, 2 * 9 + 3, "VR01")); addMuscle(new Muscle(verlet.MassPoints, 3 * 9 + 3, 4 * 9 + 3, "VR03")); addMuscle(new Muscle(verlet.MassPoints, 5 * 9 + 3, 4 * 9 + 3, "VR03")); addMuscle(new Muscle(verlet.MassPoints, 5 * 9 + 3, 6 * 9 + 3, "VR05")); addMuscle(new Muscle(verlet.MassPoints, 7 * 9 + 3, 6 * 9 + 3, "VR05")); addMuscle(new Muscle(verlet.MassPoints, 7 * 9 + 3, 8 * 9 + 3, "VR07")); addMuscle(new Muscle(verlet.MassPoints, 9 * 9 + 3, 8 * 9 + 3, "VR07")); addMuscle(new Muscle(verlet.MassPoints, 9 * 9 + 3, 10 * 9 + 3, "VR09")); addMuscle(new Muscle(verlet.MassPoints, 11 * 9 + 3, 10 * 9 + 3, "VR09")); addMuscle(new Muscle(verlet.MassPoints, 11 * 9 + 3, 12 * 9 + 3, "VR11")); addMuscle(new Muscle(verlet.MassPoints, 13 * 9 + 3, 12 * 9 + 3, "VR11")); addMuscle(new Muscle(verlet.MassPoints, 13 * 9 + 3, 14 * 9 + 3, "VR13")); addMuscle(new Muscle(verlet.MassPoints, 15 * 9 + 3, 14 * 9 + 3, "VR13")); addMuscle(new Muscle(verlet.MassPoints, 15 * 9 + 3, 16 * 9 + 3, "VR15")); addMuscle(new Muscle(verlet.MassPoints, 17 * 9 + 3, 16 * 9 + 3, "VR15")); addMuscle(new Muscle(verlet.MassPoints, 17 * 9 + 3, 18 * 9 + 3, "VR17")); addMuscle(new Muscle(verlet.MassPoints, 19 * 9 + 3, 18 * 9 + 3, "VR17")); addMuscle(new Muscle(verlet.MassPoints, 19 * 9 + 3, 20 * 9 + 3, "VR19")); addMuscle(new Muscle(verlet.MassPoints, 21 * 9 + 3, 20 * 9 + 3, "VR19")); addMuscle(new Muscle(verlet.MassPoints, 21 * 9 + 3, 22 * 9 + 3, "VR21")); addMuscle(new Muscle(verlet.MassPoints, 23 * 9 + 3, 22 * 9 + 3, "VR21")); addMuscle(new Muscle(verlet.MassPoints, 1 * 9 + 4, 2 * 9 + 4, "DR01")); addMuscle(new Muscle(verlet.MassPoints, 3 * 9 + 4, 2 * 9 + 4, "DR01")); addMuscle(new Muscle(verlet.MassPoints, 3 * 9 + 4, 4 * 9 + 4, "DR03")); addMuscle(new Muscle(verlet.MassPoints, 5 * 9 + 4, 4 * 9 + 4, "DR03")); addMuscle(new Muscle(verlet.MassPoints, 5 * 9 + 4, 6 * 9 + 4, "DR05")); addMuscle(new Muscle(verlet.MassPoints, 7 * 9 + 4, 6 * 9 + 4, "DR05")); addMuscle(new Muscle(verlet.MassPoints, 7 * 9 + 4, 8 * 9 + 4, "DR07")); addMuscle(new Muscle(verlet.MassPoints, 9 * 9 + 4, 8 * 9 + 4, "DR07")); addMuscle(new Muscle(verlet.MassPoints, 9 * 9 + 4, 10 * 9 + 4, "DR09")); addMuscle(new Muscle(verlet.MassPoints, 11 * 9 + 4, 10 * 9 + 4, "DR09")); addMuscle(new Muscle(verlet.MassPoints, 11 * 9 + 4, 12 * 9 + 4, "DR11")); addMuscle(new Muscle(verlet.MassPoints, 13 * 9 + 4, 12 * 9 + 4, "DR11")); addMuscle(new Muscle(verlet.MassPoints, 13 * 9 + 4, 14 * 9 + 4, "DR13")); addMuscle(new Muscle(verlet.MassPoints, 15 * 9 + 4, 14 * 9 + 4, "DR13")); addMuscle(new Muscle(verlet.MassPoints, 15 * 9 + 4, 16 * 9 + 4, "DR15")); addMuscle(new Muscle(verlet.MassPoints, 17 * 9 + 4, 16 * 9 + 4, "DR15")); addMuscle(new Muscle(verlet.MassPoints, 17 * 9 + 4, 18 * 9 + 4, "DR17")); addMuscle(new Muscle(verlet.MassPoints, 19 * 9 + 4, 18 * 9 + 4, "DR17")); addMuscle(new Muscle(verlet.MassPoints, 19 * 9 + 4, 20 * 9 + 4, "DR19")); addMuscle(new Muscle(verlet.MassPoints, 21 * 9 + 4, 20 * 9 + 4, "DR19")); addMuscle(new Muscle(verlet.MassPoints, 21 * 9 + 4, 22 * 9 + 4, "DR21")); addMuscle(new Muscle(verlet.MassPoints, 23 * 9 + 4, 22 * 9 + 4, "DR21")); addMuscle(new Muscle(verlet.MassPoints, 23 * 9 + 4, 24 * 9 + 4, "DR23")); addMuscle(new Muscle(verlet.MassPoints, 25 * 9 + 4, 24 * 9 + 4, "DR23")); addMuscle(new Muscle(verlet.MassPoints, 0 * 9 + 5, 1 * 9 + 5, "DR02")); addMuscle(new Muscle(verlet.MassPoints, 2 * 9 + 5, 1 * 9 + 5, "DR02")); addMuscle(new Muscle(verlet.MassPoints, 2 * 9 + 5, 3 * 9 + 5, "DR04")); addMuscle(new Muscle(verlet.MassPoints, 4 * 9 + 5, 3 * 9 + 5, "DR04")); addMuscle(new Muscle(verlet.MassPoints, 4 * 9 + 5, 5 * 9 + 5, "DR06")); addMuscle(new Muscle(verlet.MassPoints, 6 * 9 + 5, 5 * 9 + 5, "DR06")); addMuscle(new Muscle(verlet.MassPoints, 6 * 9 + 5, 7 * 9 + 5, "DR08")); addMuscle(new Muscle(verlet.MassPoints, 8 * 9 + 5, 7 * 9 + 5, "DR08")); addMuscle(new Muscle(verlet.MassPoints, 8 * 9 + 5, 9 * 9 + 5, "DR10")); addMuscle(new Muscle(verlet.MassPoints, 10 * 9 + 5, 9 * 9 + 5, "DR10")); addMuscle(new Muscle(verlet.MassPoints, 10 * 9 + 5, 11 * 9 + 5, "DR12")); addMuscle(new Muscle(verlet.MassPoints, 12 * 9 + 5, 11 * 9 + 5, "DR12")); addMuscle(new Muscle(verlet.MassPoints, 12 * 9 + 5, 13 * 9 + 5, "DR14")); addMuscle(new Muscle(verlet.MassPoints, 14 * 9 + 5, 13 * 9 + 5, "DR14")); addMuscle(new Muscle(verlet.MassPoints, 14 * 9 + 5, 15 * 9 + 5, "DR16")); addMuscle(new Muscle(verlet.MassPoints, 16 * 9 + 5, 15 * 9 + 5, "DR16")); addMuscle(new Muscle(verlet.MassPoints, 16 * 9 + 5, 17 * 9 + 5, "DR18")); addMuscle(new Muscle(verlet.MassPoints, 18 * 9 + 5, 17 * 9 + 5, "DR18")); addMuscle(new Muscle(verlet.MassPoints, 18 * 9 + 5, 19 * 9 + 5, "DR20")); addMuscle(new Muscle(verlet.MassPoints, 20 * 9 + 5, 19 * 9 + 5, "DR20")); addMuscle(new Muscle(verlet.MassPoints, 20 * 9 + 5, 21 * 9 + 5, "DR22")); addMuscle(new Muscle(verlet.MassPoints, 22 * 9 + 5, 21 * 9 + 5, "DR22")); addMuscle(new Muscle(verlet.MassPoints, 22 * 9 + 5, 23 * 9 + 5, "DR24")); addMuscle(new Muscle(verlet.MassPoints, 24 * 9 + 5, 23 * 9 + 5, "DR24")); addMuscle(new Muscle(verlet.MassPoints, 0 * 9 + 6, 1 * 9 + 6, "DL02")); addMuscle(new Muscle(verlet.MassPoints, 2 * 9 + 6, 1 * 9 + 6, "DL02")); addMuscle(new Muscle(verlet.MassPoints, 2 * 9 + 6, 3 * 9 + 6, "DL04")); addMuscle(new Muscle(verlet.MassPoints, 4 * 9 + 6, 3 * 9 + 6, "DL04")); addMuscle(new Muscle(verlet.MassPoints, 4 * 9 + 6, 5 * 9 + 6, "DL06")); addMuscle(new Muscle(verlet.MassPoints, 6 * 9 + 6, 5 * 9 + 6, "DL06")); addMuscle(new Muscle(verlet.MassPoints, 6 * 9 + 6, 7 * 9 + 6, "DL08")); addMuscle(new Muscle(verlet.MassPoints, 8 * 9 + 6, 7 * 9 + 6, "DL08")); addMuscle(new Muscle(verlet.MassPoints, 8 * 9 + 6, 9 * 9 + 6, "DL10")); addMuscle(new Muscle(verlet.MassPoints, 10 * 9 + 6, 9 * 9 + 6, "DL10")); addMuscle(new Muscle(verlet.MassPoints, 10 * 9 + 6, 11 * 9 + 6, "DL12")); addMuscle(new Muscle(verlet.MassPoints, 12 * 9 + 6, 11 * 9 + 6, "DL12")); addMuscle(new Muscle(verlet.MassPoints, 12 * 9 + 6, 13 * 9 + 6, "DL14")); addMuscle(new Muscle(verlet.MassPoints, 14 * 9 + 6, 13 * 9 + 6, "DL14")); addMuscle(new Muscle(verlet.MassPoints, 14 * 9 + 6, 15 * 9 + 6, "DL16")); addMuscle(new Muscle(verlet.MassPoints, 16 * 9 + 6, 15 * 9 + 6, "DL16")); addMuscle(new Muscle(verlet.MassPoints, 16 * 9 + 6, 17 * 9 + 6, "DL18")); addMuscle(new Muscle(verlet.MassPoints, 18 * 9 + 6, 17 * 9 + 6, "DL18")); addMuscle(new Muscle(verlet.MassPoints, 18 * 9 + 6, 19 * 9 + 6, "DL20")); addMuscle(new Muscle(verlet.MassPoints, 20 * 9 + 6, 19 * 9 + 6, "DL20")); addMuscle(new Muscle(verlet.MassPoints, 20 * 9 + 6, 21 * 9 + 6, "DL22")); addMuscle(new Muscle(verlet.MassPoints, 22 * 9 + 6, 21 * 9 + 6, "DL22")); addMuscle(new Muscle(verlet.MassPoints, 22 * 9 + 6, 23 * 9 + 6, "DL24")); addMuscle(new Muscle(verlet.MassPoints, 24 * 9 + 6, 23 * 9 + 6, "DL24")); addMuscle(new Muscle(verlet.MassPoints, 1 * 9 + 7, 2 * 9 + 7, "DL01")); addMuscle(new Muscle(verlet.MassPoints, 3 * 9 + 7, 2 * 9 + 7, "DL01")); addMuscle(new Muscle(verlet.MassPoints, 3 * 9 + 7, 4 * 9 + 7, "DL03")); addMuscle(new Muscle(verlet.MassPoints, 5 * 9 + 7, 4 * 9 + 7, "DL03")); addMuscle(new Muscle(verlet.MassPoints, 5 * 9 + 7, 6 * 9 + 7, "DL05")); addMuscle(new Muscle(verlet.MassPoints, 7 * 9 + 7, 6 * 9 + 7, "DL05")); addMuscle(new Muscle(verlet.MassPoints, 7 * 9 + 7, 8 * 9 + 7, "DL07")); addMuscle(new Muscle(verlet.MassPoints, 9 * 9 + 7, 8 * 9 + 7, "DL07")); addMuscle(new Muscle(verlet.MassPoints, 9 * 9 + 7, 10 * 9 + 7, "DL09")); addMuscle(new Muscle(verlet.MassPoints, 11 * 9 + 7, 10 * 9 + 7, "DL09")); addMuscle(new Muscle(verlet.MassPoints, 11 * 9 + 7, 12 * 9 + 7, "DL11")); addMuscle(new Muscle(verlet.MassPoints, 13 * 9 + 7, 12 * 9 + 7, "DL11")); addMuscle(new Muscle(verlet.MassPoints, 13 * 9 + 7, 14 * 9 + 7, "DL13")); addMuscle(new Muscle(verlet.MassPoints, 15 * 9 + 7, 14 * 9 + 7, "DL13")); addMuscle(new Muscle(verlet.MassPoints, 15 * 9 + 7, 16 * 9 + 7, "DL15")); addMuscle(new Muscle(verlet.MassPoints, 17 * 9 + 7, 16 * 9 + 7, "DL15")); addMuscle(new Muscle(verlet.MassPoints, 17 * 9 + 7, 18 * 9 + 7, "DL17")); addMuscle(new Muscle(verlet.MassPoints, 19 * 9 + 7, 18 * 9 + 7, "DL17")); addMuscle(new Muscle(verlet.MassPoints, 19 * 9 + 7, 20 * 9 + 7, "DL19")); addMuscle(new Muscle(verlet.MassPoints, 21 * 9 + 7, 20 * 9 + 7, "DL19")); addMuscle(new Muscle(verlet.MassPoints, 21 * 9 + 7, 22 * 9 + 7, "DL21")); addMuscle(new Muscle(verlet.MassPoints, 23 * 9 + 7, 22 * 9 + 7, "DL21")); addMuscle(new Muscle(verlet.MassPoints, 23 * 9 + 7, 24 * 9 + 7, "DL23")); addMuscle(new Muscle(verlet.MassPoints, 25 * 9 + 7, 24 * 9 + 7, "DL23")); addMuscle(new Muscle(verlet.MassPoints, 1 * 9 + 8, 2 * 9 + 8, "VL01")); addMuscle(new Muscle(verlet.MassPoints, 3 * 9 + 8, 2 * 9 + 8, "VL01")); addMuscle(new Muscle(verlet.MassPoints, 3 * 9 + 8, 4 * 9 + 8, "VL03")); addMuscle(new Muscle(verlet.MassPoints, 5 * 9 + 8, 4 * 9 + 8, "VL03")); addMuscle(new Muscle(verlet.MassPoints, 5 * 9 + 8, 6 * 9 + 8, "VL05")); addMuscle(new Muscle(verlet.MassPoints, 7 * 9 + 8, 6 * 9 + 8, "VL05")); addMuscle(new Muscle(verlet.MassPoints, 7 * 9 + 8, 8 * 9 + 8, "VL07")); addMuscle(new Muscle(verlet.MassPoints, 9 * 9 + 8, 8 * 9 + 8, "VL07")); addMuscle(new Muscle(verlet.MassPoints, 9 * 9 + 8, 10 * 9 + 8, "VL09")); addMuscle(new Muscle(verlet.MassPoints, 11 * 9 + 8, 10 * 9 + 8, "VL09")); addMuscle(new Muscle(verlet.MassPoints, 11 * 9 + 8, 12 * 9 + 8, "VL11")); addMuscle(new Muscle(verlet.MassPoints, 13 * 9 + 8, 12 * 9 + 8, "VL11")); addMuscle(new Muscle(verlet.MassPoints, 13 * 9 + 8, 14 * 9 + 8, "VL13")); addMuscle(new Muscle(verlet.MassPoints, 15 * 9 + 8, 14 * 9 + 8, "VL13")); addMuscle(new Muscle(verlet.MassPoints, 15 * 9 + 8, 16 * 9 + 8, "VL15")); addMuscle(new Muscle(verlet.MassPoints, 17 * 9 + 8, 16 * 9 + 8, "VL15")); addMuscle(new Muscle(verlet.MassPoints, 17 * 9 + 8, 18 * 9 + 8, "VL17")); addMuscle(new Muscle(verlet.MassPoints, 19 * 9 + 8, 18 * 9 + 8, "VL17")); addMuscle(new Muscle(verlet.MassPoints, 19 * 9 + 8, 20 * 9 + 8, "VL19")); addMuscle(new Muscle(verlet.MassPoints, 21 * 9 + 8, 20 * 9 + 8, "VL19")); addMuscle(new Muscle(verlet.MassPoints, 21 * 9 + 8, 22 * 9 + 8, "VL21")); addMuscle(new Muscle(verlet.MassPoints, 23 * 9 + 8, 22 * 9 + 8, "VL21")); #endregion // Tail is all done in verlet. using (var reader = new StreamReader(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(neurons)))) { while (!reader.EndOfStream) { int tresh = 1; var line = reader.ReadLine(); var tokens = line.Split((char[])null, StringSplitOptions.RemoveEmptyEntries); var name = tokens[0]; var x = float.Parse(tokens[1]); var y = float.Parse(tokens[2]); var z = float.Parse(tokens[3]); var clrIndex = int.Parse(tokens[4]); // Sy: Intentionally flip around y and z - as I think the original proto was in GL coords. var temp = z; z = y; y = temp; // Moved this from elsewhere. y *= 0.5f * length; var type = 'm'; if (name[name.Length - 1] == 'L') { type = 'l'; } if (name[name.Length - 1] == 'R') { type = 'r'; } addNeuron(name, vshift + new Vector3(dx * (-1.5f - x * size), y, -dl / 2.0f + ((0.045f + z / 25.0f) / 0.095f * length)), (float)tresh, type, clrIndex, line); } } using (var reader = new StreamReader(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(connections)))) { reader.ReadLine(); // For some resaon they ignore the first line. Headers? while (!reader.EndOfStream) { var line = reader.ReadLine(); var tokens = line.Split((char[])null, StringSplitOptions.RemoveEmptyEntries); var name = tokens[0]; var name2 = tokens[1]; var ctype = tokens[2]; var value = 1.0f; if (!float.TryParse(tokens[3], out value)) { Debug.Break(); } if (ctype.StartsWith("EJ") || ctype[0] == 'S') { var n1 = Array.Find(neuron, n => n.name == name); if (n1 != null) { var n2 = Array.Find(neuron, n => n.name == name2); if (n2 != null) { n1.AddAxon(n2, value); } } } } } using (var reader = new StreamReader(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(muscles)))) { while (!reader.EndOfStream) { var line = reader.ReadLine().Trim(); var tokens = line.Split((char[])null, StringSplitOptions.RemoveEmptyEntries); var name = tokens[0]; var name2 = tokens[1]; var weight = 0.0f; if (!float.TryParse(tokens[2], out weight)) { Debug.Break(); } // WFT AGAIN!? weight = 3.0f; addNeuroMuscleAxosByName(name, name2, weight); } } }
// Start is called before the first frame update void Start() { sim = new VerletSim(); sim.CreateSimulatedShape(new Vector3(0.0f, 0.3f, 0.0f), new VerletWormFactory()); }