Dynamic Neural Field Composer 0.0.0
A C++20 library and interactive application for building and simulating Dynamic Neural Field (DNF) architectures.
Loading...
Searching...
No Matches
Public Member Functions | List of all members
dnf_composer::element::Resize2D Class Referencefinal

Resamples a 2D input field of size (Nx x Ny) to this element's output size (Mx x My). More...

#include <resize_2d.h>

Inheritance diagram for dnf_composer::element::Resize2D:
Collaboration diagram for dnf_composer::element::Resize2D:

Public Member Functions

void addInput (const std::shared_ptr< Element > &inputElement, const std::string &inputComponent="output") override
 Register inputElement as an upstream source for this element.
 
void changeInputDimensions (const ElementDimensions &newInputDimensions)
 Resize the input field dimensions and rebuild the input buffer. Connections are not removed automatically — call removeInputs()/removeOutputs() first if needed (the UI does this before calling).
 
std::shared_ptr< Elementclone () const override
 
Resize2DParameters getParameters () const
 
void init () override
 Initialize the element (called once before the simulation loop).
 
 Resize2D (const ElementCommonParameters &elementCommonParameters, const Resize2DParameters &parameters)
 Construct a Resize2D element.
 
void setParameters (const Resize2DParameters &parameters)
 
void step (double t, double deltaT) override
 Advance the element by one time step.
 
std::string toString () const override
 
- Public Member Functions inherited from dnf_composer::element::Element
void buildInputCache ()
 Cache raw pointers to input component data. Call after all element init()s complete.
 
virtual void changeDimensions (const ElementDimensions &newDimensions)
 Resize all components to newDimensions and re-initialize.
 
void close ()
 
 Element (const ElementCommonParameters &parameters)
 Construct an element with the given common parameters.
 
std::vector< double > getComponent (const std::string &componentName)
 Return a copy of the named component vector.
 
std::vector< std::string > getComponentList () const
 
std::vector< double > * getComponentPtr (const std::string &componentName)
 
const std::unordered_map< std::string, std::vector< double > > * getComponents () const
 Return a read-only pointer to the full components map.
 
ElementCommonParameters getElementCommonParameters () const
 
std::vector< std::shared_ptr< Element > > getInputs ()
 
std::unordered_map< std::shared_ptr< Element >, std::string > getInputsAndComponents ()
 Return all inputs mapped to the component name they expose.
 
ElementLabel getLabel () const
 
int getMaxSpatialDimension () const
 
std::vector< std::shared_ptr< Element > > getOutputs ()
 
int getSize () const
 Return the number of spatial samples (size = round(x_max / d_x)).
 
double getStepSize () const
 Return the spatial resolution (d_x).
 
int getUniqueIdentifier () const
 
std::string getUniqueName () const
 
bool hasInput () const
 
bool hasInput (const std::string &inputElementName, const std::string &inputComponent)
 
bool hasInput (int inputElementId, const std::string &inputComponent)
 
bool hasOutput () const
 
bool hasOutput (const std::string &outputElementName, const std::string &outputComponent)
 
bool hasOutput (int outputElementId, const std::string &outputComponent)
 
void print () const
 
void removeInput (const std::string &inputElementId)
 
void removeInput (int uniqueId)
 
void removeInputs ()
 
void removeOutput (const std::string &outputElementId)
 Deregister this element as an input of outputElementId.
 
void removeOutput (int uniqueId)
 Deregister this element as an input of the element with uniqueId.
 
void removeOutputs ()
 
void setUniqueName (const std::string &name)
 
void updateInput ()
 Pull data from all registered input elements into this element's components.
 
virtual ~Element ()=default
 

Additional Inherited Members

- Protected Attributes inherited from dnf_composer::element::Element
ElementCommonParameters commonParameters
 Name, label, and spatial dimensions.
 
std::unordered_map< std::string, std::vector< double > > components
 Named data arrays (e.g. "output").
 
std::unordered_map< std::shared_ptr< Element >, std::string > inputs
 Upstream elements and the component they expose.
 
std::unordered_map< std::shared_ptr< Element >, std::string > outputs
 Downstream elements that read this element's output.
 

Detailed Description

Resamples a 2D input field of size (Nx x Ny) to this element's output size (Mx x My).

On each step(), Resize2D reads its input field's "output" component (a y-major flattened Nx x Ny matrix) and resamples it to its own output size (Mx x My) using the configured InterpolationMethod. Resampling is performed separably: each row is resampled along x, then each column along y, reusing the 1D resampling helpers in tools::math. As with Resize, the input and output sizes differ, so addInput() is overridden to size the "input" component to the source's size.

Constructor & Destructor Documentation

◆ Resize2D()

dnf_composer::element::Resize2D::Resize2D ( const ElementCommonParameters elementCommonParameters,
const Resize2DParameters parameters 
)

Construct a Resize2D element.

Parameters
elementCommonParametersName, label, and output dimensions (Mx x My).
parametersResize-specific parameters (method, input dimensions).

Member Function Documentation

◆ addInput()

void dnf_composer::element::Resize2D::addInput ( const std::shared_ptr< Element > &  inputElement,
const std::string &  inputComponent = "output" 
)
overridevirtual

Register inputElement as an upstream source for this element.

Parameters
inputElementThe element whose output will be read.
inputComponentWhich component of inputElement to read (default: "output").

Reimplemented from dnf_composer::element::Element.

Here is the call graph for this function:

◆ changeInputDimensions()

void dnf_composer::element::Resize2D::changeInputDimensions ( const ElementDimensions newInputDimensions)

Resize the input field dimensions and rebuild the input buffer. Connections are not removed automatically — call removeInputs()/removeOutputs() first if needed (the UI does this before calling).

Here is the call graph for this function:

◆ clone()

std::shared_ptr< Element > dnf_composer::element::Resize2D::clone ( ) const
overridevirtual

◆ getParameters()

Resize2DParameters dnf_composer::element::Resize2D::getParameters ( ) const

◆ init()

void dnf_composer::element::Resize2D::init ( )
overridevirtual

Initialize the element (called once before the simulation loop).

Implements dnf_composer::element::Element.

Here is the caller graph for this function:

◆ setParameters()

void dnf_composer::element::Resize2D::setParameters ( const Resize2DParameters parameters)
Here is the call graph for this function:

◆ step()

void dnf_composer::element::Resize2D::step ( double  t,
double  deltaT 
)
overridevirtual

Advance the element by one time step.

Parameters
tCurrent simulation time.
deltaTIntegration step size.

Implements dnf_composer::element::Element.

Here is the call graph for this function:

◆ toString()

std::string dnf_composer::element::Resize2D::toString ( ) const
overridevirtual

Implements dnf_composer::element::Element.

Here is the call graph for this function:

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