CModel

class Lib3MF::CModel : public CBase
PPackagePart RootModelPart()

Returns the PackagePart within the OPC package that holds the root model.

Returns:

the PackagePart within the OPC package that holds the model-file

PPackagePart FindOrCreatePackagePart(const std::string &sAbsolutePath)

Returns a new PackagePart for use within the OPC package.

Parameters:

sAbsolutePath – the absolute Path (physical location) within the OPC package

Returns:

the new PackagePart within the OPC package

void SetUnit(const eModelUnit eUnit)

sets the units of a model.

Parameters:

eUnit – Unit enum value for the model unit

eModelUnit GetUnit()

returns the units of a model.

Returns:

Unit enum value for the model unit

std::string GetLanguage()

retrieves the language of a model

Returns:

language identifier

void SetLanguage(const std::string &sLanguage)

sets the language of a model

Parameters:

sLanguage – language identifier

PWriter QueryWriter(const std::string &sWriterClass)

creates a model writer instance for a specific file type

Parameters:

sWriterClass – string identifier for the file type

Returns:

string identifier for the file type

PReader QueryReader(const std::string &sReaderClass)

creates a model reader instance for a specific file type

Parameters:

sReaderClass – string identifier for the file type

Returns:

string identifier for the file type

PTexture2D GetTexture2DByID(const Lib3MF_uint32 nUniqueResourceID)

finds a model texture by its UniqueResourceID

Parameters:

nUniqueResourceID – UniqueResourceID

Returns:

returns the texture2d instance

ePropertyType GetPropertyTypeByID(const Lib3MF_uint32 nUniqueResourceID)

returns a Property’s type

Parameters:

nUniqueResourceID – Resource ID of the Property to Query

Returns:

returns a Property’s type

PBaseMaterialGroup GetBaseMaterialGroupByID(const Lib3MF_uint32 nUniqueResourceID)

finds a model base material group by its UniqueResourceID

Parameters:

nUniqueResourceID – UniqueResourceID

Returns:

returns the BaseMaterialGroup instance

PTexture2DGroup GetTexture2DGroupByID(const Lib3MF_uint32 nUniqueResourceID)

finds a model texture2d group by its UniqueResourceID

Parameters:

nUniqueResourceID – UniqueResourceID

Returns:

returns the Texture2DGroup instance

PCompositeMaterials GetCompositeMaterialsByID(const Lib3MF_uint32 nUniqueResourceID)

finds a model CompositeMaterials by its UniqueResourceID

Parameters:

nUniqueResourceID – UniqueResourceID

Returns:

returns the CompositeMaterials instance

PMultiPropertyGroup GetMultiPropertyGroupByID(const Lib3MF_uint32 nUniqueResourceID)

finds a model MultiPropertyGroup by its UniqueResourceID

Parameters:

nUniqueResourceID – UniqueResourceID

Returns:

returns the MultiPropertyGroup instance

PMeshObject GetMeshObjectByID(const Lib3MF_uint32 nUniqueResourceID)

finds a mesh object by its UniqueResourceID

Parameters:

nUniqueResourceID – UniqueResourceID

Returns:

returns the mesh object instance

PComponentsObject GetComponentsObjectByID(const Lib3MF_uint32 nUniqueResourceID)

finds a components object by its UniqueResourceID

Parameters:

nUniqueResourceID – UniqueResourceID

Returns:

returns the components object instance

PColorGroup GetColorGroupByID(const Lib3MF_uint32 nUniqueResourceID)

finds a model color group by its UniqueResourceID

Parameters:

nUniqueResourceID – UniqueResourceID

Returns:

returns the ColorGroup instance

PSliceStack GetSliceStackByID(const Lib3MF_uint32 nUniqueResourceID)

finds a model slicestack by its UniqueResourceID

Parameters:

nUniqueResourceID – UniqueResourceID

Returns:

returns the slicestack instance

std::string GetBuildUUID(bool &bHasUUID)

returns, whether a build has a UUID and, if true, the build’s UUID

Parameters:

bHasUUID – flag whether the build has a UUID

Returns:

the UUID as string of the form ‘xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx’

void SetBuildUUID(const std::string &sUUID)

sets the build’s UUID

Parameters:

sUUID – the UUID as string of the form ‘xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx’

PBuildItemIterator GetBuildItems()

creates a build item iterator instance with all build items.

Returns:

returns the iterator instance.

sBox GetOutbox()

Returns the outbox of a Model

Returns:

Outbox of this Model

PResourceIterator GetResources()

creates a resource iterator instance with all resources.

Returns:

returns the iterator instance.

PObjectIterator GetObjects()

creates a resource iterator instance with all object resources.

Returns:

returns the iterator instance.

PMeshObjectIterator GetMeshObjects()

creates a resource iterator instance with all mesh object resources.

Returns:

returns the iterator instance.

PComponentsObjectIterator GetComponentsObjects()

creates a resource iterator instance with all components object resources.

Returns:

returns the iterator instance.

PTexture2DIterator GetTexture2Ds()

creates a Texture2DIterator instance with all texture2d resources.

Returns:

returns the iterator instance.

PBaseMaterialGroupIterator GetBaseMaterialGroups()

creates a BaseMaterialGroupIterator instance with all base material resources.

Returns:

returns the iterator instance.

PColorGroupIterator GetColorGroups()

creates a ColorGroupIterator instance with all ColorGroup resources.

Returns:

returns the iterator instance.

PTexture2DGroupIterator GetTexture2DGroups()

creates a Texture2DGroupIterator instance with all base material resources.

Returns:

returns the iterator instance.

PCompositeMaterialsIterator GetCompositeMaterials()

creates a CompositeMaterialsIterator instance with all CompositeMaterials resources.

Returns:

returns the iterator instance.

PMultiPropertyGroupIterator GetMultiPropertyGroups()

creates a MultiPropertyGroupsIterator instance with all MultiPropertyGroup resources.

Returns:

returns the iterator instance.

PSliceStackIterator GetSliceStacks()

creates a resource iterator instance with all slice stack resources.

Returns:

returns the iterator instance.

PModel MergeToModel()

Merges all components and objects which are referenced by a build item into a mesh. The memory is duplicated and a new model is created.

Returns:

returns the merged model instance

PMeshObject AddMeshObject()

adds an empty mesh object to the model.

Returns:

returns the mesh object instance

PComponentsObject AddComponentsObject()

adds an empty component object to the model.

Returns:

returns the components object instance

PSliceStack AddSliceStack(const Lib3MF_double dZBottom)

creates a new model slicestack by its id

Parameters:

dZBottom – Bottom Z value of the slicestack

Returns:

returns the new slicestack instance

PTexture2D AddTexture2DFromAttachment(CAttachment *pTextureAttachment)

adds a texture2d resource to the model. Its path is given by that of an existing attachment.

Parameters:

pTextureAttachment – attachment containing the image data.

Returns:

returns the new texture instance.

PBaseMaterialGroup AddBaseMaterialGroup()

adds an empty BaseMaterialGroup resource to the model.

Returns:

returns the new base material instance.

PColorGroup AddColorGroup()

adds an empty ColorGroup resource to the model.

Returns:

returns the new ColorGroup instance.

PTexture2DGroup AddTexture2DGroup(CTexture2D *pTexture2DInstance)

adds an empty Texture2DGroup resource to the model.

Parameters:

pTexture2DInstance – The texture2D instance of the created Texture2DGroup.

Returns:

returns the new Texture2DGroup instance.

PCompositeMaterials AddCompositeMaterials(CBaseMaterialGroup *pBaseMaterialGroupInstance)

adds an empty CompositeMaterials resource to the model.

Parameters:

pBaseMaterialGroupInstance – The BaseMaterialGroup instance of the created CompositeMaterials.

Returns:

returns the new CompositeMaterials instance.

PMultiPropertyGroup AddMultiPropertyGroup()

adds an empty MultiPropertyGroup resource to the model.

Returns:

returns the new MultiPropertyGroup instance.

PBuildItem AddBuildItem(CObject *pObject, const sTransform &Transform)

adds a build item to the model.

Parameters:
  • pObject – Object instance.

  • Transform – Transformation matrix.

Returns:

returns the build item instance.

void RemoveBuildItem(CBuildItem *pBuildItemInstance)

removes a build item from the model

Parameters:

pBuildItemInstance – Build item to remove.

PMetaDataGroup GetMetaDataGroup()

Returns the metadata of the model as MetaDataGroup

Returns:

returns an Instance of the metadatagroup of the model

PAttachment AddAttachment(const std::string &sURI, const std::string &sRelationShipType)

adds an attachment stream to the model. The OPC part will be related to the model stream with a certain relationship type.

Parameters:
  • sURI – Path of the attachment

  • sRelationShipType – Relationship type of the attachment

Returns:

Instance of the attachment object

void RemoveAttachment(CAttachment *pAttachmentInstance)

Removes attachment from the model.

Parameters:

pAttachmentInstance – Attachment instance to remove

PAttachment GetAttachment(const Lib3MF_uint32 nIndex)

retrieves an attachment stream object from the model..

Parameters:

nIndex – Index of the attachment stream

Returns:

Instance of the attachment object

PAttachment FindAttachment(const std::string &sURI)

retrieves an attachment stream object from the model.

Parameters:

sURI – Path URI in the package

Returns:

Instance of the attachment object

Lib3MF_uint32 GetAttachmentCount()

retrieves the number of attachments of the model.

Returns:

Returns the number of attachments.

bool HasPackageThumbnailAttachment()

Retrieve whether the OPC package contains a package thumbnail.

Returns:

returns whether the OPC package contains a package thumbnail

PAttachment CreatePackageThumbnailAttachment()

Create a new or the existing package thumbnail for the OPC package.

Returns:

Instance of a new or the existing thumbnailattachment object.

PAttachment GetPackageThumbnailAttachment()

Get the attachment to the OPC package containing the package thumbnail.

Returns:

Instance of the thumbnailattachment object or NULL.

void RemovePackageThumbnailAttachment()

Remove the attachment to the OPC package containing the package thumbnail.

void AddCustomContentType(const std::string &sExtension, const std::string &sContentType)

Adds a new Content Type to the model.

Parameters:
  • sExtension – File Extension

  • sContentType – Content Type Identifier

void RemoveCustomContentType(const std::string &sExtension)

Removes a custom Content Type from the model (UTF8 version).

Parameters:

sExtension – File Extension

void SetRandomNumberCallback(const RandomNumberCallback pTheCallback, const Lib3MF_pvoid pUserData)

Sets the random number generator callback for use in the library

Parameters:
  • pTheCallback – The callback used to generate random numbers

  • pUserData – Userdata to be passed to the callback function

PKeyStore GetKeyStore()

Gets the keystore associated with this model

Returns:

The package keystore

typedef std::shared_ptr<CModel> Lib3MF::PModel

Shared pointer to CModel to easily allow reference counting.