try an alternative approach for glove instances upcasting at the lower levels of the api
This commit is contained in:
@@ -309,6 +309,30 @@ TSharedRef<FSGDeviceImpl> USGDevice::ToSGDeviceImpl() const
|
||||
return Pimpl->SGDeviceImpl.ToSharedRef();
|
||||
}
|
||||
|
||||
bool USGDevice::IsABetaDevice() const
|
||||
{
|
||||
FSGIC_TSharedPtr_FSGDeviceImpl InstanceContainer{ToSGDeviceImpl()};
|
||||
return SGCoreImpl_FSGDeviceImpl_IsABetaDevice(&InstanceContainer);
|
||||
}
|
||||
|
||||
bool USGDevice::IsANova2Glove() const
|
||||
{
|
||||
FSGIC_TSharedPtr_FSGDeviceImpl InstanceContainer{ToSGDeviceImpl()};
|
||||
return SGCoreImpl_FSGDeviceImpl_IsANova2Glove(&InstanceContainer);
|
||||
}
|
||||
|
||||
bool USGDevice::IsANovaGlove() const
|
||||
{
|
||||
FSGIC_TSharedPtr_FSGDeviceImpl InstanceContainer{ToSGDeviceImpl()};
|
||||
return SGCoreImpl_FSGDeviceImpl_IsANovaGlove(&InstanceContainer);
|
||||
}
|
||||
|
||||
bool USGDevice::IsASenseGlove() const
|
||||
{
|
||||
FSGIC_TSharedPtr_FSGDeviceImpl InstanceContainer{ToSGDeviceImpl()};
|
||||
return SGCoreImpl_FSGDeviceImpl_IsASenseGlove(&InstanceContainer);
|
||||
}
|
||||
|
||||
ESGDeviceType USGDevice::GetDeviceType() const
|
||||
{
|
||||
FSGIC_TSharedPtr_FSGDeviceImpl InstanceContainer{ToSGDeviceImpl()};
|
||||
|
||||
@@ -205,13 +205,6 @@ TSharedRef<FSGHapticGloveImpl> USGHapticGlove::ToHapticGloveImpl() const
|
||||
return FSGDeviceImplCast::ToHapticGloveImpl(ToSGDeviceImpl());
|
||||
}
|
||||
|
||||
bool USGHapticGlove::IsANova2Glove() const
|
||||
{
|
||||
const TSharedPtr<FSGNova2GloveImpl> Nova2Glove =
|
||||
StaticCastSharedPtr<FSGNova2GloveImpl>(ToHapticGloveImpl().ToSharedPtr());
|
||||
return Nova2Glove.IsValid();
|
||||
}
|
||||
|
||||
USGNova2Glove* USGHapticGlove::AsNova2Glove(UObject* Outer) const
|
||||
{
|
||||
USGNova2Glove* Instance = NewObject<USGNova2Glove>(Outer);
|
||||
@@ -219,13 +212,6 @@ USGNova2Glove* USGHapticGlove::AsNova2Glove(UObject* Outer) const
|
||||
return Instance;
|
||||
}
|
||||
|
||||
bool USGHapticGlove::IsANovaGlove() const
|
||||
{
|
||||
const TSharedPtr<FSGNovaGloveImpl> NovaGlove =
|
||||
StaticCastSharedPtr<FSGNovaGloveImpl>(ToHapticGloveImpl().ToSharedPtr());
|
||||
return NovaGlove.IsValid();
|
||||
}
|
||||
|
||||
USGNovaGlove* USGHapticGlove::AsNovaGlove(UObject* Outer) const
|
||||
{
|
||||
USGNovaGlove* Instance = NewObject<USGNovaGlove>(Outer);
|
||||
@@ -233,13 +219,6 @@ USGNovaGlove* USGHapticGlove::AsNovaGlove(UObject* Outer) const
|
||||
return Instance;
|
||||
}
|
||||
|
||||
bool USGHapticGlove::IsASenseGlove() const
|
||||
{
|
||||
const TSharedPtr<FSGSenseGloveImpl> SenseGlove =
|
||||
StaticCastSharedPtr<FSGSenseGloveImpl>(ToHapticGloveImpl().ToSharedPtr());
|
||||
return SenseGlove.IsValid();
|
||||
}
|
||||
|
||||
USGSenseGlove* USGHapticGlove::AsSenseGlove(UObject* Outer) const
|
||||
{
|
||||
USGSenseGlove* Instance = NewObject<USGSenseGlove>(Outer);
|
||||
|
||||
@@ -252,6 +252,12 @@ public:
|
||||
*/
|
||||
TSharedRef<FSGDeviceImpl> ToSGDeviceImpl() const;
|
||||
|
||||
public:
|
||||
bool IsABetaDevice() const;
|
||||
bool IsANova2Glove() const;
|
||||
bool IsANovaGlove() const;
|
||||
bool IsASenseGlove() const;
|
||||
|
||||
public:
|
||||
/**
|
||||
* Check which DeviceType this class belongs to.
|
||||
|
||||
@@ -190,13 +190,10 @@ public:
|
||||
TSharedRef<FSGHapticGloveImpl> ToHapticGloveImpl() const;
|
||||
|
||||
public:
|
||||
bool IsANova2Glove() const;
|
||||
USGNova2Glove* AsNova2Glove(UObject* Outer) const;
|
||||
|
||||
bool IsANovaGlove() const;
|
||||
USGNovaGlove* AsNovaGlove(UObject* Outer) const;
|
||||
|
||||
bool IsASenseGlove() const;
|
||||
USGSenseGlove* AsSenseGlove(UObject* Outer) const;
|
||||
|
||||
public:
|
||||
|
||||
@@ -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