Jb win 6e35f6bcff FIX - Typo
2025-04-30 13:24:03 +00:00

526 lines
25 KiB
C++

#pragma once
#include "CoreMinimal.h"
#include "MujocoOptions.generated.h"
UENUM(BlueprintType)
enum class EMujocoAngle : uint8
{
Degree UMETA(DisplayName = "Degree"),
Radian UMETA(DisplayName = "Radian")
};
UENUM(BlueprintType)
enum class EMujocoIntegrator : uint8
{
Implicit UMETA(DisplayName = "Implicit"),
ImplicitFast UMETA(DisplayName = "ImplicitFast"),
Euler UMETA(DisplayName = "Euler"),
RK4 UMETA(DisplayName = "RK4"),
};
UENUM(BlueprintType)
enum class EMujocoSolver : uint8
{
PGS UMETA(DisplayName = "PGS"),
CG UMETA(DisplayName = "CG"),
Newton UMETA(DisplayName = "Newton")
};
UENUM(BlueprintType)
enum class EMujocoConeType : uint8
{
Pyramidal UMETA(DisplayName = "Pyramidal"),
Elliptic UMETA(DisplayName = "Elliptic")
};
UENUM(BlueprintType)
enum class EMujocoJacobian : uint8
{
Dense UMETA(DisplayName = "Dense"),
Sparse UMETA(DisplayName = "Sparse"),
Auto UMETA(DisplayName = "Auto")
};
UENUM(BlueprintType)
enum class EMujocoFlagState : uint8
{
Disable UMETA(DisplayName = "Disable"),
Enable UMETA(DisplayName = "Enable")
};
USTRUCT(BlueprintType)
struct LUCKYMUJOCO_API FMujocoSimulationFlags
{
GENERATED_BODY()
/** Constraint solver computations */
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (InlineEditConditionToggle))
bool bOverrideConstraint = false;
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (Attribute = "constraint", EditCondition = "bOverrideConstraint"))
EMujocoFlagState Constraint = EMujocoFlagState::Enable;
/** Equality constraints */
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (InlineEditConditionToggle))
bool bOverrideEquality = false;
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (Attribute = "equality", EditCondition = "bOverrideEquality"))
EMujocoFlagState Equality = EMujocoFlagState::Enable;
/** Friction loss constraints */
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (InlineEditConditionToggle))
bool bOverrideFrictionLoss = false;
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (Attribute = "frictionloss", EditCondition = "bOverrideFrictionLoss"))
EMujocoFlagState FrictionLoss = EMujocoFlagState::Enable;
/** Joint and tendon limit constraints */
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (InlineEditConditionToggle))
bool bOverrideLimit = false;
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (Attribute = "limit", EditCondition = "bOverrideLimit"))
EMujocoFlagState Limit = EMujocoFlagState::Enable;
/** Contact constraints and collision detection */
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (InlineEditConditionToggle))
bool bOverrideContact = false;
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (Attribute = "contact", EditCondition = "bOverrideContact"))
EMujocoFlagState Contact = EMujocoFlagState::Enable;
/** Passive forces (spring-dampers, fluid, custom forces) */
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (InlineEditConditionToggle))
bool bOverridePassive = false;
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (Attribute = "passive", EditCondition = "bOverridePassive"))
EMujocoFlagState Passive = EMujocoFlagState::Enable;
/** Gravity effects */
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (InlineEditConditionToggle))
bool bOverrideGravity = false;
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (Attribute = "gravity", EditCondition = "bOverrideGravity"))
EMujocoFlagState Gravity = EMujocoFlagState::Enable;
/** Actuator forces and dynamics */
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (InlineEditConditionToggle))
bool bOverrideActuation = false;
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (Attribute = "actuation", EditCondition = "bOverrideActuation"))
EMujocoFlagState Actuation = EMujocoFlagState::Enable;
/** Safety mechanism for small solref[0] values */
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (InlineEditConditionToggle))
bool bOverrideRefSafe = false;
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (Attribute = "refsafe", EditCondition = "bOverrideRefSafe"))
EMujocoFlagState RefSafe = EMujocoFlagState::Enable;
/** Sensor computations */
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (InlineEditConditionToggle))
bool bOverrideSensor = false;
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (Attribute = "sensor", EditCondition = "bOverrideSensor"))
EMujocoFlagState Sensor = EMujocoFlagState::Enable;
/** Computation of kinetic and potential energy */
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (InlineEditConditionToggle))
bool bOverrideEnergy = false;
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (Attribute = "energy", EditCondition = "bOverrideEnergy"))
EMujocoFlagState Energy = EMujocoFlagState::Disable;
/** Forward-inverse dynamics comparison */
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (InlineEditConditionToggle))
bool bOverrideFwdInv = false;
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (Attribute = "fwdinv", EditCondition = "bOverrideFwdInv"))
EMujocoFlagState FwdInv = EMujocoFlagState::Disable;
/** Multiple-contact detection (experimental) */
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (InlineEditConditionToggle))
bool bOverrideMultiCCD = false;
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (Attribute = "multiccd", EditCondition = "bOverrideMultiCCD"))
EMujocoFlagState MultiCCD = EMujocoFlagState::Disable;
/** Constraint island discovery */
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (InlineEditConditionToggle))
bool bOverrideIsland = false;
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (Attribute = "island", EditCondition = "bOverrideIsland"))
EMujocoFlagState Island = EMujocoFlagState::Disable;
/** Native convex collision detection */
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (InlineEditConditionToggle))
bool bOverrideNativeCCD = false;
UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "Flags", meta = (Attribute = "nativeccd", EditCondition = "bOverrideNativeCCD"))
EMujocoFlagState NativeCCD = EMujocoFlagState::Disable;
};
USTRUCT(BlueprintType)
struct LUCKYMUJOCO_API FMujocoCompileOptions
{
GENERATED_BODY()
/** Override AutoLimits setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (InlineEditConditionToggle))
bool bOverrideAutoLimits = false;
/** Automatically infer limits based on range attributes. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (Attribute = "autolimits", EditCondition = "bOverrideAutoLimits"))
bool AutoLimits = true;
/** Override BoundMass setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (InlineEditConditionToggle))
bool bOverrideBoundMass = false;
/** Lower bound on the mass of each body except the world body. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (Attribute = "boundmass", EditCondition = "bOverrideBoundMass"))
float BoundMass = 0.0f;
/** Override BoundInertia setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (InlineEditConditionToggle))
bool bOverrideBoundInertia = false;
/** Lower bound on diagonal inertia components except for the world body. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (Attribute = "boundinertia", EditCondition = "bOverrideBoundInertia"))
float BoundInertia = 0.0f;
/** Override SetTotalMass setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (InlineEditConditionToggle))
bool bOverrideSetTotalMass = false;
/** Scale the model's total mass to the specified value (-1 disables). */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (Attribute = "settotalmass", EditCondition = "bOverrideSetTotalMass"))
float SetTotalMass = -1.0f;
/** Override BalanceInertia setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (InlineEditConditionToggle))
bool bOverrideBalanceInertia = false;
/** Automatically corrects invalid diagonal inertia matrices. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (Attribute = "balanceinertia", EditCondition = "bOverrideBalanceInertia"))
bool BalanceInertia = false;
/** Override StripPath setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (InlineEditConditionToggle))
bool bOverrideStripPath = false;
/** Removes path information from file names. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (Attribute = "strippath", EditCondition = "bOverrideStripPath"))
bool StripPath = false;
/** Specifies whether angles are expressed in degrees or radians. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (Attribute = "angle"))
EMujocoAngle AngleUnits = EMujocoAngle::Radian;
/** Override FitAABB setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (InlineEditConditionToggle))
bool bOverrideFitAABB = false;
/** Fit mesh to an axis-aligned bounding box (AABB) when replacing with primitives. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (Attribute = "fitaabb", EditCondition = "bOverrideFitAABB"))
bool FitAABB = false;
/** Override Euler sequence setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (InlineEditConditionToggle))
bool bOverrideEulerSequence = false;
/** Specifies the Euler rotation sequence (e.g., "xyz", "XYZ"). */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (Attribute = "eulerseq", EditCondition = "bOverrideEulerSequence"))
FString EulerSequence = TEXT("xyz");
/** Override Mesh Directory setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (InlineEditConditionToggle))
bool bOverrideMeshDir = false;
/** Directory where the compiler looks for mesh and height field files. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (Attribute = "meshdir", EditCondition = "bOverrideMeshDir"))
FString MeshDir = "meshes";
/** Override Texture Directory setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (InlineEditConditionToggle))
bool bOverrideTextureDir = false;
/** Directory where the compiler looks for texture files. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (Attribute = "texturedir", EditCondition = "bOverrideTextureDir"))
FString TextureDir = "textures";
/** Sets both MeshDir and TextureDir. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (Attribute = "assetdir"))
FString AssetDir = "assets";
/** Override DiscardVisual setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (InlineEditConditionToggle))
bool bOverrideDiscardVisual = false;
/** Discard purely visual elements when compiling the model. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (Attribute = "discardvisual", EditCondition = "bOverrideDiscardVisual"))
bool DiscardVisual = false;
/** Override UseThread setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (InlineEditConditionToggle))
bool bOverrideUseThread = false;
/** Enable multi-threaded compilation. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (Attribute = "usethread", EditCondition = "bOverrideUseThread"))
bool UseThread = true;
/** Override FuseStatic setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (InlineEditConditionToggle))
bool bOverrideFuseStatic = false;
/** Fuse static bodies with their parents to optimize simulation. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (Attribute = "fusestatic", EditCondition = "bOverrideFuseStatic"))
bool FuseStatic = false;
/** Override InertiaFromGeom setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (InlineEditConditionToggle))
bool bOverrideInertiaFromGeom = false;
/** Controls automatic inference of body masses and inertias from geoms. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (Attribute = "inertiafromgeom", EditCondition = "bOverrideInertiaFromGeom"))
bool InertiaFromGeom = true;
/** Override AlignFree setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (InlineEditConditionToggle))
bool bOverrideAlignFree = false;
/** Aligns free joint frames with the inertial frame. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (Attribute = "alignfree", EditCondition = "bOverrideAlignFree"))
bool AlignFree = false;
/** Override InertiaGroupRange setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (InlineEditConditionToggle))
bool bOverrideInertiaGroupRange = false;
/** Range of geom groups used to infer body masses and inertias. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Compiler", meta = (Attribute = "inertiagrouprange", EditCondition = "bOverrideInertiaGroupRange"))
FIntPoint InertiaGroupRange = FIntPoint(0, 5);
};
USTRUCT(BlueprintType)
struct LUCKYMUJOCO_API FMujocoOptions
{
GENERATED_BODY()
/** Override TimeStep setting. When enabled, the default value (0.001) is applied. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideTimeStep = false;
/** Simulation time step in seconds. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "timestep", EditCondition = "bOverrideTimeStep", ClampMin = 0.0001, ClampMax = 0.01, UIMin = 0.0001, UIMax = 0.01))
float TimeStep = 0.001f; // Default to 1ms
/** Override API Rate setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideApiRate = false;
/** API update rate in Hz. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "apirate", EditCondition = "bOverrideApiRate"))
float ApiRate = 100.0f;
/** Override ImpRatio setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideImpRatio = false;
/** Ratio of frictional-to-normal constraint impedance. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "impratio", EditCondition = "bOverrideImpRatio"))
float ImpRatio = 1.0f;
/** Override Gravity setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideGravity = false;
/** Gravitational acceleration vector. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "gravity", EditCondition = "bOverrideGravity"))
FVector Gravity = FVector(0.0f, 0.0f, -9.81f);
/** Override Wind setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideWind = false;
/** Velocity vector of the surrounding medium, simulating wind effects. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "wind", EditCondition = "bOverrideWind"))
FVector Wind = FVector(0.0f, 0.0f, 0.0f);
/** Override Magnetic setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideMagnetic = false;
/** Global magnetic flux vector. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "magnetic", EditCondition = "bOverrideMagnetic"))
FVector Magnetic = FVector(0.0f, -0.5f, 0.0f);
/** Override Density setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideDensity = false;
/** Density of the medium, affecting lift and drag forces. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "density", EditCondition = "bOverrideDensity"))
float Density = 0.0f;
/** Override Viscosity setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideViscosity = false;
/** Viscosity of the medium, affecting viscous forces. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "viscosity", EditCondition = "bOverrideViscosity"))
float Viscosity = 0.0f;
/** Override Contact Margin setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideMarginOverride = false;
/** Contact margin override when enabled. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "o_margin", EditCondition = "bOverrideMarginOverride"))
float MarginOverride = 0.0f;
/** Override Integrator setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideIntegrator = false;
/** Constraint solver integration method. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "integrator", EditCondition = "bOverrideIntegrator"))
EMujocoIntegrator Integrator = EMujocoIntegrator::Euler;
/** Override ConeType setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideConeType = false;
/** Contact friction cone type. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "cone", EditCondition = "bOverrideConeType"))
EMujocoConeType ConeType = EMujocoConeType::Pyramidal;
/** Override JacobianType setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideJacobianType = false;
/** Constraint Jacobian type. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "jacobian", EditCondition = "bOverrideJacobianType"))
EMujocoJacobian JacobianType = EMujocoJacobian::Auto;
/** Override Solver setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideSolver = false;
/** Solver algorithm for constraint resolution. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "solver", EditCondition = "bOverrideSolver"))
EMujocoSolver Solver = EMujocoSolver::Newton;
/** Override MaxIterations setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideMaxIterations = false;
/** Maximum number of solver iterations. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "iterations", EditCondition = "bOverrideMaxIterations"))
int32 MaxIterations = 100;
/** Override SolverTolerance setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideSolverTolerance = false;
/** Solver termination tolerance. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "tolerance", EditCondition = "bOverrideSolverTolerance"))
float SolverTolerance = 1e-8f;
/** Override LineSearchIterations setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideLineSearchIterations = false;
/** Maximum number of linesearch iterations performed by CG/Newton constraint solvers. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "ls_iterations", EditCondition = "bOverrideLineSearchIterations"))
int32 LineSearchIterations = 50;
/** Override LineSearchTolerance setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideLineSearchTolerance = false;
/** Tolerance threshold used for early termination of the linesearch algorithm. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "ls_tolerance", EditCondition = "bOverrideLineSearchTolerance"))
float LineSearchTolerance = 0.01f;
/** Override NoSlipIterations setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideNoSlipIterations = false;
/** Maximum number of iterations of the Noslip solver. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "noslip_iterations", EditCondition = "bOverrideNoSlipIterations"))
int32 NoSlipIterations = 0;
/** Override NoSlipTolerance setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideNoSlipTolerance = false;
/** Tolerance threshold used for early termination of the Noslip solver. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "noslip_tolerance", EditCondition = "bOverrideNoSlipTolerance"))
float NoSlipTolerance = 1e-6f;
/** Override CCDIterations setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideCCDIterations = false;
/** Maximum number of iterations of the algorithm used for convex collisions. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "ccd_iterations", EditCondition = "bOverrideCCDIterations"))
int32 CCDIterations = 50;
/** Override CCDTolerance setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideCCDTolerance = false;
/** Tolerance threshold used for early termination of the convex collision algorithm. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "ccd_tolerance", EditCondition = "bOverrideCCDTolerance"))
float CCDTolerance = 1e-6f;
/** Override SDFIterations setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideSDFIterations = false;
/** Number of iterations used for Signed Distance Field collisions (per initial point). */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "sdf_iterations", EditCondition = "bOverrideSDFIterations"))
int32 SDFIterations = 10;
/** Override SDFInitPoints setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideSDFInitPoints = false;
/** Number of starting points used for finding contacts with Signed Distance Field collisions. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "sdf_initpoints", EditCondition = "bOverrideSDFInitPoints"))
int32 SDFInitPoints = 40;
/** Override ActuatorGroupDisable setting. */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (InlineEditConditionToggle))
bool bOverrideActuatorGroupDisable = false;
/** Actuator groups to disable (bitfield representation). */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco", meta = (Attribute = "actuatorgroupdisable", EditCondition = "bOverrideActuatorGroupDisable"))
int32 ActuatorGroupDisable = 0;
};
UCLASS(BlueprintType, EditInlineNew, DefaultToInstanced, config = Game)
class LUCKYMUJOCO_API UMujocoExportOptions : public UObject
{
GENERATED_BODY()
public:
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Mujoco")
FString ModelName;
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco")
bool bAddGroundPlane = false;
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco")
bool bAddSkyBox = false;
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco")
FMujocoCompileOptions Compiler;
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco")
FMujocoOptions Options;
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "Mujoco")
FMujocoSimulationFlags SimulationFlags;
};