FT - Access low level mujoco data from anywhere

+ be careful, this is not const!
This commit is contained in:
Jb win 2025-04-30 15:53:13 +07:00
parent 0143d8d7d7
commit a4dcdb561e
2 changed files with 28 additions and 14 deletions

View File

@ -202,6 +202,12 @@ void AMujocoVolumeActor::InitializeMujoco()
}
}
mjData_& AMujocoVolumeActor::GetMujocoData() const
{
check(MujocoData.IsValid());
return *MujocoData.Get();
}
void AMujocoVolumeActor::SetActuatorValue(const FString& ActuatorName, double Value)
{
if (MujocoModel)

View File

@ -62,6 +62,14 @@ class LUCKYMUJOCO_API AMujocoVolumeActor : public AActor
public:
AMujocoVolumeActor();
protected:
virtual void BeginPlay() override;
virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
virtual void PostRegisterAllComponents() override;
virtual void Tick(float DeltaTime) override;
virtual void PostInitializeComponents() override;
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Mujoco | Simulation", meta = (Min = 0, Max = 100, ClampMin = 0, ClampMax = 100))
int32 FrameSkip = 0;
@ -80,6 +88,12 @@ public:
UPROPERTY(BlueprintAssignable, Category = "Mujoco | Events")
FOnMujocoCompileSuccess OnMujocoCompileSuccess;
/**
* @description
* @return mjData_ - Full access to mujoco scene options and data
*/
mjData_& GetMujocoData() const;
// ---------------------------
// ------- POST UPDATE -------
// ---------------------------
@ -94,6 +108,9 @@ public:
void BindPostPhysicDelegate(UserClass* Object, void (UserClass::*Func)(float));
// -------------------------
// ------- ACTUATORS -------
// -------------------------
UFUNCTION(BlueprintCallable, Category = "Mujoco")
void SetActuatorValue(const FString& ActuatorName, double Value);
@ -112,6 +129,9 @@ public:
UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Mujoco")
FVector2D GetActuatorRangeByIndex(int32 ActuatorIndex) const;
// ----------------------
// ------- JOINTS -------
// ----------------------
UFUNCTION(BlueprintCallable, Category = "Mujoco")
void SetJointValue(const FString& JointName, double Value);
@ -123,16 +143,4 @@ public:
UFUNCTION(BlueprintCallable, BlueprintPure, Category = "Mujoco")
double GetJointValueByIndex(int32 JointIndex) const;
virtual void PostRegisterAllComponents() override;
virtual void Tick(float DeltaTime) override;
virtual void PostInitializeComponents() override;
protected:
virtual void BeginPlay() override;
virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
};