// Copyright Epic Games, Inc. All Rights Reserved. #include "RigInstance.h" #include "FMemoryResource.h" #include "RigLogic.h" #include "riglogic/RigLogic.h" void FRigInstance::FRigInstanceDeleter::operator()(rl4::RigInstance* Pointer) { rl4::RigInstance::destroy(Pointer); } FRigInstance::FRigInstance(FRigLogic* RigLogic) : MemoryResource{FMemoryResource::SharedInstance()}, RigInstance{rl4::RigInstance::create(RigLogic->Unwrap(), MemoryResource.Get())} { } FRigInstance::~FRigInstance() = default; uint16 FRigInstance::GetGUIControlCount() const { return RigInstance->getGUIControlCount(); } float FRigInstance::GetGUIControl(uint16 Index) const { return RigInstance->getGUIControl(Index); } void FRigInstance::SetGUIControl(uint16 Index, float Value) { RigInstance->setGUIControl(Index, Value); } TArrayView FRigInstance::GetGUIControlValues() const { rl4::ConstArrayView Values = RigInstance->getGUIControlValues(); return TArrayView{Values.data(), static_cast(Values.size())}; } void FRigInstance::SetGUIControlValues(const float* Values) { RigInstance->setGUIControlValues(Values); } uint16 FRigInstance::GetRawControlCount() const { return RigInstance->getRawControlCount(); } float FRigInstance::GetRawControl(uint16 Index) const { return RigInstance->getRawControl(Index); } void FRigInstance::SetRawControl(uint16 Index, float Value) { RigInstance->setRawControl(Index, Value); } TArrayView FRigInstance::GetRawControlValues() const { rl4::ConstArrayView Values = RigInstance->getRawControlValues(); return TArrayView{Values.data(), static_cast(Values.size())}; } void FRigInstance::SetRawControlValues(const float* Values) { RigInstance->setRawControlValues(Values); } uint16 FRigInstance::GetPSDControlCount() const { return RigInstance->getPSDControlCount(); } float FRigInstance::GetPSDControl(uint16 Index) const { return RigInstance->getPSDControl(Index); } TArrayView FRigInstance::GetPSDControlValues() const { rl4::ConstArrayView Values = RigInstance->getPSDControlValues(); return TArrayView{Values.data(), static_cast(Values.size())}; } uint16 FRigInstance::GetMLControlCount() const { return RigInstance->getMLControlCount(); } float FRigInstance::GetMLControl(uint16 Index) const { return RigInstance->getMLControl(Index); } TArrayView FRigInstance::GetMLControlValues() const { rl4::ConstArrayView Values = RigInstance->getMLControlValues(); return TArrayView{Values.data(), static_cast(Values.size())}; } uint16 FRigInstance::GetNeuralNetworkCount() const { return RigInstance->getNeuralNetworkCount(); } float FRigInstance::GetNeuralNetworkMask(uint16 NeuralNetIndex) const { return RigInstance->getNeuralNetworkMask(NeuralNetIndex); } void FRigInstance::SetNeuralNetworkMask(uint16 NeuralNetIndex, float Value) { RigInstance->setNeuralNetworkMask(NeuralNetIndex, Value); } uint16 FRigInstance::GetRBFControlCount() const { return RigInstance->getRBFControlCount(); } float FRigInstance::GetRBFControl(uint16 Index) const { return RigInstance->getRBFControl(Index); } TArrayView FRigInstance::GetRBFControlValues() const { rl4::ConstArrayView Values = RigInstance->getRBFControlValues(); return TArrayView{Values.data(), static_cast(Values.size())}; } TArrayView FRigInstance::GetJointOutputs() const { rl4::ConstArrayView Outputs = RigInstance->getJointOutputs(); return TArrayView{Outputs.data(), static_cast(Outputs.size())}; } TArrayView FRigInstance::GetBlendShapeOutputs() const { rl4::ConstArrayView Outputs = RigInstance->getBlendShapeOutputs(); return TArrayView{Outputs.data(), static_cast(Outputs.size())}; } TArrayView FRigInstance::GetAnimatedMapOutputs() const { rl4::ConstArrayView Outputs = RigInstance->getAnimatedMapOutputs(); return TArrayView{Outputs.data(), static_cast(Outputs.size())}; } uint16 FRigInstance::GetLOD() const { return RigInstance->getLOD(); } void FRigInstance::SetLOD(uint16 LOD) { RigInstance->setLOD(LOD); } rl4::RigInstance* FRigInstance::Unwrap() const { return RigInstance.Get(); }