MESH

MESH

#Overview

name: MESH

This variable is created as a Console Variable (cvar).

It is referenced in 9 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of MESH is primarily for referencing and managing mesh-related data within various subsystems of Unreal Engine 5. It appears to be used in different contexts across multiple modules and plugins, particularly in animation, customization, and editor functionalities.

Based on the callsites, the MESH variable is utilized in the following Unreal Engine subsystems, plugins, or modules:

  1. IKRig Animation Plugin
  2. Mutable Customizable Object Editor Plugin
  3. UnrealEd (Editor)

The value of this variable is not explicitly set in the provided code snippets. It seems to be used more as an identifier or enum value in different contexts rather than a setting with an assignable value.

Other variables that interact with MESH depend on the specific context:

Developers should be aware that:

  1. MESH is used in different contexts across various plugins and modules, so its exact meaning may vary depending on where it’s used.
  2. In some cases (e.g., in UnrealEd), MESH appears to be part of deprecated functionality.

Best practices when using this variable:

  1. Understand the specific context in which MESH is being used, as its purpose may vary across different subsystems.
  2. When working with the IKRig plugin, be aware of how MESH relates to other selection types like ROOT and BONE.
  3. In the Mutable plugin, consider MESH as part of a larger system for managing customizable objects and their properties.
  4. Avoid using MESH in deprecated contexts, such as the one mentioned in the UnrealEd module.
  5. When extending or modifying code that uses MESH, maintain consistency with its current usage within the specific module or plugin.

#References in C++ code

#Callsites

This variable is referenced in the following C++ source code:

#Loc: <Workspace>/Engine/Plugins/Animation/IKRig/Source/IKRigEditor/Private/RetargetEditor/IKRetargetEditorController.cpp:443

Scope (from outer to inner):

file
function     bool FIKRetargetEditorController::GetCameraTargetForSelection

Source code excerpt:

		}
	case ERetargetSelectionType::ROOT:
	case ERetargetSelectionType::MESH:
	case ERetargetSelectionType::NONE:
	default:
		// frame both meshes
		OutTarget = FSphere(0);
		if (const UPrimitiveComponent* SourceComponent = GetSkeletalMeshComponent(ERetargetSourceOrTarget::Source))
		{

#Loc: <Workspace>/Engine/Plugins/Animation/IKRig/Source/IKRigEditor/Private/RetargetEditor/IKRetargetEditorController.cpp:780

Scope (from outer to inner):

file
function     void FIKRetargetEditorController::SetSelectedMesh

Source code excerpt:

	if (SelectedMesh)
	{
		LastSelectedItem = ERetargetSelectionType::MESH;
	}
}

UPrimitiveComponent* FIKRetargetEditorController::GetSelectedMesh() const
{
	return SelectedMesh;

#Loc: <Workspace>/Engine/Plugins/Animation/IKRig/Source/IKRigEditor/Public/RetargetEditor/IKRetargetEditorController.h:45

Scope: file

Source code excerpt:

	BONE,
	CHAIN,
	MESH,
	ROOT,
	NONE
};

struct FBoundIKRig
{

#Loc: <Workspace>/Engine/Plugins/Experimental/Mutable/Source/CustomizableObjectEditor/Private/MuCOE/SMutableGraphViewer.cpp:411

Scope (from outer to inner):

file
function     void SMutableGraphViewer::GetChildrenForInfo

Source code excerpt:

		for (int32 l = 0; l < Private->m_meshes.Num(); ++l)
		{
			AddChildFunc(Private->m_meshes[l].m_pMesh.get(), TEXT("MESH"));
		}

		for (int32 l = 0; l < Private->m_images.Num(); ++l)
		{
			AddChildFunc(Private->m_images[l].m_pImage.get(), FString::Printf(TEXT("IMAGE [%s]"), *Private->m_images[l].m_name));
		}

#Loc: <Workspace>/Engine/Plugins/Experimental/Mutable/Source/CustomizableObjectEditor/Private/MuCOE/SMutableGraphViewer.cpp:434

Scope (from outer to inner):

file
function     void SMutableGraphViewer::GetChildrenForInfo

Source code excerpt:

		mu::NodeSurfaceEdit* SurfaceEdit = StaticCast<mu::NodeSurfaceEdit*>(ParentNode);
		mu::NodeSurfaceEdit::Private* Private = SurfaceEdit->GetPrivate();
		AddChildFunc(Private->m_pMesh.get(), TEXT("MESH"));
		AddChildFunc(Private->m_pMorph.get(), TEXT("MORPH"));
		AddChildFunc(Private->m_pFactor.get(), TEXT("MORPH_FACTOR"));

		for (int32 l = 0; l < Private->m_textures.Num(); ++l)
		{
			AddChildFunc(Private->m_textures[l].m_pExtend.get(), FString::Printf(TEXT("EXTEND [%d]"), l));

#Loc: <Workspace>/Engine/Plugins/Experimental/Mutable/Source/CustomizableObjectEditor/Private/MuCOE/SMutableGraphViewer.cpp:643

Scope: file

Source code excerpt:

		mu::NodeImageProject::Private* Private = ImageProjectVar->GetPrivate();
		AddChildFunc(Private->m_pProjector.get(), FString::Printf(TEXT("PROJECTOR")));
		AddChildFunc(Private->m_pMesh.get(), FString::Printf(TEXT("MESH")));
		AddChildFunc(Private->m_pImage.get(), FString::Printf(TEXT("IMAGE")));
		AddChildFunc(Private->m_pMask.get(), FString::Printf(TEXT("MASK")));
		AddChildFunc(Private->m_pAngleFadeStart.get(), FString::Printf(TEXT("FADE START ANGLE")));
		AddChildFunc(Private->m_pAngleFadeEnd.get(), FString::Printf(TEXT("FADE END ANGLE")));
	}

#Loc: <Workspace>/Engine/Plugins/Experimental/Mutable/Source/CustomizableObjectEditor/Private/MuCOE/SMutableGraphViewer.cpp:676

Scope: file

Source code excerpt:

		mu::NodeMeshFragment* MeshFragmentVar = StaticCast<mu::NodeMeshFragment*>(ParentNode);
		mu::NodeMeshFragment::Private* Private = MeshFragmentVar->GetPrivate();
		AddChildFunc(Private->m_pMesh.get(), FString::Printf(TEXT("MESH")));
	}

	else if (ParentNode->GetType() == mu::NodeColourSampleImage::GetStaticType())
	{
		mu::NodeColourSampleImage* ColorSampleImageVar = StaticCast<mu::NodeColourSampleImage*>(ParentNode);
		mu::NodeColourSampleImage::Private* Private = ColorSampleImageVar->GetPrivate();

#Loc: <Workspace>/Engine/Plugins/Experimental/Mutable/Source/MutableRuntime/Private/MuR/InstancePrivate.h:96

Scope (from outer to inner):

file
namespace    mu
function     MESH

Source code excerpt:

		struct MESH
		{
            MESH(FResourceID InId, FName InName)
			{
				Id = InId;
				Name = InName;
			}

			FResourceID Id;

#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/EditorServer.cpp:434

Scope (from outer to inner):

file
function     bool UEditorEngine::SafeExec

Source code excerpt:

		FMessageDialog::Open( EAppMsgType::Ok, FText::Format(NSLOCTEXT("UnrealEd", "Error_TriedToExecDeprecatedCmd", "Tried to execute deprecated command: {0}"),FText::FromString(FullStr)) );
	}
	else if( FParse::Command(&Str,TEXT("MESH")) )
	{
		FMessageDialog::Open( EAppMsgType::Ok, FText::Format(NSLOCTEXT("UnrealEd", "Error_TriedToExecDeprecatedCmd", "Tried to execute deprecated command: {0}"),FText::FromString(FullStr)) );
	}
	else if( FParse::Command( &Str, TEXT("AUDIO")) )
	{
		FMessageDialog::Open( EAppMsgType::Ok, FText::Format(NSLOCTEXT("UnrealEd", "Error_TriedToExecDeprecatedCmd", "Tried to execute deprecated command: {0}"),FText::FromString(FullStr)) );