ManiVault 1.0.0
A Flexible and Extensible Visual Analytics Framework for High-Dimensional Data
Loading...
Searching...
No Matches
Images Class Reference

#include <Images.h>

Inheritance diagram for Images:
hdps::DatasetImpl hdps::gui::WidgetAction hdps::util::Serializable

Public Member Functions

 Images (hdps::CoreInterface *core, QString dataName, const QString &guid="")
 
void init () override
 
hdps::Dataset< hdps::DatasetImplcreateSubsetFromSelection (const QString &guiName, const hdps::Dataset< hdps::DatasetImpl > &parentDataSet=hdps::Dataset< hdps::DatasetImpl >(), const bool &visible=true) const override
 
hdps::Dataset< hdps::DatasetImplcopy () const override
 
ImageData::Type getType () const
 
void setType (const ImageData::Type &type)
 
std::uint32_t getNumberOfImages () const
 
void setNumberOfImages (const std::uint32_t &numberOfImages)
 
QSize getImageSize () const
 
void setImageSize (const QSize &imageSize)
 
std::uint32_t getNumberOfComponentsPerPixel () const
 
void setNumberOfComponentsPerPixel (const std::uint32_t &numberOfComponentsPerPixel)
 
QStringList getImageFilePaths () const
 
void setImageFilePaths (const QStringList &imageFilePaths)
 
std::uint32_t getNumberOfPixels () const
 
QRect getRectangle () const
 
QRect getVisibleRectangle () const
 
QIcon getIcon (const QColor &color=Qt::black) const override
 
std::vector< std::uint32_t > & getSelectionIndices () override
 
void setSelectionIndices (const std::vector< std::uint32_t > &indices) override
 
bool canSelect () const override
 
bool canSelectAll () const override
 
bool canSelectNone () const override
 
bool canSelectInvert () const override
 
void selectAll () override
 
void selectNone () override
 
void selectInvert () override
 
void getScalarData (const std::uint32_t &dimensionIndex, QVector< float > &scalarData, QPair< float, float > &scalarDataRange)
 
void getMaskData (std::vector< std::uint8_t > &maskData)
 
void getSelectionData (std::vector< std::uint8_t > &selectionImageData, std::vector< std::uint32_t > &selectedIndices, QRect &selectionBoundaries)
 
void fromVariantMap (const QVariantMap &variantMap) override
 
QVariantMap toVariantMap () const override
 
- Public Member Functions inherited from hdps::DatasetImpl
 DatasetImpl (CoreInterface *core, const QString &rawDataName, const QString &id="")
 
virtual ~DatasetImpl ()
 
StorageType getStorageType () const
 
void setStorageType (const StorageType &storageType)
 
QString getGuiName () const
 
bool isFull () const
 
bool isDerivedData () const
 
DataType getDataType () const
 
template<typename DatasetType >
Dataset< DatasetType > getSourceDataset () const
 
void setSourceDataSet (const Dataset< DatasetImpl > &dataset)
 
template<typename DatasetType >
Dataset< DatasetType > getFullDataset () const
 
Dataset< DatasetImplgetSelection () const
 
template<typename DatasetType >
Dataset< DatasetType > getSelection () const
 
Dataset< DatasetImpl > & getSmartPointer ()
 
Dataset< DatasetImpltoSmartPointer () const
 
template<typename DatasetType >
Dataset< DatasetType > toSmartPointer () const
 
virtual QIcon getIcon (StorageType storageType, const QColor &color=Qt::black) const final
 
void makeSubsetOf (Dataset< DatasetImpl > fullDataset)
 
QString getRawDataKind () const
 
virtual std::uint64_t getRawDataSize () const
 
QString getRawDataSizeHumanReadable () const
 
QString getLocation () const override
 
DataHierarchyItemgetDataHierarchyItem ()
 
const DataHierarchyItemgetDataHierarchyItem () const
 
Dataset< DatasetImplgetParent () const
 
template<typename DatasetType >
Dataset< DatasetType > getParent () const
 
QVector< Dataset< DatasetImpl > > getChildren (const QVector< DataType > &dataTypes=QVector< DataType >()) const
 
QVector< Dataset< DatasetImpl > > getChildren (const DataType &filterDataType)
 
std::int32_t getSelectionSize () const
 
void lock ()
 
void unlock ()
 
bool isLocked () const
 
void setLocked (bool locked)
 
const bool operator== (const DatasetImpl &rhs) const
 
const bool operator!= (const DatasetImpl &rhs) const
 
QVariant getProperty (const QString &name, const QVariant &defaultValue=QVariant()) const
 
void setProperty (const QString &name, const QVariant &value)
 
bool hasProperty (const QString &name) const
 
QStringList propertyNames () const
 
void setAnalysis (plugin::AnalysisPlugin *analysis)
 
plugin::AnalysisPlugingetAnalysis ()
 
std::int32_t getGroupIndex () const
 
void setGroupIndex (const std::int32_t &groupIndex)
 
Datasets getProxyMembers () const
 
virtual void setProxyMembers (const Datasets &proxyMembers)
 
virtual bool mayProxy (const Datasets &proxyDatasets) const
 
bool isProxy () const
 
void addAction (hdps::gui::WidgetAction &widgetAction)
 
hdps::gui::WidgetActions getActions () const
 
QMenu * getContextMenu (QWidget *parent=nullptr) override
 
void populateContextMenu (QMenu *contextMenu)
 
void addLinkedData (const hdps::Dataset< DatasetImpl > &targetDataSet, hdps::SelectionMap &mapping)
 
const std::vector< hdps::LinkedData > & getLinkedData () const
 
std::vector< hdps::LinkedData > & getLinkedData ()
 
std::int32_t getLinkedDataFlags ()
 
void setLinkedDataFlags (std::int32_t linkedDataFlags)
 
void setLinkedDataFlag (std::int32_t linkedDataFlag, bool set=true)
 
bool hasLinkedDataFlag (std::int32_t linkedDataFlag)
 
virtual void resolveLinkedData (bool force=false)
 
QString getRawDataName () const
 
DatasetImploperator= (const DatasetImpl &other)
 
- Public Member Functions inherited from hdps::gui::WidgetAction
 WidgetAction (QObject *parent, const QString &title)
 
 ~WidgetAction ()
 
virtual WidgetActiongetParentAction () const final
 
virtual WidgetActions getParentActions () const final
 
virtual WidgetActions getChildren () const final
 
virtual bool isRoot () const final
 
virtual bool isLeaf () const final
 
virtual QWidget * createWidget (QWidget *parent) override final
 
virtual QWidget * createCollapsedWidget (QWidget *parent) const final
 
virtual QWidget * createLabelWidget (QWidget *parent, const std::int32_t &widgetFlags=0x00001) const final
 
QWidget * createWidget (QWidget *parent, const std::int32_t &widgetFlags)
 
virtual std::int32_t getSortIndex () const final
 
virtual void setSortIndex (const std::int32_t &sortIndex) final
 
virtual std::int32_t getStretch () const final
 
virtual void setStretch (const std::int32_t &stretch) final
 
virtual bool getForceHidden () const final
 
virtual void setForceHidden (bool forceHidden) final
 
virtual bool isVisible () const final
 
virtual bool getForceDisabled () const final
 
virtual void setForceDisabled (bool forceDisabled) final
 
virtual bool isEnabled () const final
 
void setText (const QString &text)
 
virtual std::int32_t getDefaultWidgetFlags () const final
 
virtual void setDefaultWidgetFlags (const std::int32_t &widgetFlags) final
 
virtual void setDefaultWidgetFlag (const std::int32_t &widgetFlags, bool unset=false) final
 
virtual HighlightOption getHighlighting () const final
 
virtual bool isHighlighted () const final
 
virtual void setHighlighting (const HighlightOption &highlighting) final
 
virtual void setHighlighted (bool highlighted) final
 
virtual void highlight () final
 
virtual void unHighlight () final
 
virtual Scope getScope () const final
 
virtual bool isPrivate () const final
 
virtual bool isPublic () const final
 
virtual bool isPublished () const final
 
virtual bool isConnected () const final
 
virtual bool mayConnectToPublicAction (const WidgetAction *publicAction) const final
 
virtual bool publish (const QString &name="", bool allowDuplicateName=false) final
 
virtual WidgetActiongetPublicAction () final
 
virtual WidgetActiongetPublicCopy () const final
 
virtual const WidgetActions getConnectedActions () const final
 
virtual WidgetActionsgetConnectedActions () final
 
virtual bool mayPublish (ConnectionContextFlag connectionContextFlags) const final
 
virtual bool mayConnect (ConnectionContextFlag connectionContextFlags) const final
 
virtual bool mayDisconnect (ConnectionContextFlag connectionContextFlags) const final
 
virtual std::int32_t getConnectionPermissions () const final
 
virtual bool isConnectionPermissionFlagSet (ConnectionPermissionFlag connectionPermissionsFlag) final
 
virtual void setConnectionPermissionsFlag (ConnectionPermissionFlag connectionPermissionsFlag, bool unset=false, bool recursive=false) final
 
virtual void setConnectionPermissions (std::int32_t connectionPermissions, bool recursive=false) final
 
virtual void setConnectionPermissionsToNone (bool recursive=false) final
 
virtual void setConnectionPermissionsToForceNone (bool recursive=false) final
 
virtual void setConnectionPermissionsToAll (bool recursive=false) final
 
virtual void cacheConnectionPermissions (bool recursive=false) final
 
virtual void restoreConnectionPermissions (bool recursive=false) final
 
virtual void startDrag () final
 
virtual bool isResettable () const final
 
virtual void reset () final
 
virtual void setSettingsPrefix (const QString &settingsPrefix, const bool &load=true) final
 
virtual void setSettingsPrefix (plugin::Plugin *plugin, const QString &settingsPrefix, const bool &load=true) final
 
virtual QString getSettingsPrefix () const
 
virtual void loadFromSettings () final
 
virtual void saveToSettings () final
 
virtual QVector< WidgetAction * > findChildren (const QString &searchString, bool recursive=true) const final
 
virtual QSize getPopupSizeHint () const final
 
virtual void setPopupSizeHint (const QSize &popupSizeHint) final
 
virtual std::int32_t getConfiguration () const final
 
virtual bool isConfigurationFlagSet (ConfigurationFlag configurationFlag) const final
 
virtual void setConfigurationFlag (ConfigurationFlag configurationFlag, bool unset=false, bool recursive=false) final
 
virtual void setConfiguration (std::int32_t configuration, bool recursive=false) final
 
virtual QString getTypeString (bool humanFriendly=false) const final
 
void fromVariantMap (const QVariantMap &variantMap) override
 
QVariantMap toVariantMap () const override
 
virtual void cacheState (const QString &name="cache") final
 
virtual void restoreState (const QString &name="cache", bool remove=true) final
 
virtual void setStudioMode (bool studioMode, bool recursive=true) final
 
- Public Member Functions inherited from hdps::util::Serializable
 Serializable (const QString &serializationName="")
 
virtual QString getId () const final
 
virtual void setId (const QString &id) final
 
virtual QString getSerializationName () const final
 
virtual void setSerializationName (const QString &serializationName) final
 
virtual void fromParentVariantMap (const QVariantMap &parentVariantMap)
 
virtual void insertIntoVariantMap (QVariantMap &variantMap) const final
 
virtual void fromJsonDocument (const QJsonDocument &jsonDocument) final
 
virtual QJsonDocument toJsonDocument () const final
 
virtual void fromJsonFile (const QString &filePath="") final
 
virtual void toJsonFile (const QString &filePath="") final
 
virtual void makeUnique () final
 

Static Public Member Functions

static std::tuple< hdps::Dataset< hdps::DatasetImpl >, hdps::Dataset< Images > > addImageDataset (QString datasetGuiName, const hdps::Dataset< hdps::DatasetImpl > &parentDataSet=hdps::Dataset< hdps::DatasetImpl >(), QString pluginKind="Points")
 
static std::uint32_t noChannelsPerPixel ()
 
- Static Public Member Functions inherited from hdps::util::Serializable
static QString createId ()
 

Protected Member Functions

void getScalarDataForImageSequence (const std::uint32_t &dimensionIndex, QVector< float > &scalarData, QPair< float, float > &scalarDataRange)
 
void getScalarDataForImageStack (const std::uint32_t &dimensionIndex, QVector< float > &scalarData, QPair< float, float > &scalarDataRange)
 
void computeMaskData ()
 
QPoint getPixelCoordinateFromPixelIndex (const std::int32_t &pixelIndex) const
 
std::int32_t getPixelIndexFromPixelCoordinate (const QPoint &pixelCoordinate) const
 
- Protected Member Functions inherited from hdps::DatasetImpl
template<class DataType >
DataTypegetRawData () const
 
void setAll (bool all)
 
- Protected Member Functions inherited from hdps::gui::WidgetAction
virtual void makePublic (bool recursive=true) final
 
virtual void connectToPublicAction (WidgetAction *publicAction, bool recursive)
 
virtual void connectToPublicActionByName (const QString &publicActionName) final
 
virtual void disconnectFromPublicAction (bool recursive)
 
virtual QWidget * getWidget (QWidget *parent, const std::int32_t &widgetFlags)
 

Additional Inherited Members

- Public Types inherited from hdps::DatasetImpl
enum class  StorageType { Owner , Proxy }
 
enum  LinkedDataFlag { Send = 0x00001 , Receive = 0x00002 , SendReceive = Send | Receive }
 
- Public Types inherited from hdps::gui::WidgetAction
enum class  Scope { Private , Public }
 
enum class  HighlightOption { None , Moderate , Strong }
 
enum class  ConfigurationFlag {
  VisibleInMenu = 0x00001 , InternalUseOnly = 0x00002 , NoLabelInGroup = 0x00004 , ForceCollapsedInGroup = 0x00008 ,
  ForceExpandedInGroup = 0x00010 , User = 0x00100 , Default = 0
}
 
enum  ConnectionContextFlag { Api = 0x00008 , Gui = 0x00010 , ApiAndGui = Api | Gui }
 ‍** Describes the connection context options *‍/ More...
 
enum class  ConnectionPermissionFlag {
  None = 0x00000 , PublishViaApi = 0x00001 , PublishViaGui = 0x00002 , PublishViaApiAndGui = PublishViaApi | PublishViaGui ,
  ConnectViaApi = 0x00008 , ConnectViaGui = 0x00010 , ConnectViaApiAndGui = ConnectViaApi | ConnectViaGui , DisconnectViaApi = 0x00040 ,
  DisconnectViaGui = 0x00080 , DisconnectViaApiAndGui = DisconnectViaApi | DisconnectViaGui , ForceNone = 0x00100 , All = PublishViaApiAndGui | ConnectViaApiAndGui | DisconnectViaApiAndGui ,
  Default = All
}
 
- Public Types inherited from hdps::util::Serializable
enum class  State { Idle , Reading , Writing }
 
- Signals inherited from hdps::gui::WidgetAction
void idChanged (const QString &id)
 
void sortIndexChanged (std::int32_t sortIndex)
 
void stretchChanged (std::int32_t stretch)
 
void forceHiddenChanged (bool forceHidden)
 
void forceDisabledChanged (bool forceDisabled)
 
void highlightingChanged (const HighlightOption &highlightOption)
 
void isPublishedChanged (const bool &isPublished)
 
void isConnectedChanged (const bool &isConnected)
 
void actionConnected (WidgetAction *action)
 
void actionDisconnected (WidgetAction *action)
 
void connectionPermissionsChanged (std::int32_t connectionPermissions)
 
void configurationFlagToggled (const ConfigurationFlag &configurationFlag, bool set)
 
void configurationChanged (std::int32_t configuration)
 
void scopeChanged (const Scope &scope)
 
void textChanged (const QString &text)
 
void locationChanged (const QString &location)
 
- Static Public Attributes inherited from hdps::gui::WidgetAction
static QMap< Scope, QString > scopeNames
 
- Static Protected Member Functions inherited from hdps::util::Serializable
static void fromVariantMap (Serializable *serializable, const QVariantMap &variantMap)
 
static void fromVariantMap (Serializable &serializable, const QVariantMap &variantMap, const QString &key)
 
static QVariantMap toVariantMap (const Serializable *serializable)
 
static void insertIntoVariantMap (const Serializable &serializable, QVariantMap &variantMap, const QString &key)
 
static void insertIntoVariantMap (const Serializable &serializable, QVariantMap &variantMap)
 
- Protected Attributes inherited from hdps::DatasetImpl
CoreInterface_core
 

Detailed Description

Images dataset class

Class for dealing with high-dimensional image data

Author
Thomas Kroes

Constructor & Destructor Documentation

◆ Images()

Images::Images ( hdps::CoreInterface core,
QString  dataName,
const QString &  guid = "" 
)

Constructor

Parameters
corePointer to core interface
dataNameName of the dataset
guidGlobally unique dataset identifier (use only for deserialization)

Member Function Documentation

◆ addImageDataset()

std::tuple< hdps::Dataset< hdps::DatasetImpl >, hdps::Dataset< Images > > Images::addImageDataset ( QString  datasetGuiName,
const hdps::Dataset< hdps::DatasetImpl > &  parentDataSet = hdps::Dataset<hdps::DatasetImpl>(),
QString  pluginKind = "Points" 
)
static

Creates a dataset and derives an image dataset from it:

 auto [pointDataset, imageDatset] = Images::addImageDataset("My Image", parent);
 auto [clusterDataset, imageDatset] = Images::addImageDataset("My Image", parent, "Cluster");

This function sends the core event notifications "notifyDatasetAdded" for both pointDataset and imageDatset

Parameters
datasetGuiNameName of the added dataset in the GUI
parentDataSetSmart pointer to the parent dataset in the data hierarchy (root if smart pointer is not valid)
pluginKindEither "Points" (default) or "Cluster" to define the data type of the raw value data set

◆ canSelect()

bool Images::canSelect ( ) const
overridevirtual

Determines whether items can be selected

Implements hdps::DatasetImpl.

◆ canSelectAll()

bool Images::canSelectAll ( ) const
overridevirtual

Determines whether all items can be selected

Implements hdps::DatasetImpl.

◆ canSelectInvert()

bool Images::canSelectInvert ( ) const
overridevirtual

Determines whether the item selection can be inverted (more than one)

Implements hdps::DatasetImpl.

◆ canSelectNone()

bool Images::canSelectNone ( ) const
overridevirtual

Determines whether there are any items which can be deselected

Implements hdps::DatasetImpl.

◆ computeMaskData()

void Images::computeMaskData ( )
protected

Computes and caches the mask data

◆ copy()

Dataset< DatasetImpl > Images::copy ( ) const
overridevirtual

Obtain a copy of this dataset

Implements hdps::DatasetImpl.

◆ createSubsetFromSelection()

Dataset< DatasetImpl > Images::createSubsetFromSelection ( const QString &  guiName,
const hdps::Dataset< hdps::DatasetImpl > &  parentDataSet = hdps::Dataset<hdps::DatasetImpl>(),
const bool &  visible = true 
) const
overridevirtual

Create subset from the current selection and specify where the subset will be placed in the data hierarchy

Parameters
guiNameName of the subset in the GUI
parentDataSetSmart pointer to parent dataset in the data hierarchy (default is below the set)
visibleWhether the subset will be visible in the UI
Returns
Smart pointer to the created subset

Implements hdps::DatasetImpl.

◆ fromVariantMap()

void Images::fromVariantMap ( const QVariantMap &  variantMap)
overridevirtual

Load widget action from variant

Parameters
Variantrepresentation of the widget action

Reimplemented from hdps::DatasetImpl.

◆ getIcon()

QIcon Images::getIcon ( const QColor &  color = Qt::black) const
overridevirtual

Get plugin icon

Parameters
colorIcon color for flat (font) icons
Returns
Icon

Implements hdps::DatasetImpl.

◆ getImageFilePaths()

QStringList Images::getImageFilePaths ( ) const

Get the image file paths

◆ getImageSize()

QSize Images::getImageSize ( ) const

Gets the size of the images

◆ getMaskData()

void Images::getMaskData ( std::vector< std::uint8_t > &  maskData)

Get mask image data (for subsets)

Parameters
maskDataMask scalar data

◆ getNumberOfComponentsPerPixel()

std::uint32_t Images::getNumberOfComponentsPerPixel ( ) const

Gets the number of components per pixel

◆ getNumberOfImages()

std::uint32_t Images::getNumberOfImages ( ) const

Gets the number of images in this dataset

◆ getNumberOfPixels()

std::uint32_t Images::getNumberOfPixels ( ) const

Returns the number of pixels in total

◆ getPixelCoordinateFromPixelIndex()

QPoint Images::getPixelCoordinateFromPixelIndex ( const std::int32_t &  pixelIndex) const
protected

Get pixel coordinate from pixel index

Parameters
pixelIndexPixel index

◆ getPixelIndexFromPixelCoordinate()

std::int32_t Images::getPixelIndexFromPixelCoordinate ( const QPoint &  pixelCoordinate) const
protected

Get pixel index from pixel coordinate

Parameters
pixelCoordinatePixel coordinate
Returns
Pixel index

◆ getRectangle()

QRect Images::getRectangle ( ) const

Get the rectangle of the entire image

◆ getScalarData()

void Images::getScalarData ( const std::uint32_t &  dimensionIndex,
QVector< float > &  scalarData,
QPair< float, float > &  scalarDataRange 
)

Get scalar image data

Parameters
dimensionIndexDimension index
scalarDataScalar data for the specified dimension
scalarDataRangeScalar data range

◆ getScalarDataForImageSequence()

void Images::getScalarDataForImageSequence ( const std::uint32_t &  dimensionIndex,
QVector< float > &  scalarData,
QPair< float, float > &  scalarDataRange 
)
protected

Get scalar data for image sequence

Parameters
dimensionIndexDimension index
scalarDataScalar data for the specified dimension
scalarDataRangeScalar data range

◆ getScalarDataForImageStack()

void Images::getScalarDataForImageStack ( const std::uint32_t &  dimensionIndex,
QVector< float > &  scalarData,
QPair< float, float > &  scalarDataRange 
)
protected

Get scalar data for image stack

Parameters
dimensionIndexDimension index
scalarDataScalar data for the specified dimension
scalarDataRangeScalar data range

◆ getSelectionData()

void Images::getSelectionData ( std::vector< std::uint8_t > &  selectionImageData,
std::vector< std::uint32_t > &  selectedIndices,
QRect &  selectionBoundaries 
)

Get selection data

Parameters
selectionImageDataImage data for the selection
selectedIndicesSelected pixel indices
selectionBoundariesBoundaries of the selection (in image coordinates)

◆ getSelectionIndices()

std::vector< std::uint32_t > & Images::getSelectionIndices ( )
overridevirtual

Get selection indices

Returns
Selection indices

Implements hdps::DatasetImpl.

◆ getType()

ImageData::Type Images::getType ( ) const

Gets the image collection type e.g. stack or sequence

◆ getVisibleRectangle()

QRect Images::getVisibleRectangle ( ) const

Get the rectangle which bounds the visible pixels

◆ init()

void Images::init ( )
overridevirtual

Initializes the dataset

Reimplemented from hdps::DatasetImpl.

◆ noChannelsPerPixel()

std::uint32_t Images::noChannelsPerPixel ( )
static

Returns the number of color channels per pixel

◆ selectAll()

void Images::selectAll ( )
overridevirtual

Select all items

Implements hdps::DatasetImpl.

◆ selectInvert()

void Images::selectInvert ( )
overridevirtual

Invert item selection

Implements hdps::DatasetImpl.

◆ selectNone()

void Images::selectNone ( )
overridevirtual

Deselect all items

Implements hdps::DatasetImpl.

◆ setImageFilePaths()

void Images::setImageFilePaths ( const QStringList &  imageFilePaths)

Sets the image file paths

Parameters
imageFilePathsImage file paths

◆ setImageSize()

void Images::setImageSize ( const QSize &  imageSize)

Set the image size

Parameters
imageSizeSize of the image(s)

◆ setNumberOfComponentsPerPixel()

void Images::setNumberOfComponentsPerPixel ( const std::uint32_t &  numberOfComponentsPerPixel)

Sets the number of components per pixel

Parameters
numberOfComponentsPerPixelNumber of components per pixel

◆ setNumberOfImages()

void Images::setNumberOfImages ( const std::uint32_t &  numberOfImages)

Sets the number of images

Parameters
numberOfImagesNumber of images

◆ setSelectionIndices()

void Images::setSelectionIndices ( const std::vector< std::uint32_t > &  indices)
overridevirtual

Select by indices

Parameters
indicesSelection indices

Implements hdps::DatasetImpl.

◆ setType()

void Images::setType ( const ImageData::Type type)

Sets the image collection type e.g. stack or sequence

Parameters
typeImage collection type

◆ toVariantMap()

QVariantMap Images::toVariantMap ( ) const
overridevirtual

Save widget action to variant

Returns
Variant representation of the widget action

Reimplemented from hdps::DatasetImpl.


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