Package org.boxutil.util
Class CommonUtil
java.lang.Object
org.boxutil.util.CommonUtil
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionstatic ColorbyteArrayToColor(byte... color) static org.lwjgl.util.vector.Vector4fbyteArrayToColor4f(byte... color) static org.lwjgl.util.vector.Vector3fclampColor3f(org.lwjgl.util.vector.Vector3f color, org.lwjgl.util.vector.Vector3f out) static org.lwjgl.util.vector.Vector4fclampColor4f(org.lwjgl.util.vector.Vector4f color, org.lwjgl.util.vector.Vector4f out) static byte[]color4fToByteArray(org.lwjgl.util.vector.Vector4f color) static org.lwjgl.util.vector.Vector3fcolorNormalization3f(Color color, org.lwjgl.util.vector.Vector3f out) static float[]colorNormalization3fArray(Color color, float[] out) static org.lwjgl.util.vector.Vector4fcolorNormalization4f(Color color, float alpha) static org.lwjgl.util.vector.Vector4fcolorNormalization4f(Color color, org.lwjgl.util.vector.Vector4f out) static float[]colorNormalization4fArray(Color color, float[] out) static byte[]colorToByteArray(Color color) static ByteBuffercreateByteBuffer(byte... array) static DoubleBuffercreateFloatBuffer(double... array) static FloatBuffercreateFloatBuffer(float... array) static FloatBuffercreateFloatBuffer(org.lwjgl.util.vector.Matrix2f matrix) static FloatBuffercreateFloatBuffer(org.lwjgl.util.vector.Matrix2f... matrices) static FloatBuffercreateFloatBuffer(org.lwjgl.util.vector.Matrix3f matrix) static FloatBuffercreateFloatBuffer(org.lwjgl.util.vector.Matrix3f... matrices) static FloatBuffercreateFloatBuffer(org.lwjgl.util.vector.Matrix4f matrix) static FloatBuffercreateFloatBuffer(org.lwjgl.util.vector.Matrix4f... matrices) static FloatBuffercreateFloatBuffer(org.lwjgl.util.vector.Vector2f vector) static FloatBuffercreateFloatBuffer(org.lwjgl.util.vector.Vector2f... vectors) static FloatBuffercreateFloatBuffer(org.lwjgl.util.vector.Vector3f vector) static FloatBuffercreateFloatBuffer(org.lwjgl.util.vector.Vector3f... vectors) static FloatBuffercreateFloatBuffer(org.lwjgl.util.vector.Vector4f vector) static FloatBuffercreateFloatBuffer(org.lwjgl.util.vector.Vector4f... vectors) static FloatBufferstatic FloatBufferstatic FloatBufferstatic IntBuffercreateIntBuffer(int... array) static LongBuffercreateLongBuffer(long... array) static org.lwjgl.PointerBuffercreatePointerBuffer(long... array) static CharBuffercreateShortBuffer(char... array) static ShortBuffercreateShortBuffer(short... array) static FloatBufferfillIdentityMatrix2x2f(int writePosition, FloatBuffer target) static FloatBufferfillIdentityMatrix3x3f(int writePosition, FloatBuffer target) static FloatBufferfillIdentityMatrix4x4f(int writePosition, FloatBuffer target) static floatfloat16BitsToFloat(short src) Just for fast, ignore special values.static shortfloat16ToShort(float src) Just for fast, ignore special values.static short[]float16ToShort(float... array) Just for fast, ignore special values.static com.fs.starfarer.api.util.Pair<int[],ByteBuffer> getGLTexture(int target, int texture, byte channelNum) Get the level 0 texture object bytes data.static ColorgetKelvinColor(float temperature) Not accurate numbers.static float[]getMatrix2fArray(org.lwjgl.util.vector.Matrix2f matrix) static float[]getMatrix3fArray(org.lwjgl.util.vector.Matrix3f matrix) static float[]getMatrix4fArray(org.lwjgl.util.vector.Matrix4f matrix) static com.fs.starfarer.api.util.Pair<int[],ByteBuffer> getRawPixels(String file, int channelNum) static com.fs.starfarer.api.util.Pair<int[],ByteBuffer> getRawPixels(String file, int channelNum, boolean alignForward) static float[]getVector2fArray(org.lwjgl.util.vector.Vector2f vector) static float[]getVector3fArray(org.lwjgl.util.vector.Vector3f vector) static float[]getVector4fArray(org.lwjgl.util.vector.Vector4f vector) static voidstatic ColorHSVToRGB(org.lwjgl.util.vector.Vector3f color) static ColorHSVToRGB(org.lwjgl.util.vector.Vector3f color, float alpha) static org.lwjgl.util.vector.Vector3fHSVToRGB(org.lwjgl.util.vector.Vector3f color, org.lwjgl.util.vector.Vector3f out) static float[]HSVToRGBArray(float h, float s, float v) static booleanisZeroVector3f(org.lwjgl.util.vector.Vector3f check) static booleanisZeroVector4f(org.lwjgl.util.vector.Vector4f check) static floatjFloat16ToFloat(short floatBinary16) Move from java 21static shortjFloatToFloat16(float f) Move from java 21static bytenormalizedFloatToByte(float src) static byte[]normalizedFloatToByte(float... array) static bytenormalizedFloatToUnsignedByte(float src) static byte[]normalizedFloatToUnsignedByte(float... array) static float[]packingBytesToFloat(byte[] i3, byte[] i2, byte[] i1, byte[] i0) static floatpackingBytesToFloat(byte i3, byte i2, byte i1, byte i0) static int[]packingBytesToInt(byte[] i3, byte[] i2, byte[] i1, byte[] i0) static intpackingBytesToInt(byte i3, byte i2, byte i1, byte i0) static short[]packingBytesToShort(byte[] i1, byte[] i0) static shortpackingBytesToShort(byte i1, byte i0) static voidprintThrowable(Class clazz, String tips, Throwable e) static voidprintThrowable(org.apache.log4j.Logger logger, String tips, Throwable e) static voidprintThrowable(org.apache.log4j.Logger logger, org.apache.log4j.Level level, String tips, Throwable e) static ShortBufferputFloat16(ShortBuffer buffer, float src) Just for fast, ignore special values.static ShortBufferputFloat16(ShortBuffer buffer, float... array) Just for fast, ignore special values.static ByteBufferputNormalizedByte(ByteBuffer buffer, float src) static ByteBufferputNormalizedByte(ByteBuffer buffer, float... array) static ByteBufferputNormalizedUnsignedByte(ByteBuffer buffer, float src) static ByteBufferputNormalizedUnsignedByte(ByteBuffer buffer, float... array) static FloatBufferputPackingBytes(FloatBuffer buffer, byte[] i3, byte[] i2, byte[] i1, byte[] i0) static FloatBufferputPackingBytes(FloatBuffer buffer, byte i3, byte i2, byte i1, byte i0) static FloatBufferputPackingBytes(FloatBuffer buffer, int index, byte i3, byte i2, byte i1, byte i0) static IntBufferputPackingBytes(IntBuffer buffer, byte[] i3, byte[] i2, byte[] i1, byte[] i0) static IntBufferputPackingBytes(IntBuffer buffer, byte i3, byte i2, byte i1, byte i0) static IntBufferputPackingBytes(IntBuffer buffer, int index, byte i3, byte i2, byte i1, byte i0) static ShortBufferputPackingBytes(ShortBuffer buffer, byte[] i1, byte[] i0) static ShortBufferputPackingBytes(ShortBuffer buffer, byte i1, byte i0) static ShortBufferputPackingBytes(ShortBuffer buffer, int index, byte i1, byte i0) static Object[]reverseArray(Object[] array) static org.lwjgl.util.vector.Vector3fstatic org.lwjgl.util.vector.Vector3fRGBToHSV(org.lwjgl.util.vector.Vector3f color, org.lwjgl.util.vector.Vector3f out) static float[]RGBToHSVArray(float r, float g, float b) static booleansaveBytesImage(String path, String saveFileName, ByteBuffer buffer, int width, int height, byte bufferChannel) General method for save OpenGL texture object to local ARGB png format image.static booleansaveGLTexture(String path, String saveFileName, int target, int texture, byte channelNum) Requires OpenGL 3.0 or higher and Framebuffer support.static ColortoCommonColor(org.lwjgl.util.vector.Vector3f color) static ColortoCommonColor(org.lwjgl.util.vector.Vector4f color) static org.lwjgl.util.vector.Matrix2ftoMatrix2f(float[] array) static org.lwjgl.util.vector.Matrix3ftoMatrix3f(float[] array) static org.lwjgl.util.vector.Matrix4ftoMatrix4f(float[] array)
-
Method Details
-
getKelvinColor
Not accurate numbers.The value at
[1000, 40000], unit isK(Kelvin). -
RGBToHSVArray
public static float[] RGBToHSVArray(float r, float g, float b) -
RGBToHSV
public static org.lwjgl.util.vector.Vector3f RGBToHSV(org.lwjgl.util.vector.Vector3f color, org.lwjgl.util.vector.Vector3f out) -
RGBToHSV
public static org.lwjgl.util.vector.Vector3f RGBToHSV(Color color, org.lwjgl.util.vector.Vector3f out) -
HSVToRGBArray
public static float[] HSVToRGBArray(float h, float s, float v) -
HSVToRGB
public static org.lwjgl.util.vector.Vector3f HSVToRGB(org.lwjgl.util.vector.Vector3f color, org.lwjgl.util.vector.Vector3f out) -
HSVToRGB
-
HSVToRGB
-
toCommonColor
-
clampColor3f
public static org.lwjgl.util.vector.Vector3f clampColor3f(@NotNull org.lwjgl.util.vector.Vector3f color, org.lwjgl.util.vector.Vector3f out) -
toCommonColor
-
clampColor4f
public static org.lwjgl.util.vector.Vector4f clampColor4f(@NotNull org.lwjgl.util.vector.Vector4f color, org.lwjgl.util.vector.Vector4f out) -
colorNormalization3f
public static org.lwjgl.util.vector.Vector3f colorNormalization3f(@NotNull Color color, org.lwjgl.util.vector.Vector3f out) -
colorNormalization4f
public static org.lwjgl.util.vector.Vector4f colorNormalization4f(@NotNull Color color, org.lwjgl.util.vector.Vector4f out) -
colorNormalization3fArray
-
colorNormalization4fArray
-
colorToByteArray
-
color4fToByteArray
public static byte[] color4fToByteArray(org.lwjgl.util.vector.Vector4f color) -
byteArrayToColor
- Parameters:
color- length is 4
-
byteArrayToColor4f
public static org.lwjgl.util.vector.Vector4f byteArrayToColor4f(byte... color) - Parameters:
color- length is 4
-
colorNormalization4f
public static org.lwjgl.util.vector.Vector4f colorNormalization4f(@NotNull Color color, float alpha) -
isZeroVector3f
public static boolean isZeroVector3f(@NotNull org.lwjgl.util.vector.Vector3f check) -
isZeroVector4f
public static boolean isZeroVector4f(@NotNull org.lwjgl.util.vector.Vector4f check) -
getVector2fArray
public static float[] getVector2fArray(@NotNull org.lwjgl.util.vector.Vector2f vector) -
getVector3fArray
public static float[] getVector3fArray(@NotNull org.lwjgl.util.vector.Vector3f vector) -
getVector4fArray
public static float[] getVector4fArray(@NotNull org.lwjgl.util.vector.Vector4f vector) -
getMatrix2fArray
public static float[] getMatrix2fArray(@NotNull org.lwjgl.util.vector.Matrix2f matrix) -
getMatrix3fArray
public static float[] getMatrix3fArray(@NotNull org.lwjgl.util.vector.Matrix3f matrix) -
getMatrix4fArray
public static float[] getMatrix4fArray(@NotNull org.lwjgl.util.vector.Matrix4f matrix) -
toMatrix2f
public static org.lwjgl.util.vector.Matrix2f toMatrix2f(float[] array) -
toMatrix3f
public static org.lwjgl.util.vector.Matrix3f toMatrix3f(float[] array) -
toMatrix4f
public static org.lwjgl.util.vector.Matrix4f toMatrix4f(float[] array) -
createFloatBuffer
-
createFloatBuffer
-
createFloatBuffer
-
createFloatBuffer
-
createFloatBuffer
-
createFloatBuffer
-
createFloatBuffer
-
createFloatBuffer
-
createFloatBuffer
-
createFloatBuffer
-
createFloatBuffer
-
createFloatBuffer
-
createPointerBuffer
public static org.lwjgl.PointerBuffer createPointerBuffer(long... array) -
createFloatBuffer
-
createFloatBuffer
-
createLongBuffer
-
createIntBuffer
-
createShortBuffer
-
createShortBuffer
-
createByteBuffer
-
createIdentityMatrix2x2f
- Returns:
- 2x2 identity matrix in buffer with 4 capacity.
-
fillIdentityMatrix2x2f
-
createIdentityMatrix3x3f
- Returns:
- 3x3 identity matrix in buffer with 9 capacity.
-
fillIdentityMatrix3x3f
-
createIdentityMatrix4x4f
- Returns:
- 4x4 identity matrix in buffer with 16 capacity.
-
fillIdentityMatrix4x4f
-
float16BitsToFloat
public static float float16BitsToFloat(short src) Just for fast, ignore special values. -
float16ToShort
public static short float16ToShort(float src) Just for fast, ignore special values. -
jFloat16ToFloat
public static float jFloat16ToFloat(short floatBinary16) Move from java 21 -
jFloatToFloat16
public static short jFloatToFloat16(float f) Move from java 21 -
float16ToShort
public static short[] float16ToShort(float... array) Just for fast, ignore special values. -
putFloat16
Just for fast, ignore special values. -
putFloat16
Just for fast, ignore special values. -
packingBytesToShort
public static short packingBytesToShort(byte i1, byte i0) -
packingBytesToShort
public static short[] packingBytesToShort(byte[] i1, byte[] i0) -
putPackingBytes
-
putPackingBytes
-
putPackingBytes
-
packingBytesToInt
public static int packingBytesToInt(byte i3, byte i2, byte i1, byte i0) -
packingBytesToInt
public static int[] packingBytesToInt(byte[] i3, byte[] i2, byte[] i1, byte[] i0) -
putPackingBytes
-
putPackingBytes
-
putPackingBytes
-
packingBytesToFloat
public static float packingBytesToFloat(byte i3, byte i2, byte i1, byte i0) -
packingBytesToFloat
public static float[] packingBytesToFloat(byte[] i3, byte[] i2, byte[] i1, byte[] i0) -
putPackingBytes
public static FloatBuffer putPackingBytes(FloatBuffer buffer, int index, byte i3, byte i2, byte i1, byte i0) -
putPackingBytes
public static FloatBuffer putPackingBytes(@NotNull FloatBuffer buffer, byte i3, byte i2, byte i1, byte i0) -
putPackingBytes
public static FloatBuffer putPackingBytes(@NotNull FloatBuffer buffer, byte[] i3, byte[] i2, byte[] i1, byte[] i0) -
normalizedFloatToByte
public static byte normalizedFloatToByte(float src) -
normalizedFloatToByte
public static byte[] normalizedFloatToByte(float... array) -
putNormalizedByte
-
putNormalizedByte
-
normalizedFloatToUnsignedByte
public static byte normalizedFloatToUnsignedByte(float src) -
normalizedFloatToUnsignedByte
public static byte[] normalizedFloatToUnsignedByte(float... array) -
putNormalizedUnsignedByte
-
putNormalizedUnsignedByte
-
reverseArray
-
getRawPixels
public static com.fs.starfarer.api.util.Pair<int[],ByteBuffer> getRawPixels(String file, int channelNum, boolean alignForward) - Parameters:
alignForward-truerotate the image from facing upward to facing right, i.e. rotate it in -90 angle, that force it point to positive x-axis rather than positive y-axis.- Returns:
- int[] = {sizeX, sizeY, channelNum, pixelPreImage, ivec3(averageColor), ivec3(averageBrightColor)};
ByteBuffer = pixels value;
-
getRawPixels
public static com.fs.starfarer.api.util.Pair<int[],ByteBuffer> getRawPixels(String file, int channelNum) -
getGLTexture
public static com.fs.starfarer.api.util.Pair<int[],ByteBuffer> getGLTexture(int target, int texture, byte channelNum) Get the level 0 texture object bytes data.- Parameters:
target-GL11.GL_TEXTURE_1DandGL11.GL_TEXTURE_2Donly.texture- only support the 8bit per channel ubyte texture, and format must beGL11.GL_RED,GL30.GL_RG,GL11.GL_RGB,GL11.GL_RGBA.channelNum- the channel of OpenGL texture object.- Returns:
- int[] = {width, height, internalFormat};
ByteBuffer = pixels value, null if format not support or failed;
internalFormat returns 0 if failed or format not support or failed.
-
saveBytesImage
public static boolean saveBytesImage(@Nullable String path, @Nullable String saveFileName, ByteBuffer buffer, int width, int height, byte bufferChannel) General method for save OpenGL texture object to local ARGB png format image.Root path is in
'gameRootDirectory'\for default.- Parameters:
path- unneeded add a\at the start; set to null that save to'gameRootDirectory'\saves\images\.saveFileName- the name without format, length less than or equal 100; set to null that save to"SavedTexture_'System.currentTimeMillis()'.png".buffer- default OpenGL order, LB = positionZero, TR = positionMax.width- the texture width.height- the texture height.bufferChannel- the OpenGL texture object channel num: 1, 2, 3, 4. if less than 4, will set alpha channel to 255.- Returns:
- true if success, false if failed.
-
saveGLTexture
public static boolean saveGLTexture(@Nullable String path, @Nullable String saveFileName, int target, int texture, byte channelNum) Requires OpenGL 3.0 or higher and Framebuffer support.Save OpenGL texture object to local ARGB png format image.
Root path is in
'gameRootDirectory'\for default.- Parameters:
path- unneeded add a\at the start; set to null that save to'gameRootDirectory'\saves\images\.saveFileName- the name without format, length less than or equal 100; set to null that save to"SavedTexture_'System.currentTimeMillis()'.png".target-GL11.GL_TEXTURE_1DandGL11.GL_TEXTURE_2Donly.texture- only support the 8bit per channel unsigned byte texture, and format must beGL11.GL_RED,GL30.GL_RG,GL11.GL_RGB,GL11.GL_RGBA.- Returns:
- true if success, false if failed.
-
glDebug
- Throws:
org.lwjgl.opengl.OpenGLException
-
printThrowable
-
printThrowable
-
printThrowable
-