Skip to main content

FiffDigitizerData

Namespace: FIFFLIB  ·  Library: FIFF Library

#include <fiff/fiff_digitizer_data.h>

class FIFFLIB::FiffDigitizerData

Registration-ready digitization data: dig points, device→head transform and HPI fit metadata.

Pairs a FiffDigPointSet with the FiffCoordTrans that maps it into the head frame, plus optional HPI goodness-of-fit values. Used by the coregistration GUI and by every downstream tool that needs a single self-contained record describing where a subject's head sat in the helmet for one measurement.

src/examples/ex_fiff_api/main.cpp
FiffDigitizerData digData;
digData.points = info.dig;
digData.npoint = info.dig.size();
digData.coord_frame = FIFFV_COORD_HEAD;
digData.head_mri_t_adj = std::make_unique<FiffCoordTrans>(headToMri);
digData.pickCardinalFiducials(); // LPA, nasion and RPA moved into MRI coordinates

Public Methods​

FiffDigitizerData()​

Constructs the FiffDigitizerData.


FiffDigitizerData(p_FiffDigitizerData)​

Copy constructor.

Parameters:

  • p_FiffDigitizerData : const FiffDigitizerData & Digitization point descriptor which should be copied.

operator=(rhs)​

Copy assignment operator (deep-copies unique_ptr members).

Parameters:

Returns:


FiffDigitizerData(p_IODevice)​

Constructs a FiffDigitizerData by reading from an IO device.

Parameters:

  • p_IODevice : QIODevice & Input device to read data from.

~FiffDigitizerData()​

Destroys the digitization point description.


print()​

Prints class contents.


nfids()​

Returns the number of MRI fiducial points (cardinal points transformed into MRI coordinates via head_mri_t_adj).

Kept as nfids() for API compatibility with the original MNE C code (digitizerDataRec.nfids in mne_analyze/analyze_types.h).

Returns:

  • int — Number of fiducials in mri_fids.

pickCardinalFiducials()​

Extracts cardinal digitizer points (LPA, Nasion, RPA) from the digitizer point list and transforms them into MRI coordinates using head_mri_t_adj, populating the mri_fids list.

This is a port of the original C function update_fids_from_dig_data from mne_analyze/adjust_alignment.c.


Example​

Used in examples​

ex_fiff_api​

FIFF library: measurement info, channels, digitizer, transforms, projectors, covariance, events,.

src/examples/ex_fiff_api/main.cpp, line 240
FiffDigitizerData digData;
digData.points = info.dig;
digData.npoint = info.dig.size();
digData.coord_frame = FIFFV_COORD_HEAD;
digData.head_mri_t_adj = std::make_unique<FiffCoordTrans>(headToMri);
digData.pickCardinalFiducials(); // LPA, nasion and RPA moved into MRI coordinates
// mne: apply_trans(invert_transform(mri_head_t), dig[0]["r"]) = (-0.06925742, 0.01058946, -0.02500086)
ok &= expect(digData.nfids() == 3 && (Map<Vector3f>(digData.mri_fids[0].r) - Vector3f(-0.06925742f, 0.01058946f, -0.02500086f)).norm() < 1e-6f, "FiffDigitizerData moves the 3 cardinal fiducials into MRI coordinates");

ex_fiff_sniffer​

Read a FIFF file from a memory buffer with a chosen byte order and summarise its contents.

src/examples/ex_fiff_sniffer/main.cpp, line 136
FIFFLIB::FiffDigitizerData digData;

Authors of this file​