ImFusion C++ SDK 4.4.0
ImFusion::DataDescriptor Class Reference
Inheritance diagram for ImFusion::DataDescriptor:

Classes

class  TypeSpecificData
class  GeometricAnnotationData
class  PixelwiseData
struct  RelatedData

Public Member Functions

void configure (const Properties *prop) override
 Configure this object instance by de-serializing the given Properties.
void configuration (Properties *prop) const override
 Serialize the current object configuration into the given Properties object.
void configureFromRemote (const QJsonObject &obj)
const QString & identifier () const
const QString & name () const
bool ownCopy () const
uint64_t importTime () const
uint64_t latestEditTime () const
const QString & comments () const
bool makeOwning ()
const TagValuestagValues () const
const std::vector< TagValue > & tags () const
bool areTagValuesDefault () const
bool requestNameChange (const QString &name)
bool requestCommentsChange (const QString &comments)
bool requestTagChange (size_t i, TagValue v)
bool requestGroupingChange (const std::vector< std::string > &grouping)
bool requestReadOnlyChange (bool readOnly)
const QString & originalDataPath () const
const QString & subFileId () const
std::pair< QString, QString > loadPath () const
ResourceLocation resourceLocation () const
QString resourcePath () const
bool isLocked () const
bool isReadOnly () const
 Returns whether this DataDescriptor can be changed.
QString thumbnailPath () const
bool saveThumbnail (const QImage &thumb)
std::unique_ptr< SharedImageSetloadImage (Progress *p=nullptr) const
bool saveImage (const SharedImageSet &image, Progress *p=nullptr) const
bool saveViewerMetadataRemote () const
 Saves the viewer metadata.
void setDatasetLicenseId (const QString &id)
const QString & datasetLicenseId () const
const DatasetLicenseSystem::DatasetLicensedatasetLicense () const
const ImageMetadataimageMetadata () const
const ViewerMetadataviewerMetadata () const
void setViewerMetadata (const ViewerMetadata &metadata)
 Sets the metadata used by viewers.
bool isWindowingInitialized () const
const RegionOfInterestregionOfInterest () const
void setRegionOfInterest (const RegionOfInterest &roi)
void considerFrameAnnotated (size_t frame, bool annotated)
bool isConsideredAnnotated (std::optional< size_t > frame={}) const
const std::vector< bool > & framesConsideredAnnotated () const
bool importPixelwiseLayers (std::vector< SharedImageSet * > layers, Project::LayersToModify layersToModify, Progress *progress=nullptr)
 Import the given pixelwise layers.
PixelwiseDatapixelwise (std::optional< size_t >={})
const PixelwiseDatapixelwise (std::optional< size_t >={}) const
GeometricAnnotationDatageometricAnnotations (std::optional< size_t >={})
const GeometricAnnotationDatageometricAnnotations (std::optional< size_t >={}) const
bool hasData () const
const Project & project () const
bool isRelatedDimensionCompatible ()
const std::vector< RelatedData > & relatedData () const
bool addRelatedData (RelatedData related)
bool removeRelatedData (const QString &ID)
RelatedDataselectedRelatedData ()
DataDescriptor * selectedRelatedDataDescriptor ()
int selectedRelatedDataIndex () const
void setSelectedRelatedDataIndex (int idx)
Public Member Functions inherited from ImFusion::Configurable
virtual void configureDefaults ()
 Retrieve the properties of this object, replaces values with their defaults and sets it again.
void registerParameter (ParameterBase *param)
 Register the given Parameter or SubProperty, so that it will be configured during configure()/configuration().
void unregisterParameter (const ParameterBase *param)
 Remove the given Parameter or SubProperty from the list of registered parameters.
 Configurable (const Configurable &rhs)
 Configurable (Configurable &&rhs) noexcept
Configurable & operator= (const Configurable &)
Configurable & operator= (Configurable &&) noexcept

Static Public Member Functions

static std::unique_ptr< DataDescriptor > create (const Project &p, const QString &name, const SharedImageSet &sis, const QString &dataAbsPath, const QString &subId, const bool ownCopy=false)
static std::unique_ptr< DataDescriptor > create (const Project &p, const QString &name, const ImageMetadata &sis, const QString &dataAbsPath, const QString &subId, const bool ownCopy=false)
static std::unique_ptr< DataDescriptor > fromRemoteDesc (const Project &p, const QString &identifier)
static std::unique_ptr< DataDescriptor > load (const Project &p, const Properties &prop, const std::set< QString > &labels)

Public Attributes

Signal< DataDescriptor * > signalAboutToBeDeleted
Signal signalRelatedDataChanged
Public Attributes inherited from ImFusion::Configurable
Signal signalParametersChanged
 Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted.

Additional Inherited Members

Protected Attributes inherited from ImFusion::Configurable
std::vector< Paramm_params
 List of all registered Parameter and SubProperty instances.

Member Function Documentation

◆ configure()

void ImFusion::DataDescriptor::configure ( const Properties * p)
overridevirtual

Configure this object instance by de-serializing the given Properties.

The default implementation will do so automatically for all registered Parameter and SubProperty instances.

See also
configuration() for the inverse functionality

Reimplemented from ImFusion::Configurable.

◆ configuration()

void ImFusion::DataDescriptor::configuration ( Properties * p) const
overridevirtual

Serialize the current object configuration into the given Properties object.

The default implementation will do so automatically for all registered Parameter and SubProperty instances.

See also
configure() for the inverse functionality

Reimplemented from ImFusion::Configurable.

◆ isReadOnly()

bool ImFusion::DataDescriptor::isReadOnly ( ) const
inline

Returns whether this DataDescriptor can be changed.

In a read-only DataDescriptor name, comments, tags and annotations cannot be edited.

◆ saveViewerMetadataRemote()

bool ImFusion::DataDescriptor::saveViewerMetadataRemote ( ) const

Saves the viewer metadata.

This currently only works for remote projects! Local projects save the viewer metadata when the project is saved.

◆ setViewerMetadata()

void ImFusion::DataDescriptor::setViewerMetadata ( const ViewerMetadata & metadata)
inline

Sets the metadata used by viewers.

This does not change any settings derived from the metadata, e.g. it does not update the DisplayOptions2D.

◆ importPixelwiseLayers()

bool ImFusion::DataDescriptor::importPixelwiseLayers ( std::vector< SharedImageSet * > layers,
Project::LayersToModify layersToModify,
Progress * progress = nullptr )

Import the given pixelwise layers.

The given layers don't need to match the pixelwise layers of this dataset, only the entries in the LabelDataComponent must match the names of the labels. E.g. if the LabelDataComponent of a given layer contains a label with the name "Left Kidney", this label will be assigned to the "Left Kidney" label as defined in the project. It does not matter in which layer this label is defined, it will be automatically mapped to the corresponding layer. If a label has a matching name but the value is not matching, then the value will be mapped to the value defined in the project. Basically the given layers can contain the labels in arbitary order and with arbitary values. As long as the names can be matched, the layers will be imported according to the project definition.

Labels that are not referenced by the LabelDataComponent are left unmodified. Therefore it's possible to only update specific labels. Labels that are referenced by the LabelDataComponent but are not present in the project, are ignored.

Returns true if all layers could be imported. If any of the layers is incompatible to the dataset (e.g. wrong dimension or spacing) or if not all labels can be matched to a project label, no pixelwise layer of this dataset is modified and false is returned.


The documentation for this class was generated from the following file:
  • ImFusionLabels/lib/include/ImFusion/Labels/Core/DataDescriptor.h
Search Tab / S to search, Esc to close