84: m_qListDigPoint(p_FiffDigPointSet.m_qListDigPoint)
91: m_qListDigPoint(pointList)
106 throw std::runtime_error(
"Could not read the FiffDigPointSet");
109 qInfo(
"[FiffDigPointSet::FiffDigPointSet] %i digitizer Points read from file.", this->
size());
125 bool open_here =
false;
127 if (!p_pStream->device()->isOpen()) {
128 QString t_sFileName = p_pStream->streamName();
130 if(!p_pStream->open())
133 qInfo(
"Opening header data %s...\n",t_sFileName.toUtf8().constData());
149 QList<FiffDirNode::SPtr> isotrak = p_pStream->dirtree()->dir_tree_find(
FIFFB_ISOTRAK);
155 if (isotrak.size() == 1)
157 for (k = 0; k < isotrak[0]->nent(); ++k)
159 kind = isotrak[0]->dir[k]->kind;
160 pos = isotrak[0]->dir[k]->pos;
163 p_pStream->read_tag(t_pTag, pos);
164 p_Dig.m_qListDigPoint.append(t_pTag->toDigPoint());
170 p_pStream->read_tag(t_pTag, pos);
171 qDebug() <<
"NEEDS To BE DEBBUGED: FIFF_MNE_COORD_FRAME" << t_pTag->getType();
172 coord_frame = *t_pTag->toInt();
176 p_pStream->read_tag(t_pTag, pos);
177 qDebug() <<
"NEEDS To BE DEBBUGED: FIFF_COORD_TRANS" << t_pTag->getType();
178 dig_trans = t_pTag->toCoordTrans();
183 for(k = 0; k < p_Dig.
size(); ++k)
185 p_Dig[k].coord_frame = coord_frame;
208 qInfo(
"Write Digitizer Points in %s...\n", t_pStream->streamName().toUtf8().constData());
210 t_pStream->end_file();
221 for(qint32 h = 0; h < m_qListDigPoint.size(); ++h)
226 qInfo(
"\t%lld digitizer points written\n", m_qListDigPoint.size());
236 if (idx>=m_qListDigPoint.length())
238 qWarning(
"Warning: Required DigPoint doesn't exist! Returning DigPoint '0'.");
241 return m_qListDigPoint[idx];
248 if (idx >= m_qListDigPoint.length())
250 qWarning(
"Warning: Required DigPoint doesn't exist! Returning DigPoint '0'.");
253 return m_qListDigPoint[idx];
262 for(
int i = 0; i < m_qListDigPoint.size(); ++i) {
263 if(includeTypes.contains(m_qListDigPoint[i].kind)) {
264 pickedSet << m_qListDigPoint[i];
275 this->m_qListDigPoint.append(dig);
283 this->m_qListDigPoint.append(*dig);
292 for(
int i = 0; i < m_qListDigPoint.size(); ++i) {
293 tempvec(0) = m_qListDigPoint.at(i).r[0];
294 tempvec(1) = m_qListDigPoint.at(i).r[1];
295 tempvec(2) = m_qListDigPoint.at(i).r[2];
298 tempvec = coordTrans.
invtrans * tempvec;
300 tempvec = coordTrans.
trans * tempvec;
302 m_qListDigPoint[i].r[0] = tempvec(0);
303 m_qListDigPoint[i].r[1] = tempvec(1);
304 m_qListDigPoint[i].r[2] = tempvec(2);
312 return m_qListDigPoint;
Old fiff_type declarations - replace them.
FiffDigPointSet class declaration.
FiffDirNode class declaration, which provides fiff dir tree processing methods.
FiffTag class declaration, which provides fiff tag I/O and processing methods.
#define FIFF_MNE_COORD_FRAME
FiffDigPoint class declaration.
FIFF file I/O and data structures (raw, epochs, evoked, covariance, forward).
Coordinate transformation description.
Eigen::Matrix< float, 4, 4, Eigen::DontAlign > trans
Eigen::Matrix< float, 4, 4, Eigen::DontAlign > invtrans
Digitization point description.
const FiffDigPoint & operator[](qint32 idx) const
FiffDigPointSet & operator<<(const FiffDigPoint &dig)
FiffDigPointSet pickTypes(QList< int > includeTypes) const
void applyTransform(const FiffCoordTrans &coordTrans, bool bApplyInverse=false)
void write(QIODevice &p_IODevice)
void writeToStream(FiffStream *p_pStream)
static bool readFromStream(FiffStream::SPtr &p_Stream, FiffDigPointSet &p_Dig)
QList< FiffDigPoint > getList()
fiff_long_t start_block(fiff_int_t kind)
QSharedPointer< FiffStream > SPtr
fiff_long_t write_dig_point(const FiffDigPoint &dig)
static FiffStream::SPtr start_file(QIODevice &p_IODevice)
fiff_long_t end_block(fiff_int_t kind, fiff_int_t next=FIFFV_NEXT_SEQ)
std::unique_ptr< FiffTag > UPtr