try an alternative approach for glove instances upcasting at the lower levels of the api
This commit is contained in:
@@ -184,6 +184,38 @@ TSharedRef<FSGSenseGloveImpl> FSGDeviceImpl::ToSenseGloveImplRef()
|
||||
return SharedThis(SenseGlove);
|
||||
}
|
||||
|
||||
bool FSGDeviceImpl::IsABetaDevice() const
|
||||
{
|
||||
const FSGBetaDeviceImpl::FBetaDevicePtrType BetaDevice{
|
||||
std::dynamic_pointer_cast<FSGBetaDeviceImpl::FBetaDeviceType>(ToSGDevicePtr())
|
||||
};
|
||||
return BetaDevice != nullptr;
|
||||
}
|
||||
|
||||
bool FSGDeviceImpl::IsANova2Glove() const
|
||||
{
|
||||
const FSGNova2GloveImpl::FNova2GlovePtrType Nova2Glove{
|
||||
std::dynamic_pointer_cast<FSGNova2GloveImpl::FNova2GloveType>(ToSGDevicePtr())
|
||||
};
|
||||
return Nova2Glove != nullptr;
|
||||
}
|
||||
|
||||
bool FSGDeviceImpl::IsANovaGlove() const
|
||||
{
|
||||
const FSGNovaGloveImpl::FNovaGlovePtrType NovaGlove{
|
||||
std::dynamic_pointer_cast<FSGNovaGloveImpl::FNovaGloveType>(ToSGDevicePtr())
|
||||
};
|
||||
return NovaGlove != nullptr;
|
||||
}
|
||||
|
||||
bool FSGDeviceImpl::IsASenseGlove() const
|
||||
{
|
||||
const FSGSenseGloveImpl::FSenseGlovePtrType SenseGlove{
|
||||
std::dynamic_pointer_cast<FSGSenseGloveImpl::FSenseGloveType>(ToSGDevicePtr())
|
||||
};
|
||||
return SenseGlove != nullptr;
|
||||
}
|
||||
|
||||
ESGDeviceType FSGDeviceImpl::GetDeviceType() const
|
||||
{
|
||||
return FSGCoreEnumCast::ToESGDeviceType(ToSGDevicePtrChecked()->GetDeviceType());
|
||||
|
||||
@@ -1072,6 +1072,30 @@ void SGCoreImpl_FSGDeviceImpl_ToSenseGloveImplRef(
|
||||
StaticCast<FSGIC_TSharedPtr_FSGDeviceImpl*>(Instance)->Ptr->ToSenseGloveImplRef();
|
||||
}
|
||||
|
||||
bool SGCoreImpl_FSGDeviceImpl_IsABetaDevice(
|
||||
void* Instance)
|
||||
{
|
||||
return StaticCast<FSGIC_TSharedPtr_FSGDeviceImpl*>(Instance)->Ptr->IsABetaDevice();
|
||||
}
|
||||
|
||||
bool SGCoreImpl_FSGDeviceImpl_IsANova2Glove(
|
||||
void* Instance)
|
||||
{
|
||||
return StaticCast<FSGIC_TSharedPtr_FSGDeviceImpl*>(Instance)->Ptr->IsANova2Glove();
|
||||
}
|
||||
|
||||
bool SGCoreImpl_FSGDeviceImpl_IsANovaGlove(
|
||||
void* Instance)
|
||||
{
|
||||
return StaticCast<FSGIC_TSharedPtr_FSGDeviceImpl*>(Instance)->Ptr->IsANovaGlove();
|
||||
}
|
||||
|
||||
bool SGCoreImpl_FSGDeviceImpl_IsASenseGlove(
|
||||
void* Instance)
|
||||
{
|
||||
return StaticCast<FSGIC_TSharedPtr_FSGDeviceImpl*>(Instance)->Ptr->IsASenseGlove();
|
||||
}
|
||||
|
||||
void SGCoreImpl_FSGDeviceImpl_GetDeviceType(
|
||||
void* Instance,
|
||||
void* OutType)
|
||||
|
||||
@@ -166,6 +166,12 @@ public:
|
||||
*/
|
||||
TSharedRef<FSGSenseGloveImpl> ToSenseGloveImplRef();
|
||||
|
||||
public:
|
||||
bool IsABetaDevice() const;
|
||||
bool IsANova2Glove() const;
|
||||
bool IsANovaGlove() const;
|
||||
bool IsASenseGlove() const;
|
||||
|
||||
public:
|
||||
virtual ESGDeviceType GetDeviceType() const;
|
||||
|
||||
|
||||
@@ -553,6 +553,18 @@ SENSEGLOVECOREIMPL_PUBLIC_API void SGCoreImpl_FSGDeviceImpl_ToSenseGloveImplRef(
|
||||
void* Instance,
|
||||
void* OutSharedPtr);
|
||||
|
||||
SENSEGLOVECOREIMPL_PUBLIC_API bool SGCoreImpl_FSGDeviceImpl_IsABetaDevice(
|
||||
void* Instance);
|
||||
|
||||
SENSEGLOVECOREIMPL_PUBLIC_API bool SGCoreImpl_FSGDeviceImpl_IsANova2Glove(
|
||||
void* Instance);
|
||||
|
||||
SENSEGLOVECOREIMPL_PUBLIC_API bool SGCoreImpl_FSGDeviceImpl_IsANovaGlove(
|
||||
void* Instance);
|
||||
|
||||
SENSEGLOVECOREIMPL_PUBLIC_API bool SGCoreImpl_FSGDeviceImpl_IsASenseGlove(
|
||||
void* Instance);
|
||||
|
||||
SENSEGLOVECOREIMPL_PUBLIC_API void SGCoreImpl_FSGDeviceImpl_GetDeviceType(
|
||||
void* Instance,
|
||||
void* OutType);
|
||||
|
||||
Reference in New Issue
Block a user