C++ API Reference
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 12345678]
 CAccessorClass used to read and write metadata from/to an existing file
 CAccessorFactoryBaseBase class for Accessor factories
 CMPxViewportComputeItem::ActionsA bitmask storing a set of actions
 CAssociationsClass handling associations between internal and external data
 CAssociationsIteratorClass handling iteration over Channels in an Associations object
 CAssociationsSerializerClass handling the definition of the format for serialization of adsk::Data::Associations
 CAttachHelper class to manage attachment of metadata to other class objects
 CMFrameContext::BackgroundParamsBackground parameters
 CChannelClass handling a named association of a data array with other data
 CChannelIteratorClass handling iteration over Streams in a Channel object
 CChannelSerializerClass handling the definition of the format for serialization of data Channels
 CCheckpointedClass implementing ability to keep track of when objects are changed
 CControlBlockHolds a pointer to a managed object and the number of references
 CCountClass implementing debug object counting operation
 CCRTP_Debug< Derived, RequestType >This template defines virtual methods for calling the statically defined Debug methods within a hierarchy
 CCRTP_Debug< IndexPair, adsk::Debug::Footprint >
 CCRTP_Debug< IndexPair, adsk::Debug::Print >
 CCRTP_Debug< IndexString, adsk::Debug::Footprint >
 CCRTP_Debug< IndexString, adsk::Debug::Print >
 CDefaultDeleter< U >Functor which can safely delete objects of type U
 CMFrameContext::DOFParamsDepth-of-field parameters
 CMFrameContext::EnvironmentParamsStruct for environment map parameters
 CFootprintClass implementing the gathering of data footprint information
 CHandleClass handling access to specific data members of a structured type
 CMFrameContext::HwFogParamsStruct for hardware fog parameters
 CIndexLightweight class handling index values
 CIndexType::IndexRegistrationHelper class to automatically register new index types
 CMPxRenderer::JobParamsParameters for starting a new job
 CM3dViewA 3-D view
 CMAngleManipulate Angular Data
 CMAnimControlControl over animation playback and values
 CMAnimCurveChangeAnim Curve Change Cache
 CMAnimCurveClipboardControl over the animation clipboard
 CMAnimCurveClipboardItemWrapper for a clipboard item
 CMAnimCurveClipboardItemArrayArray of MAnimCurveClipboardItem data type
 CMAnimUtilStatic class providing common animation helper methods
 CMArgListCreate and retrieve argument lists
 CMArgParserCommand argument list parser
 CMArrayDataBuilderArray builder for arrays in data blocks
 CMArrayDataHandleData block handle for array data
 CMaterialInputDataPhong shading parameters for an MPxMaterialInformation instance
 CMAtomicMethods for atomic operations
 CMAttributeIndexThe index information for an attribute specification
 CMAttributeParameterMappingClass for defining relationship between Maya attributes and fragment parameters
 CMAttributeParameterMappingListA list of MAttributeParameterMapping objects
 CMAttributePatternThe pattern of an attribute tree that can be applied to nodes or node classes
 CMAttributePatternArrayIndexable Array of attribute patterns
 CMAttributeSpecAn attribute specification
 CMAttributeSpecArrayAn attribute specification array
 CMAutoCLEventAutoPtr for cl_event objects
 CMAutoCLEventListIntroduced in 2023.0
 CMAutoCLKernelAuto pointer for cl_kernel objects
 CMAutoCLMemAuto pointer for cl_mem objects
 CMBlendStateContainer class for an acquired GPU blend state
 CMBlendStateDescDescriptor for a complete blend state
 CMBoundingBoxImplementation of a 3D bounding box
 CMBufferIdentifierIntroduced in 2022.0
 CMCacheConfigRuleRegistryIntroduced in 2019.0
 CMCacheFormatDescriptionCache format description
 CMCacheSchemaIntroduced in 2020.0
 CMCacheSchemaAttributesIteratorIntroduced in 2020.0
 CMCacheSchemaAttributesIteratorSentinelIntroduced in 2020.0
 CMCacheSchemaAttributesRangeIntroduced in 2020.0
 CMCallbackIdArrayArray of MCallbackId data type
 CMCameraOverrideCamera override description
 CMCharBufferMemory buffer utility class
 CMClosedTimeIntervalIntroduced in 2022.0
 CMColorA color math class
 CMColorArrayArray of MColor data type
 CMColorManagementNodesIntroduced in 2019.0
 CMColorManagementUtilitiesUtilities for obtaining color management information
 CMColorMixingSpaceHelperIntroduced in 2023.0
 CMColorPickerCallbackIntroduced in 2019.0
 CMColorPickerUtilitiesIntroduced in 2019.0
 CMColorManagementUtilities::MColorTransformDataUtility class that retrieves the opaque data containing the color transform information needed to render the scene
 CMCommandResultResult returned from executing a command
 CMCommonRenderSettingsDataData container for common rendering settings
 CMCommonSystemUtilsOS functionality
 CMComponentDataIndexingClass for storing index mapping when vertices are shared
 CMComponentDataIndexingListA list of MIndexBufferDescriptor objects
 CMComputationInterupt monitor for long computations
 CMCursorManipulate Cursors
 CMCurveAttributeCreate and manipulate curve attributes
 CMCustomEvaluatorClusterNodeScheduling cluster representing a self-contained cluster of work
 CMD3D9RendererMD3D9Renderer is a wrapper class to provide access to Maya's DirectX resources
 CMDAGDrawOverrideInfoA data structure to store the per path draw override information
 CMDagPathDAG Path
 CMDagPathArrayIndexable Array of DAG Paths
 CMDataBlockDependency node data block
 CMDataHandleData handle for information contained in a data block
 CMDepthNormalizationDescriptionInformation required to perform normalization of values stored in the depth buffer of an MImage with respect to clipping plane range
 CMDepthStencilStateContainer class for an acquired complete GPU depth stencil state
 CMDepthStencilStateDescDescriptor for a complete depth-stencil state
 CMDeviceChannelInput device channel
 CMDeviceStateInput device state
 CMDGContextDependency graph (DG) context class
 CMDGContextGuardScope object used to modify current evaluation context in a code block
 CMDGModifierDependency graph modifier
 CMDistanceManipulate Linear Data
 CMDoubleArrayArray of doubles data type
 CMDrawDataHolds geometry specific information for user defined shapes which maya does not intrinsicly know about
 CMDrawInfoThis class is used by the getDrawRequests method of MPxSurfaceShapeUI to specify the current object drawing state for a user defined shape
 CMDrawProcedureBaseThis class provides an interface through which a plug-in can be writen to implement a class to provide custom hardware drawing effects
 CMDrawRegistryAccess the registry associating node types with custom implementations
 CMDrawRequestThis class encapsulates all the information needed to fulfill a request to draw an object or part of an object
 CMDrawRequestQueueThis class defines a simple interface for a collection of MDrawRequest objects
 CMDrawTraversalMDrawTraversal is a utility class for interactive drawing
 CMDynamicsUtilUtility class for Maya dynamics
 CMDynSweptLineClass for evaluating curve segments as lines over time
 CMDynSweptTriangleClass for evaluating surfaces as triangles over time
 CMEditBase class for representing information about edits
 CMEditPrimitiveFctIntroduced in 2023.0
 CMEulerRotationEuler Rotation Math
 CMEvaluationGraphEvaluation graph object
 CMEvaluationManagerClass for working with Maya's Evaluation Manager
 CMEvaluationNodeProvides access to Evaluation Manager node information
 CMEvaluationNodeIteratorProvides access to the Evaluation Manager node dirty plug list
 CMEventSystem event information
 CMExternalContentInfoTableThis is a table of all the external content for a given MPxNode
 CMExternalContentLocationTableThis is a table of the all the external content locations for a given MPxNode
 CMExternalDropCallbackProvides a callback hook into Maya's drag-and-drop mechanism
 CMExternalDropDataDrag-and-drop data, used with MExternalDropCallback
 CMFalloffContextIntroduced in 2022.0
 CMFalloffFunctionIntroduced in 2022.0
 CMFeedbackLineFeedback line
 CMFileIOI/O operations on scene files
 CMFileObjectManipulate filenames and search paths
 CMFloatArrayArray of floats data type
 CMFloatMatrixA matrix math class for 4x4 matrices of floats
 CMFloatPointImplementation of a point
 CMFloatPointArrayArray of MFloatPoint data type
 CMFloatVectorA vector math class for vectors of floats
 CMFloatVectorArrayArray of MFloatVectors data type
 CMFnFunction Set Type Identifiers
 CMFnBaseFunction Set Base Class
 CMFnSubdNamesManipulate Subdivision Surface vertex, edge and face ids
 CMFragmentManagerProvides facilities for managing fragments for use with Viewport 2.0
 CMFrameContextThis class contains some global information for the current render frame
 CMGeometryClass for working with geometric structures used to draw objects
 CMGeometryDataThis class allows storage of arbitrary data which is formated to be specifically suitable for usage using a 3D display interface such as OpenGL
 CMGeometryExtractorClass for extracting renderable geometry
 CMGeometryIndexMappingA mapping of geometry index
 CMGeometryLegacyMGeometryLegacy stores the collection of MGeometryData arrays which describe a Maya surface, including per-component data such as UV mapping and colour
 CMGeometryListThis class holds the set of data elements which represent a Maya surface
 CMGeometryManagerThis class provides methods for managing MGeometry resources
 CMGeometryPrimitiveMGeometryPrimitive is a class describes the topology used for accessing MGeometryData
 CMGeometryRequirementsGeometry requirements
 CMGeometryRequirementsLegacyMGeometryRequirementsLegacy stores the collection of MGeometryRequirementsData arrays which describe a Maya surface, including per-component data such as UV mapping and colour
 CMGeometryUtilitiesUtilities for Viewport 2.0
 CMGLFunctionTableThe best cross platform alternative for drawing in Viewport 2.0 is via MHWRender::MVertexBuffer, MHWRender::MPxGeometryOverride, and other classes providing an abstraction from the underlying hardware API
 CMGlobalStatic class providing common API global functions
 CMGPUDeformerBufferStore GPU Representation of a data buffer
 CMGPUDeformerDataStore GPU Representation of geometry data
 CMGPUDeformerRegistrationInfoRegistration information for an MPxGPUDeformer
 CMGPUDeformerRegistryRegistration class for MPxGPUDeformer
 CMGraphNodeIteratorProvides access to the cluster nodes in a given evaluation graph
 CMHairSystemInterface with Maya's Dynamic Hair System
 CMHardwareRendererStatic hardware renderer interface class
 CMHwrCallbackRendering Callbacks
 CMHwTextureManagerThe MHwTextureManager provides an interface for loading and using hardware textures
 CMIffFileRead file images stored on disk
 CMIffTagEncapsulates IFF's 4 character block structure
 CMIkHandleGroupIK handle groups
 CMIkSystemInverse kinematics (IK) system class
 CMImageImage manipulation
 CMImageFileInfoImage manipulation
 CMIndexBufferIndex buffer for use with MGeometry
 CMIndexBufferDescriptorMIndexBufferDescriptor describes an indexing scheme
 CMIndexBufferDescriptorListA list of MIndexBufferDescriptor objects
 CMIndexMapperIntroduced in 2020.0
 CMPxShaderOverride::MInitContextInitialization context used by advanced initalization method
 CMPxShaderOverride::MInitFeedbackData to pass back to Maya after initialization
 CMInt64ArrayArray of 64-bit integers data type
 CMIntArrayArray of integers data type
 CMIntersectionDescribes the intersection of a selection hit
 CMItCurveCVIterator for NURBS curve CVs
 CMItDagDAG Iterator
 CMItDependencyGraphDependency Graph Iterator
 CMItDependencyNodesDependency Node iterator
 CMItEditsEdits iterator
 CMIteratorTypeMIteratorType class
 CMItGeometryIterator class for geometry data
 CMItInstancerParticle iterator
 CMItKeyframeKeyframe Iterator
 CMItMeshEdgePolygon edge iterator
 CMItMeshFaceVertexFace vertex iterator
 CMItMeshPolygonPolygon iterator
 CMItMeshVertexPolygon vertex iterator
 CMItSelectionListIterate over the items in the selection list
 CMItSubdEdgeSubdiv edge iterator
 CMItSubdFaceSubdiv face iterator
 CMItSubdVertexSubdiv vertex iterator
 CMItSurfaceCVNURBS surface CV iterator
 CMLibrarySet up Maya to run in library mode. (OpenMaya)
 CMLightLinksClass providing read-only Light Linking API functions
 CMLightParameterInformationA class for providing lighting information that may be used with Viewport 2.0
 CMManipDataManipulator Data
 CMMaterialThis class is used in the draw functions of user defined shapes (see MPxSurfaceShapeUI) for setting up and querying materials used in shaded mode drawing
 CMMaterialArrayArray of pointers of MMaterial data type
 CMMatrixA matrix math class for 4x4 matrices of doubles
 CMMatrixArrayArray of MMatrix data type
 CMMeshIntersectorMesh intersector
 CMMeshIsectAccelParamsClass to define parameters for accelerated intersection operations
 CMMeshSmoothOptionsOptions for control of smooth mesh generation
 CMMessageMessage base class
 CMMutexLockMethods for managing locks on threads created
 CMNamespaceNamespace
 CMnObjectClass for wrapping N cloth objects
 CMNodeCacheDisablingInfoIntroduced in 2020.0
 CMNodeCacheDisablingInfoHelperIntroduced in 2020.0
 CMNodeCacheSetupInfoIntroduced in 2020.0
 CMNodeClassA class for performing node class-level operations in the dependency graph
 CMnSolverClass for wrapping N solver objects
 CMNurbsIntersectorNurbs intersector
 CMObjectGeneric Class for Accessing Internal Maya Objects
 CMObjectArrayArray of MObjects data type
 CMObjectHandleGeneric Class for validating MObjects
 CMObjectListFilterClass for defining a scene list filter
 CMOpenCLBufferConvenience class which makes allocating, updating and releasing OpenCL buffers easy
 CMOpenCLInfoGlobal OpenCL information used by Maya
 CMOpenCLKernelInfoIntroduced in 2023.0
 CMOpenCLUtilsIntroduced in 2023.0
 CMPanelCanvasIntroduced in 2020.0
 CMPanelCanvasInfoIntroduced in 2020.0
 CMPassContextClass to allow access to pass context information
 CMPlaneA plane equation
 CMPlugCreate and Access dependency node plugs
 CMPlugArrayArray of MPlugs data type
 CMPluginCallableInfoIntroduced in 2020.0
 CMPointImplementation of a point
 CMPointArrayArray of MPoint data type
 CMPointOnMeshMesh intersector result
 CMProfilerClass for working with Maya's profiler
 CMProfilingScopeMProfilingScope is used to profile code execution time
 CMProgressWindowCreate and manipulate progress windows
 CMPx3dModelViewMPx3dModelView is the class for user defined model views
 CMPxAnimCurveInterpolatorBase Class for User-defined Animation Curve Interpolation Types
 CMPxAttributePatternFactoryBase class for user-defined attribute pattern factories
 CMPxBakeEngineBaking functionality
 CMPxCacheConfigRuleFilterIntroduced in 2019.0
 CMPxCacheFormatCacheFormat definition
 CMPxCommandBase class for user commands
 CMPxComponentConverterBase class for user defined component converter
 CMPxContextBase class for user defined contexts
 CMPxContextCommandBase class for context creation commands
 CMPxControlCommandBase class for control creation commands
 CMPxCustomEvaluatorBase class for custom evaluation overrides in the evaluation manager
 CMPxDataBase Class for User-defined Dependency Graph Data Types
 CMPxDragAndDropBehaviorDrag and Drop Behavior
 CMPxDrawOverrideBase class for user defined drawing of nodes
 CMPxEditDataBase class used to associate user-defined data with edits
 CMPxFileResolverBase Class for creating custom Maya File Resolvers
 CMPxFileTranslatorBase Class for creating Maya File Translators
 CMPxGeometryIteratorBase class for user defined geometry iterators
 CMPxGeometryOverrideBase for user-defined classes to prepare geometry for drawing
 CMPxGlBufferHistorically this class was used to created offscreen buffers on Linux
 CMPxGPUDeformerBase class for user defined GPU deformer override evaluators
 CMPxIkSolverOBSOLETE CLASS: Base class for user defined IK solvers
 CMPxImageFileImage manipulation
 CMPxImagePlaneOverrideBase class for user defined image plane draw overrides
 CMPxIndexBufferMutatorBase class for user defined index buffer mutators
 CMPxMaterialInformationMaterial information proxy
 CMPxMayaAsciiFilterOutputWrapper for a Maya Ascii file output stream
 CMPxMidiInputDeviceMidi input device
 CMPxModelEditorCommandBase class for editor creation commands
 CMPxNodeBase class for user defined dependency nodes
 CMPxPrimitiveGeneratorBase class for user defined primitive generators
 CMPxRendererBase class for plugin renderers
 CMPxRenderPassImplRender pass implementation
 CMPxRepresentationAbstract base class for user defined representations
 CMPxShaderOverrideBase class for user defined shading effect draw overrides
 CMPxShadingNodeOverrideBase class for user defined shading node overrides
 CMPxSubSceneOverrideBase class for Viewport 2.0 drawing of DAG nodes which represent sub-scenes
 CMPxSurfaceShapeUIDrawing and selection for user defined shapes
 CMPxTopologyEvaluatorIntroduced in 2019.0
 CMPxTransformationMatrixBase class of all user defined transformation matrices
 CMPxUIControlBase class for control creation
 CMPxVertexBufferGeneratorBase class for user defined vertex buffer generators
 CMPxVertexBufferMutatorBase class for user defined vertex buffer generators
 CMPxViewportComputeItemIntroduced in 2022.0
 CMQtUtilQt Utility Methods
 CMQuaternionQuaternion math
 CMRampAttributeCreate and manipulate ramp attributes
 CMRasterizerStateContainer class for an acquired complete GPU rasterizer state
 CMRasterizerStateDescDescriptor for a complete rasterizer state
 CMRenderCallbackRendering Callbacks
 CMRenderDataAccess Rendering Data
 CMRendererMain interface class to the Viewport 2.0 renderer
 CMRenderingInfoInformation to perform rendering into a hardware render target
 CMRenderItemA single renderable entity
 CMRenderItemListA list of MRenderItem objects
 CMRenderLineClass for accessing paint effects output curve data
 CMRenderLineArrayClass for accessing paint effects output curve data
 CMRenderOperationClass which defines a rendering operation
 CMRenderOperationListBase class for holding a list of MRenderOperations
 CMRenderOverrideBase class for defining a rendering override
 CMRenderParametersClass which defines a set of render parameters
 CMRenderPassDefRender pass information
 CMRenderPassRegistryAccess the render pass registry
 CMRenderProfileRender profile
 CMRenderScriptCallbackClass which defines a callback that can be executed from a script fragment
 CMRenderSetupUtilities for obtaining render setup information
 CMRenderShadowDataAccess Rendering Shadow Map Data
 CMRenderTargetAn instance of a render target that may be used with Viewport 2.0
 CMRenderTargetAssignmentStructure to hold the information required to set a texture parameter on a shader using a render target as input
 CMRenderTargetDescriptionClass which provides a description of a hardware render target The name is the unique identifier for a render target
 CMRenderTargetLegacyMRenderTargetLegacy is a class contains information about a given hardware render target
 CMRenderTargetManagerProvides access to MRenderTarget objects for use in Viewport 2.0
 CMRenderUtilCommon API rendering functions
 CMRenderUtilitiesUtilities for Viewport 2.0
 CMRenderViewStatic class providing Render View API functions
 CMRichSelectionSelection list supporting soft selection and symmetry
 CMSamplerStateContainer class for an acquired complete GPU sampler state
 CMSamplerStateDescDescriptor for a complete sampler state
 CMScriptUtilUtility class for working with pointers and references in Python
 CMSelectionContextClass to allow control on Viewport 2.0 selection behavior
 CMSelectionInfoClass to allow access to the selection state information
 CMSelectionListA list of MObjects
 CMSelectionMaskManage what is selectable in Maya. (OpenMaya) (OpenMaya.py)
 CMShaderCompileMacroStructure to define a shader compiler macro
 CMShaderInstanceAn instance of a shader that may be used with Viewport 2.0
 CMShaderManagerProvides access to MShaderInstance objects for use in Viewport 2.0
 CMSpaceSpace transformation identifiers
 CMSpinLockMethods for managing spin locks on threads
 CMStartPrimitiveEditingFctIntroduced in 2023.0
 CMStateManagerClass to allow efficient access to GPU state information
 CMStatusManipulate Maya Status codes
 CMStencilOpDescDescriptor for a depth-stencil operation
 CMStopPrimitiveEditingFctIntroduced in 2023.0
 CMStreamUtilsStream functionality
 CMStringManipulate strings
 CMStringArrayArray of MStrings data type
 CMStringResourceLocalizable string resources
 CMStringResourceIdUnique identifier for an MString Resource
 CMSubSceneContainerContainer for render items generated by MPxSubSceneOverride
 CMSwatchRenderBaseSwatch Render Base class
 CMSwatchRenderRegisterManages swatch generators
 CMSyntaxSyntax for Commands
 CMTargetBlendDescDescriptor for a blend state for a single render target
 CMTesselationParamsTesselation parameters
 CMTextureClass which includes texture data
 CMTextureArgumentsClass which includes texture arguments
 CMTextureAssignmentStructure to hold the information required to set a texture parameter on a shader using a texture as input
 CMTextureDescriptionTexture description
 CMTextureEditorDrawInfoDrawing state for drawing to the UV texture window with custom shapes
 CMTextureManagerClass which manages texture
 CMTextureUpdateRegionStructure to represent an update region for a texture
 CMThreadAsyncMethods for creating threads
 CMThreadPoolMethods for creating and managing a thread pool
 CMThreadUtilsHelper methods for threaded plugins
 CMTimeSet and retrieve animation time values in various unit systems
 CMTimeArrayArray of MTime data type
 CMTimerThis class works similar to timerX MEL command
 CMTimeRangeIntroduced in 2020.0
 CMTimeSliderCustomDrawManagerIntroduced in 2023.0
 CMTimeSliderDrawPrimitiveIntroduced in 2023.0
 CMTimeSliderDrawPrimitivesIntroduced in 2023.0
 CMToolsInfoTool information
 CMTopologyClusterNodeIntroduced in 2019.0
 CMTransformationMatrixTransformation matrix
 CMTrimBoundaryArrayAn array class for trim boundaries
 CMTypeIdManage Maya Object type identifiers
 CMUIDrawManagerMain interface for drawing basic UI drawables in Viewport 2.0 and Hardware Renderer 2.0
 CMUint64ArrayArray of MUint64 data type
 CMUintArrayArray of integers data type
 CMUniformParameterUniform parameter
 CMUniformParameterListUniform Parameter
 CMUniqueStringA non-mutable string with O(1) comparison operators
 CMURIManipulating Uniform Resource Identifiers
 CMUserDataVirtual base class for user data caching
 CMUuidClass to manipulate UUIDs
 CMVaryingParameterGeometric data cache
 CMVaryingParameterListGeometric data cache
 CMVectorA vector math class for vectors of doubles
 CMVectorArrayArray of MVectors data type
 CMVertexBufferVertex buffer for use with MGeometry
 CMVertexBufferArrayArray of Vertex buffers
 CMVertexBufferDescriptorDescribes properties of a vertex buffer
 CMVertexBufferDescriptorListA list of MVertexBufferDescriptor objects
 CMViewportRendererMViewportRenderer is a class which represents a hardware viewport renderer
 CMWeightComponent weight data
 CPrintClass implementing debug printing operation
 CMPxRenderer::ProgressParamsParameters for reporting progress of a task
 CRefCountedClass implementing standard reference counting
 CMPxRenderer::RefreshParamsParameters for doing refresh of the view when new image data is available
 CMFrameContext::RenderOverrideInformationRender override information
 CMPxHardwareShader::RenderParametersProvides information on how to render the image
 CMPxHwShaderNode::RenderParametersProvides information on how to render the image
 CMFalloffFunction::ReturnValueReturn Value data type for a falloff function
 CRV_AOVArbitrary Output Variable (AOV) data type
 CRV_PIXELPixel data type
 CSerializerInitializer< TheType >Helper : Instantiate to automatically (de)register a serializaton format Requires that the template parameter class has implemented the registerFormat() and deregisterFormat() methods
 CMPxHardwareShader::ShaderContextProvides contextual information about the current invocation of the shader
 CSharedPtrBaseBase class for MSharedPtr
 CStreamClass handling a list of generic data
 CStreamIteratorClass handling iteration over Stream members
 CStreamSerializerClass handling the definition of the format for serialization of data streams
 CStructureIteratorHelper class for iterating over structure members
 CStructureIteratorImplHelper class to contain the implementation-specific information
 CAccessor::StructureNameLessThanFunctor for Structure ordering in a std::set
 CStructureSerializerClass handling the definition of the format for serialization of data structures