system.numerics.Quaternion Maven / Gradle / Ivy
/*
* MIT License
*
* Copyright (c) 2024 MASES s.r.l.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
/**************************************************************************************
*
* This code was generated from a template using JCOReflector v. 1.15.0.0
*
* Manual changes to this file may cause unexpected behavior in your application.
* Manual changes to this file will be overwritten if the code is regenerated.
*
*************************************************************************************/
package system.numerics;
import org.mases.jcobridge.*;
import org.mases.jcobridge.netreflection.*;
import java.util.ArrayList;
// Import section
import system.ValueType;
import system.Single;
import system.numerics.Vector3;
import system.numerics.Quaternion;
import system.numerics.Matrix4x4;
/**
* The base .NET class managing System.Numerics.Quaternion, System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
*
*
* .NET documentation at https://docs.microsoft.com/en-us/dotnet/api/System.Numerics.Quaternion
*
*
* Powered by JCOBridge: more info at https://www.jcobridge.com
*
* @author MASES s.r.l https://masesgroup.com
* @version 1.15.0.0
*/
public class Quaternion extends ValueType {
/**
* Fully assembly qualified name: System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
*/
public static final String assemblyFullName = "System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
/**
* Assembly name: System.Numerics
*/
public static final String assemblyShortName = "System.Numerics";
/**
* Qualified class name: System.Numerics.Quaternion
*/
public static final String className = "System.Numerics.Quaternion";
static JCOBridge bridge = JCOBridgeInstance.getInstance(assemblyFullName);
/**
* The type managed from JCOBridge. See {@link JCType}
*/
public static JCType classType = createType();
static JCEnum enumInstance = null;
JCObject classInstance = null;
static JCType createType() {
try {
String classToCreate = className + ", "
+ (JCOReflector.getUseFullAssemblyName() ? assemblyFullName : assemblyShortName);
if (JCOReflector.getDebug())
JCOReflector.writeLog("Creating %s", classToCreate);
JCType typeCreated = bridge.GetType(classToCreate);
if (JCOReflector.getDebug())
JCOReflector.writeLog("Created: %s",
(typeCreated != null) ? typeCreated.toString() : "Returned null value");
return typeCreated;
} catch (JCException e) {
JCOReflector.writeLog(e);
return null;
}
}
void addReference(String ref) throws Throwable {
try {
bridge.AddReference(ref);
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
/**
* Internal constructor. Use with caution
*/
public Quaternion(java.lang.Object instance) throws Throwable {
super(instance);
if (instance instanceof JCObject) {
classInstance = (JCObject) instance;
} else
throw new Exception("Cannot manage object, it is not a JCObject");
}
public String getJCOAssemblyName() {
return assemblyFullName;
}
public String getJCOClassName() {
return className;
}
public String getJCOObjectName() {
return className + ", " + (JCOReflector.getUseFullAssemblyName() ? assemblyFullName : assemblyShortName);
}
public java.lang.Object getJCOInstance() {
return classInstance;
}
public void setJCOInstance(JCObject instance) {
classInstance = instance;
super.setJCOInstance(classInstance);
}
public JCType getJCOType() {
return classType;
}
/**
* Try to cast the {@link IJCOBridgeReflected} instance into {@link Quaternion}, a cast assert is made to check if types are compatible.
* @param from {@link IJCOBridgeReflected} instance to be casted
* @return {@link Quaternion} instance
* @throws java.lang.Throwable in case of error during cast operation
*/
public static Quaternion cast(IJCOBridgeReflected from) throws Throwable {
NetType.AssertCast(classType, from);
return new Quaternion(from.getJCOInstance());
}
// Constructors section
public Quaternion() throws Throwable {
}
public Quaternion(Single x, Single y, Single z, Single w) throws Throwable {
try {
// add reference to assemblyName.dll file
addReference(JCOReflector.getUseFullAssemblyName() ? assemblyFullName : assemblyShortName);
setJCOInstance((JCObject)classType.NewObject(x == null ? null : x.getJCOInstance(), y == null ? null : y.getJCOInstance(), z == null ? null : z.getJCOInstance(), w == null ? null : w.getJCOInstance()));
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
public Quaternion(Vector3 vectorPart, Single scalarPart) throws Throwable {
try {
// add reference to assemblyName.dll file
addReference(JCOReflector.getUseFullAssemblyName() ? assemblyFullName : assemblyShortName);
setJCOInstance((JCObject)classType.NewObject(vectorPart == null ? null : vectorPart.getJCOInstance(), scalarPart == null ? null : scalarPart.getJCOInstance()));
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
// Methods section
public boolean Equals(Quaternion other) throws Throwable {
if (classInstance == null)
throw new UnsupportedOperationException("classInstance is null.");
try {
return (boolean)classInstance.Invoke("Equals", other == null ? null : other.getJCOInstance());
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
public static Single Dot(Quaternion quaternion1, Quaternion quaternion2) throws Throwable {
if (classType == null)
throw new UnsupportedOperationException("classType is null.");
try {
JCObject objDot = (JCObject)classType.Invoke("Dot", quaternion1 == null ? null : quaternion1.getJCOInstance(), quaternion2 == null ? null : quaternion2.getJCOInstance());
return new Single(objDot);
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
public Single Length() throws Throwable {
if (classInstance == null)
throw new UnsupportedOperationException("classInstance is null.");
try {
JCObject objLength = (JCObject)classInstance.Invoke("Length");
return new Single(objLength);
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
public Single LengthSquared() throws Throwable {
if (classInstance == null)
throw new UnsupportedOperationException("classInstance is null.");
try {
JCObject objLengthSquared = (JCObject)classInstance.Invoke("LengthSquared");
return new Single(objLengthSquared);
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
public static Quaternion Add(Quaternion value1, Quaternion value2) throws Throwable {
if (classType == null)
throw new UnsupportedOperationException("classType is null.");
try {
JCObject objAdd = (JCObject)classType.Invoke("Add", value1 == null ? null : value1.getJCOInstance(), value2 == null ? null : value2.getJCOInstance());
return new Quaternion(objAdd);
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
public static Quaternion Concatenate(Quaternion value1, Quaternion value2) throws Throwable {
if (classType == null)
throw new UnsupportedOperationException("classType is null.");
try {
JCObject objConcatenate = (JCObject)classType.Invoke("Concatenate", value1 == null ? null : value1.getJCOInstance(), value2 == null ? null : value2.getJCOInstance());
return new Quaternion(objConcatenate);
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
public static Quaternion Conjugate(Quaternion value) throws Throwable {
if (classType == null)
throw new UnsupportedOperationException("classType is null.");
try {
JCObject objConjugate = (JCObject)classType.Invoke("Conjugate", value == null ? null : value.getJCOInstance());
return new Quaternion(objConjugate);
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
public static Quaternion CreateFromAxisAngle(Vector3 axis, Single angle) throws Throwable {
if (classType == null)
throw new UnsupportedOperationException("classType is null.");
try {
JCObject objCreateFromAxisAngle = (JCObject)classType.Invoke("CreateFromAxisAngle", axis == null ? null : axis.getJCOInstance(), angle == null ? null : angle.getJCOInstance());
return new Quaternion(objCreateFromAxisAngle);
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
public static Quaternion CreateFromRotationMatrix(Matrix4x4 matrix) throws Throwable {
if (classType == null)
throw new UnsupportedOperationException("classType is null.");
try {
JCObject objCreateFromRotationMatrix = (JCObject)classType.Invoke("CreateFromRotationMatrix", matrix == null ? null : matrix.getJCOInstance());
return new Quaternion(objCreateFromRotationMatrix);
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
public static Quaternion CreateFromYawPitchRoll(Single yaw, Single pitch, Single roll) throws Throwable {
if (classType == null)
throw new UnsupportedOperationException("classType is null.");
try {
JCObject objCreateFromYawPitchRoll = (JCObject)classType.Invoke("CreateFromYawPitchRoll", yaw == null ? null : yaw.getJCOInstance(), pitch == null ? null : pitch.getJCOInstance(), roll == null ? null : roll.getJCOInstance());
return new Quaternion(objCreateFromYawPitchRoll);
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
public static Quaternion Divide(Quaternion value1, Quaternion value2) throws Throwable {
if (classType == null)
throw new UnsupportedOperationException("classType is null.");
try {
JCObject objDivide = (JCObject)classType.Invoke("Divide", value1 == null ? null : value1.getJCOInstance(), value2 == null ? null : value2.getJCOInstance());
return new Quaternion(objDivide);
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
public static Quaternion Inverse(Quaternion value) throws Throwable {
if (classType == null)
throw new UnsupportedOperationException("classType is null.");
try {
JCObject objInverse = (JCObject)classType.Invoke("Inverse", value == null ? null : value.getJCOInstance());
return new Quaternion(objInverse);
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
public static Quaternion Lerp(Quaternion quaternion1, Quaternion quaternion2, Single amount) throws Throwable {
if (classType == null)
throw new UnsupportedOperationException("classType is null.");
try {
JCObject objLerp = (JCObject)classType.Invoke("Lerp", quaternion1 == null ? null : quaternion1.getJCOInstance(), quaternion2 == null ? null : quaternion2.getJCOInstance(), amount == null ? null : amount.getJCOInstance());
return new Quaternion(objLerp);
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
public static Quaternion Multiply(Quaternion value1, Single value2) throws Throwable {
if (classType == null)
throw new UnsupportedOperationException("classType is null.");
try {
JCObject objMultiply = (JCObject)classType.Invoke("Multiply", value1 == null ? null : value1.getJCOInstance(), value2 == null ? null : value2.getJCOInstance());
return new Quaternion(objMultiply);
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
public static Quaternion Multiply(Quaternion value1, Quaternion value2) throws Throwable {
if (classType == null)
throw new UnsupportedOperationException("classType is null.");
try {
JCObject objMultiply = (JCObject)classType.Invoke("Multiply", value1 == null ? null : value1.getJCOInstance(), value2 == null ? null : value2.getJCOInstance());
return new Quaternion(objMultiply);
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
public static Quaternion Negate(Quaternion value) throws Throwable {
if (classType == null)
throw new UnsupportedOperationException("classType is null.");
try {
JCObject objNegate = (JCObject)classType.Invoke("Negate", value == null ? null : value.getJCOInstance());
return new Quaternion(objNegate);
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
public static Quaternion Normalize(Quaternion value) throws Throwable {
if (classType == null)
throw new UnsupportedOperationException("classType is null.");
try {
JCObject objNormalize = (JCObject)classType.Invoke("Normalize", value == null ? null : value.getJCOInstance());
return new Quaternion(objNormalize);
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
public static Quaternion Slerp(Quaternion quaternion1, Quaternion quaternion2, Single amount) throws Throwable {
if (classType == null)
throw new UnsupportedOperationException("classType is null.");
try {
JCObject objSlerp = (JCObject)classType.Invoke("Slerp", quaternion1 == null ? null : quaternion1.getJCOInstance(), quaternion2 == null ? null : quaternion2.getJCOInstance(), amount == null ? null : amount.getJCOInstance());
return new Quaternion(objSlerp);
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
public static Quaternion Subtract(Quaternion value1, Quaternion value2) throws Throwable {
if (classType == null)
throw new UnsupportedOperationException("classType is null.");
try {
JCObject objSubtract = (JCObject)classType.Invoke("Subtract", value1 == null ? null : value1.getJCOInstance(), value2 == null ? null : value2.getJCOInstance());
return new Quaternion(objSubtract);
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
// Properties section
public boolean getIsIdentity() throws Throwable {
if (classInstance == null)
throw new UnsupportedOperationException("classInstance is null.");
try {
return (boolean)classInstance.Get("IsIdentity");
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
public static Quaternion getIdentity() throws Throwable {
if (classType == null)
throw new UnsupportedOperationException("classType is null.");
try {
JCObject val = (JCObject)classType.Get("Identity");
return new Quaternion(val);
} catch (JCNativeException jcne) {
throw translateException(jcne);
}
}
// Instance Events section
}