// Initialize the four axis public PhoneManager() { emptyConsonant = new ConsonantPhone(); emptyConsonant.IPA = "'"; emptyConsonant.POA = "null"; emptyConsonant.MOA = "null"; emptyConsonant.FCB = "back"; emptyConsonant.Aspiration = "no"; emptyConsonant.Voiceness = "no"; emptyVowel = new VowelPhone(); emptyVowel.IPA = "ΙΏ"; emptyVowel.Openness = "close"; emptyVowel.Roundness = "unrounded"; emptyVowel.FCB = "front"; consonantHorizontal.Clear(); consonantVertical.Clear(); vowelHorizontal.Clear(); vowelVertical.Clear(); consonantHorizontal.Add(new StringIndexVector("nasal", 0)); consonantHorizontal.Add(new StringIndexVector("plosive", 2)); consonantHorizontal.Add(new StringIndexVector("fricative", 6)); consonantHorizontal.Add(new StringIndexVector("sibilant", 8)); consonantHorizontal.Add(new StringIndexVector("flap", 10)); consonantHorizontal.Add(new StringIndexVector("trill", 11)); consonantHorizontal.Add(new StringIndexVector("lateral", 12)); consonantHorizontal.Add(new StringIndexVector("ejective plosive", 13)); consonantHorizontal.Add(new StringIndexVector("ejective fricative", 14)); consonantHorizontal.Add(new StringIndexVector("ejective sibilant", 15)); consonantHorizontal.Add(new StringIndexVector("click", 16)); consonantHorizontal.Add(new StringIndexVector("implosive", 18)); consonantVertical.Add(new StringIndexVector("bilabial", 0)); consonantVertical.Add(new StringIndexVector("labiodental", 1)); consonantVertical.Add(new StringIndexVector("linguolabial", 2)); consonantVertical.Add(new StringIndexVector("dental", 3)); consonantVertical.Add(new StringIndexVector("alveolar", 4)); consonantVertical.Add(new StringIndexVector("postalveolar", 5)); consonantVertical.Add(new StringIndexVector("retroflex", 6)); consonantVertical.Add(new StringIndexVector("palatal", 7)); consonantVertical.Add(new StringIndexVector("velar", 8)); consonantVertical.Add(new StringIndexVector("uvular", 9)); consonantVertical.Add(new StringIndexVector("glottal", 10)); vowelHorizontal.Add(new StringIndexVector("open", 0)); vowelHorizontal.Add(new StringIndexVector("near-open", 1)); vowelHorizontal.Add(new StringIndexVector("half-open", 2)); vowelHorizontal.Add(new StringIndexVector("middle", 3)); vowelHorizontal.Add(new StringIndexVector("half-close", 4)); vowelHorizontal.Add(new StringIndexVector("near-close", 5)); vowelHorizontal.Add(new StringIndexVector("close", 6)); vowelVertical.Add(new StringIndexVector("front", 0)); vowelVertical.Add(new StringIndexVector("central", 2)); vowelVertical.Add(new StringIndexVector("back", 4)); }
public VowelPhone[][] getVowelPool() { VowelPhone[][] result = new VowelPhone[6][]; for (int i = 0; i < 6; i++) { result[i] = new VowelPhone[7]; } // Populate the returning value with the simple vowel foreach (VowelPhone vp in SimpleVowels) { int h = 0, v = 0; // Get the horizontal index foreach (StringIndexVector siv in vowelHorizontal) { if (vp.Openness.Equals(siv.stringKey)) { h = siv.index; break; } } // Get the vertical index foreach (StringIndexVector siv in vowelVertical) { if (vp.FCB.Equals(siv.stringKey)) { v = siv.index; break; } } // Change vertical index for special case if (vp.Roundness.Equals("unrounded")) { v++; } // Put the phone to its place result[v][h] = vp; } return(result); }