Files
UnrealEngineUWP/Engine/Source/Runtime/MRMesh/Public/BaseMeshReconstructorModule.h

63 lines
1.6 KiB
C
Raw Normal View History

// Copyright Epic Games, Inc. All Rights Reserved.
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3463220) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3446885 on 2017/05/18 by Chad.Garyet adding physx build for dev-vr Change 3447146 on 2017/05/18 by Nick.Atamas Allow Android to use PhysX cooking. Change 3447251 on 2017/05/18 by Keli.Hlodversson Issue a warning on SteamVR Stereo Layers implementation when the NoAlpha flag is set or when using unsupported layer shapes. #jira UEVR-778 Change 3448796 on 2017/05/19 by Keli.Hlodversson Change all StereoLayers implementations to render FaceLocked layers on top regardless of priority value (matching DefaultStereoLayers implementation) unless vr.StereoLayers.MixLayerPriorities is true. #jira UEVR-779 #jira UEVR-780 Change 3452438 on 2017/05/22 by Ryan.Vance Recompiled the Mac hlslcc libraries to expose external texture support. Change 3457279 on 2017/05/24 by Keli.Hlodversson Move comments on IStereiLayer struct and enum members, so the reference doc extraction shows the comments in the right place. #jira UEVR-781 Change 3457578 on 2017/05/24 by Nick.Atamas WIP Mixed Reality Mesh (MRMesh) and DummyMeshReconstruction driver. Helps support the Tango use case. Change 3458004 on 2017/05/24 by Nick.Atamas Missing forward reclaration, hopefully fixes CIS. Change 3458120 on 2017/05/24 by Jeff.Fisher MirrorMode SingleEyeCroppedToFit (aka 5) for SteamVR. -Implements that mirror mode for SteamVR, also makes unsupported modes default to that one. This is the mode most useful for shipping. #review-3458083 Change 3459785 on 2017/05/25 by Nick.Atamas CIS FIX? MRMeshProxy needs a forward declaration beyond the "friend class" one. Change 3459976 on 2017/05/25 by Nick.Atamas Fix for UE-45401: MRMesh and MRMeshComponent errors preventing launch on/package Preflight got far enough that I have reasonable confidence in this passing. Change 3460141 on 2017/05/25 by Nick.Atamas Fixed race condition. Change 3460188 on 2017/05/25 by Nick.Atamas Fix for UE-45423: Launch-on fail with "Error: linker command failed"? Change 3461798 on 2017/05/26 by Mike.Beach Fixing shadowed variable name warning (CIS). Change 3462462 on 2017/05/26 by Mike.Beach CIS fix - wrapping MRMeshModule load in preprocessor block to match header (else, undefined type error is reported for server builds). Change 3462658 on 2017/05/26 by Michael.Trepka Recompiled Mac HLSLCC with Xcode 8.2.1 to work around a bug in newer Clang's optimization that makes resulting HLSLCC fail to compile some shaders. Also, updated the UUID in MetalCommon.usf to force Metal shaders to recompile with the updated library. #jira UE-45435 [CL 3463797 by Mike Beach in Main branch]
2017-05-27 22:26:57 -04:00
#pragma once
#include "CoreMinimal.h"
#include "Modules/ModuleInterface.h"
#include "Features/IModularFeatures.h"
#include "Features/IModularFeature.h"
class IMRMesh;
class FBaseMeshReconstructorModule : public IModuleInterface, public IModularFeature
{
public:
//
// MODULAR FEATURE SUPPORT
//
/**
* Part of the pattern for supporting modular features.
*
* @return the name of the feature.
*/
static FName GetModularFeatureName()
{
static const FName ModularFeatureName = FName(TEXT("MeshReconstructor"));
return ModularFeatureName;
}
/**
* Singleton-like access to a MeshReconstructorModule.
*
* @return Returns reference to the highest priority MeshReconstructorModule module
*/
static inline FBaseMeshReconstructorModule& Get()
{
//@todo implement priority for choosing the most appropriate implementation
TArray<FBaseMeshReconstructorModule*> MeshReconstructors = IModularFeatures::Get().GetModularFeatureImplementations<FBaseMeshReconstructorModule>(GetModularFeatureName());
check(MeshReconstructors.Num() > 0);
return *MeshReconstructors[0];
}
/**
* Check to see that there is a MeshReconstructor module available.
*
* @return True if there exists a MeshReconstructor module registered.
*/
static inline bool IsAvailable()
{
return IModularFeatures::Get().IsModularFeatureAvailable(GetModularFeatureName());
}
/**
* Register module as a MeshReconstructor on startup.
*/
virtual void StartupModule() override
{
IModularFeatures::Get().RegisterModularFeature(GetModularFeatureName(), this);
}
};