Open 3D Engine AzCore API Reference 25.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AZ::EditContext Class Reference

#include <EditContext.h>

Classes

class  ClassBuilder
 
class  EnumBuilder
 
struct  EnumerateInstanceCallContext
 Analog to SerializeContext::EnumerateInstanceCallContext for enumerating an EditContext. More...
 

Public Member Functions

 AZ_CLASS_ALLOCATOR (EditContext, SystemAllocator)
 
 EditContext (SerializeContext &serializeContext)
 
template<class T >
ClassBuilder Class (const char *displayName, const char *description)
 
template<class E >
EnumBuilder Enum (const char *displayName, const char *description)
 
void RemoveClassData (SerializeContext::ClassData *classData)
 
const Edit::ElementDataGetEnumElementData (const AZ::Uuid &enumId) const
 
void EnumerateAll (const Edit::TypeVisitor &typeVisitor, Edit::VisitFlags=Edit::VisitFlags::All) const
 
SerializeContextGetSerializeContext ()
 Returns the SerializeContext which is the parent of this EditContext.
 
const SerializeContextGetSerializeContext () const
 
bool EnumerateInstanceConst (EnumerateInstanceCallContext *callContext, const void *ptr, const Uuid &classId, const SerializeContext::ClassData *classData, const SerializeContext::ClassElement *classElement) const
 
bool EnumerateInstance (EnumerateInstanceCallContext *callContext, void *ptr, const Uuid &classId, const SerializeContext::ClassData *classData, const SerializeContext::ClassElement *classElement) const
 

Detailed Description

EditContext is bound to serialize context. It uses it for data manipulation. It's role is to be an abstract way to generate and describe how a class should be edited. It doesn't rely on any edit/editor/etc. code and it should not as it's ABSTRACT. Please refer to your editor/edit tools to check what are the "id" for the uiElements and their respective properties "id" and values.

Constructor & Destructor Documentation

◆ EditContext()

AZ::EditContext::EditContext ( SerializeContext serializeContext)

EditContext uses serialize context to interact with data, so serialize context is required.

Member Function Documentation

◆ EnumerateAll()

void AZ::EditContext::EnumerateAll ( const Edit::TypeVisitor typeVisitor,
Edit::VisitFlags  = Edit::VisitFlags::All 
) const

Enumerates all classes and enums that have been reflected to the EditContext based on the VisitFlags The TypeVisitor instance contains both a dedicated class Visitor and enum Visitor which is invoked for each reflected class and enum class as long as the visitors return true NOTE: All Classes are visited first before any Enums are visited

◆ EnumerateInstanceConst()

bool AZ::EditContext::EnumerateInstanceConst ( EnumerateInstanceCallContext callContext,
const void ptr,
const Uuid classId,
const SerializeContext::ClassData *  classData,
const SerializeContext::ClassElement *  classElement 
) const

Call this function to traverse an instance's hierarchy by providing address and classId, if you have the typed pointer you can just call EnumerateObject

Parameters
ptrpointer to the object for traversal
classIdclassId of object for traversal
beginElemCBcallback when we begin/open a child element
endElemCBcallback when we end/close a child element
accessFlagsEnumerationAccessFlags
classDatapointer to the class data for the traversed object to avoid calling FindClassData(classId) (can be null)
classElementpointer to class element (null for root elements)
errorHandleroptional pointer to the error handler.

The documentation for this class was generated from the following file: