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.
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:
- rhs : const FiffDigitizerData & Digitization point descriptor to assign from.
Returns:
- FiffDigitizerData & — Reference to this object.
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
- Full source:
src/examples/ex_fiff_api/main.cpp - Build target:
ex_fiff_api(runs under CTest) - Data: mne-cpp-test-data
Used in examples
ex_fiff_api
FIFF library: measurement info, channels, digitizer, transforms, projectors, covariance, events,.
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.
FIFFLIB::FiffDigitizerData digData;
Authors of this file
- Christoph Dinh <christoph.dinh@mne-cpp.org>