gdxapp4d/gdxapp4d-lib-numberxd/src/main/java/love/distributedrebirth/numberxd/Gê̄ldGetậlÅtHebrew.java

92 lines
3.5 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package love.distributedrebirth.numberxd;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnAuthor注;
import love.distributedrebirth.numberxd.base2t.part.T003PartTrit;
import love.distributedrebirth.numberxd.base2t.part.T008PartOctal;
import love.distributedrebirth.numberxd.base2t.type.V009Tyte;
import love.distributedrebirth.numberxd.unicode.BaseGlyphSet;
import love.distributedrebirth.numberxd.unicode.SourceGlyph;
import love.distributedrebirth.numberxd.unicode.SourceGlyphCharSet;
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public class Gê̄ldGetậlÅtHebrew {
private static final double NUMERATOR_ONE = 1d;
private static final int FRACTION_POWER = 10;
private Gê̄ldGetậlÅtHebrewLetter letter;
private Gê̄ldGetậlÅtHebrewVowel vowel;
public Gê̄ldGetậlÅtHebrew() {
this.letter = Gê̄ldGetậlÅtHebrewLetter.NONE;
this.vowel = Gê̄ldGetậlÅtHebrewVowel.NONE;
}
public Gê̄ldGetậlÅtHebrew(Gê̄ldGetậlÅtHebrewLetter letter) {
this.letter = letter;
this.vowel = Gê̄ldGetậlÅtHebrewVowel.NONE;
}
public Gê̄ldGetậlÅtHebrew(V009Tyte tyte) {
int value0 = tyte.getValue(T003PartTrit.PART_1).ordinalOf(T008PartOctal.PART_1);
int value1 = tyte.getValue(T003PartTrit.PART_2).ordinalOf(T008PartOctal.PART_2);
int value2 = tyte.getValue(T003PartTrit.PART_3).ordinalOf(T008PartOctal.PART_3);
int combinedValue = value0 + value1 + value2;
letter = Gê̄ldGetậlÅtHebrewLetter.indexOf(combinedValue);
vowel = Gê̄ldGetậlÅtHebrewVowel.indexOf(combinedValue >> Gê̄ldGetậlÅtHebrewLetter.SHIFT_5);
}
public V009Tyte toTyte() {
int combinedValue = letter.ordinal() + (vowel.ordinal() << Gê̄ldGetậlÅtHebrewLetter.SHIFT_5);
T008PartOctal value0 = T008PartOctal.indexOf(T008PartOctal.PART_1, combinedValue);
T008PartOctal value1 = T008PartOctal.indexOf(T008PartOctal.PART_2, combinedValue);
T008PartOctal value2 = T008PartOctal.indexOf(T008PartOctal.PART_3, combinedValue);
return new V009Tyte(value0, value1, value2);
}
public double toDecimalValue(boolean useFullValue) {
double fraction = letter.getDecimal();
if (!Gê̄ldGetậlÅtHebrewVowel.NONE.equals(vowel)) {
fraction = fraction * Math.pow(FRACTION_POWER, vowel.getFractionOffset());
}
if (useFullValue) {
return fraction;
}
double result = NUMERATOR_ONE/fraction;
return result;
}
public void toFractionNotation(boolean useFullValue, StringBuilder buf, BaseGlyphSet glyphCharset, SourceGlyphCharSet sourceCharset) {
String fraction = glyphCharset.BȍőnPrintNumber10(letter.getDecimal());
if (!Gê̄ldGetậlÅtHebrewVowel.NONE.equals(vowel)) {
fraction = sourceCharset.print(SourceGlyph.PART_BRACKET_BEGIN)
+ fraction
+ sourceCharset.print(SourceGlyph.MATH_MULTIPLY)
+ glyphCharset.BȍőnPrintNumber10(FRACTION_POWER)
+ sourceCharset.print(SourceGlyph.MATH_POWER)
+ glyphCharset.BȍőnPrintNumber10(vowel.getFractionOffset())
+ sourceCharset.print(SourceGlyph.PART_BRACKET_CLOSE);
}
if (!useFullValue) {
buf.append(glyphCharset.BȍőnPrintNumber10((int)NUMERATOR_ONE));
buf.append(sourceCharset.print(SourceGlyph.MATH_DIVIDE));
}
buf.append(fraction);
}
public Gê̄ldGetậlÅtHebrewLetter getLetter() {
return letter;
}
public void setLetter(Gê̄ldGetậlÅtHebrewLetter letter) {
this.letter = letter;
}
public Gê̄ldGetậlÅtHebrewVowel getVowel() {
return vowel;
}
public void setVowel(Gê̄ldGetậlÅtHebrewVowel vowel) {
this.vowel = vowel;
}
}