v2.0.0
Loading...
Searching...
No Matches
BrainSurface Class Reference

BrainSurface class. More...

#include <brainsurface.h>

Classes

struct  GpuBuffers

Public Types

enum  TissueType {
  TissueUnknown = 0 , TissueBrain = 1 , TissueSkin = 2 , TissueOuterSkull = 3 ,
  TissueInnerSkull = 4
}
using VisualizationMode = ::VisualizationMode

Public Member Functions

 BrainSurface ()
 ~BrainSurface ()
void setVisible (bool visible)
bool isVisible () const
void setHemi (int hemi)
void setTissueType (TissueType type)
TissueType tissueType () const
int hemi () const
void fromSurface (const FSLIB::Surface &surf)
void fromBemSurface (const MNELIB::MNEBemSurface &surf, const QColor &color=Qt::white)
void createFromData (const Eigen::MatrixX3f &vertices, const Eigen::MatrixX3i &triangles, const QColor &color)
void createFromData (const Eigen::MatrixX3f &vertices, const Eigen::MatrixX3f &normals, const Eigen::MatrixX3i &triangles, const QColor &color)
bool loadAnnotation (const QString &path)
void addAnnotation (const FSLIB::Annotation &annotation)
void setVisualizationMode (VisualizationMode mode)
void applySourceEstimateColors (const QVector< uint32_t > &colors)
void updateBuffers (QRhi *rhi, QRhiResourceUpdateBatch *u)
QRhiBuffer * vertexBuffer () const
QRhiBuffer * indexBuffer () const
uint32_t indexCount () const
uint32_t vertexCount () const
Eigen::MatrixX3f vertexPositions () const
Eigen::MatrixX3f vertexNormals () const
QVector< uint32_t > triangleIndices () const
float minX () const
float maxX () const
void boundingBox (QVector3D &min, QVector3D &max) const
bool intersects (const QVector3D &rayOrigin, const QVector3D &rayDir, float &dist, int &vertexIdx) const
QString getAnnotationLabel (int vertexIdx) const
int getAnnotationLabelId (int vertexIdx) const
void setSelectedRegion (int regionId)
void translateX (float offset)
void transform (const QMatrix4x4 &m)
void applyTransform (const QMatrix4x4 &m)
QVector< QVector< int > > computeNeighbors () const
Eigen::MatrixX3f verticesAsMatrix () const
void setUseDefaultColor (bool useDefault)
void setSelected (bool selected)
bool isSelected () const
void setSelectedVertexRange (int start, int count)

Static Public Attributes

static constexpr VisualizationMode ModeSurface = ::ModeSurface
static constexpr VisualizationMode ModeAnnotation = ::ModeAnnotation
static constexpr VisualizationMode ModeScientific = ::ModeScientific
static constexpr VisualizationMode ModeSourceEstimate = ::ModeSourceEstimate

Detailed Description

BrainSurface class.

BrainSurface manages the geometry and visual properties of a single brain mesh.

Definition at line 78 of file brainsurface.h.

Member Typedef Documentation

◆ VisualizationMode

Member Enumeration Documentation

◆ TissueType

Enumerator
TissueUnknown 
TissueBrain 
TissueSkin 
TissueOuterSkull 
TissueInnerSkull 

Definition at line 101 of file brainsurface.h.

Constructor & Destructor Documentation

◆ BrainSurface()

BrainSurface::BrainSurface ( )

Default Constructor

Definition at line 62 of file brainsurface.cpp.

◆ ~BrainSurface()

BrainSurface::~BrainSurface ( )
default

Destructor

Member Function Documentation

◆ addAnnotation()

void BrainSurface::addAnnotation ( const FSLIB::Annotation & annotation)

Add annotation data directly.

Parameters
[in]annotationInput annotation data.

Definition at line 254 of file brainsurface.cpp.

◆ applySourceEstimateColors()

void BrainSurface::applySourceEstimateColors ( const QVector< uint32_t > & colors)

Apply source estimate colors to vertices.

Parameters
[in]colorsVector of packed ABGR colors, one per vertex.

Definition at line 289 of file brainsurface.cpp.

◆ applyTransform()

void BrainSurface::applyTransform ( const QMatrix4x4 & m)

Apply a transformation to the surface starting from the original data. Note: This prevents transformation accumulation.

Parameters
[in]mTransformation matrix.

Definition at line 495 of file brainsurface.cpp.

◆ boundingBox()

void BrainSurface::boundingBox ( QVector3D & min,
QVector3D & max ) const

Get bounding box of the surface.

Parameters
[out]minMinimum coordinates.
[out]maxMaximum coordinates.

Definition at line 569 of file brainsurface.cpp.

◆ computeNeighbors()

QVector< QVector< int > > BrainSurface::computeNeighbors ( ) const

Compute neighbor vertices from triangle connectivity. Required for surface-constrained distance calculations.

Returns
Vector of neighbor indices for each vertex.

Definition at line 531 of file brainsurface.cpp.

◆ createFromData() [1/2]

void BrainSurface::createFromData ( const Eigen::MatrixX3f & vertices,
const Eigen::MatrixX3f & normals,
const Eigen::MatrixX3i & triangles,
const QColor & color )

Create surface from raw vertex, normal and triangle data.

Parameters
[in]verticesNx3 matrix of vertex positions.
[in]normalsNx3 matrix of vertex normals.
[in]trianglesMx3 matrix of triangle indices.
[in]colorSurface color.

Definition at line 179 of file brainsurface.cpp.

◆ createFromData() [2/2]

void BrainSurface::createFromData ( const Eigen::MatrixX3f & vertices,
const Eigen::MatrixX3i & triangles,
const QColor & color )

Create surface from raw vertex and triangle data.

Parameters
[in]verticesNx3 matrix of vertex positions.
[in]trianglesMx3 matrix of triangle indices.
[in]colorSurface color.

Definition at line 164 of file brainsurface.cpp.

◆ fromBemSurface()

void BrainSurface::fromBemSurface ( const MNELIB::MNEBemSurface & surf,
const QColor & color = Qt::white )

Load geometry from a MNE BEM surface.

Parameters
[in]surfInput BEM surface.
[in]colorBase color for the surface.

Definition at line 123 of file brainsurface.cpp.

◆ fromSurface()

void BrainSurface::fromSurface ( const FSLIB::Surface & surf)

Load geometry from a FreeSurfer surface.

Parameters
[in]surfInput FreeSurfer surface.

Definition at line 78 of file brainsurface.cpp.

◆ getAnnotationLabel()

QString BrainSurface::getAnnotationLabel ( int vertexIdx) const

Get the annotation label name for a given vertex.

Parameters
[in]vertexIdxIndex of the vertex.
Returns
Label name.

Definition at line 722 of file brainsurface.cpp.

◆ getAnnotationLabelId()

int BrainSurface::getAnnotationLabelId ( int vertexIdx) const

Definition at line 760 of file brainsurface.cpp.

◆ hemi()

int BrainSurface::hemi ( ) const
inline

Get the hemisphere index.

Returns
Hemisphere index (0=LH, 1=RH).

Definition at line 155 of file brainsurface.h.

◆ indexBuffer()

QRhiBuffer * BrainSurface::indexBuffer ( ) const

Definition at line 74 of file brainsurface.cpp.

◆ indexCount()

uint32_t BrainSurface::indexCount ( ) const
inline

Definition at line 239 of file brainsurface.h.

◆ intersects()

bool BrainSurface::intersects ( const QVector3D & rayOrigin,
const QVector3D & rayDir,
float & dist,
int & vertexIdx ) const

Test ray intersection with this surface.

Parameters
[in]rayOriginRay origin in world/local space (object is assumed at 0,0,0 usually unless transformed externally). Note: The BrainSurface vertices are typically already transformed (e.g. by View3D model matrix logic? No, BrainView applies matrix in shader. The vertices here are raw. So ray must be transformed to local space OR vertices transformed to world.
[in]rayDirRay direction (normalized).
[out]distDistance to intersection.
Returns
True if intersected.

Definition at line 601 of file brainsurface.cpp.

◆ isSelected()

bool BrainSurface::isSelected ( ) const
inline

Definition at line 364 of file brainsurface.h.

◆ isVisible()

bool BrainSurface::isVisible ( ) const
inline

Check if the surface is visible.

Returns
True if visible.

Definition at line 123 of file brainsurface.h.

◆ loadAnnotation()

bool BrainSurface::loadAnnotation ( const QString & path)

Load annotation data from file.

Parameters
[in]pathPath to the .annot file.
Returns
True if successful.

Definition at line 242 of file brainsurface.cpp.

◆ maxX()

float BrainSurface::maxX ( ) const

Get maximum X coordinate.

Returns
Maximum X value.

Definition at line 442 of file brainsurface.cpp.

◆ minX()

float BrainSurface::minX ( ) const

Get minimum X coordinate.

Returns
Minimum X value.

Definition at line 433 of file brainsurface.cpp.

◆ setHemi()

void BrainSurface::setHemi ( int hemi)
inline

Set the hemisphere index.

Parameters
[in]hemi0 for Left, 1 for Right.

Definition at line 131 of file brainsurface.h.

◆ setSelected()

void BrainSurface::setSelected ( bool selected)

Definition at line 785 of file brainsurface.cpp.

◆ setSelectedRegion()

void BrainSurface::setSelectedRegion ( int regionId)

Set the selected region for highlighting.

Parameters
[in]regionIdThe ID of the region to highlight.

Definition at line 776 of file brainsurface.cpp.

◆ setSelectedVertexRange()

void BrainSurface::setSelectedVertexRange ( int start,
int count )

Highlight a contiguous range of vertices (e.g. a single sphere in a batched mesh). Pass start=-1 to clear the vertex range highlight.

Parameters
[in]startFirst vertex index to highlight (-1 to clear).
[in]countNumber of vertices to highlight.

Definition at line 794 of file brainsurface.cpp.

◆ setTissueType()

void BrainSurface::setTissueType ( TissueType type)
inline

Set the tissue type (Brain, Skin, Skull, etc.).

Parameters
[in]typeTissueType enum value.

Definition at line 139 of file brainsurface.h.

◆ setUseDefaultColor()

void BrainSurface::setUseDefaultColor ( bool useDefault)

Set/Get whether to use the default surface color.

Definition at line 304 of file brainsurface.cpp.

◆ setVisible()

void BrainSurface::setVisible ( bool visible)

Set the visibility of the surface.

Parameters
[in]visibleTrue if visible.

Definition at line 265 of file brainsurface.cpp.

◆ setVisualizationMode()

void BrainSurface::setVisualizationMode ( VisualizationMode mode)

Set the visualization mode (Surface, Annotation, Scientific).

Parameters
[in]modeVisualizationMode enum.

Definition at line 272 of file brainsurface.cpp.

◆ tissueType()

TissueType BrainSurface::tissueType ( ) const
inline

Get the tissue type.

Returns
TissueType enum value.

Definition at line 147 of file brainsurface.h.

◆ transform()

void BrainSurface::transform ( const QMatrix4x4 & m)

Apply a generic 4x4 transformation matrix to all vertices and normals.

Parameters
[in]mTransformation matrix.

Definition at line 462 of file brainsurface.cpp.

◆ translateX()

void BrainSurface::translateX ( float offset)

Translate all vertices along the X axis.

Parameters
[in]offsetAmount to translate.

Definition at line 451 of file brainsurface.cpp.

◆ triangleIndices()

QVector< uint32_t > BrainSurface::triangleIndices ( ) const
inline

Get the triangle index buffer.

Definition at line 258 of file brainsurface.h.

◆ updateBuffers()

void BrainSurface::updateBuffers ( QRhi * rhi,
QRhiResourceUpdateBatch * u )

Update graphics buffers (vertex/index) on the GPU.

Parameters
[in]rhiPointer to QRhi instance.
[in]uResource update batch.

Definition at line 508 of file brainsurface.cpp.

◆ vertexBuffer()

QRhiBuffer * BrainSurface::vertexBuffer ( ) const

Definition at line 73 of file brainsurface.cpp.

◆ vertexCount()

uint32_t BrainSurface::vertexCount ( ) const
inline

Definition at line 240 of file brainsurface.h.

◆ vertexNormals()

Eigen::MatrixX3f BrainSurface::vertexNormals ( ) const

Get a copy of the current vertex normals.

Definition at line 229 of file brainsurface.cpp.

◆ vertexPositions()

Eigen::MatrixX3f BrainSurface::vertexPositions ( ) const

Get a copy of the current vertex positions.

Definition at line 216 of file brainsurface.cpp.

◆ verticesAsMatrix()

Eigen::MatrixX3f BrainSurface::verticesAsMatrix ( ) const

Get vertex positions as Eigen matrix.

Returns
Nx3 matrix of vertex positions.

Definition at line 555 of file brainsurface.cpp.

Member Data Documentation

◆ ModeAnnotation

VisualizationMode BrainSurface::ModeAnnotation = ::ModeAnnotation
staticconstexpr

Definition at line 97 of file brainsurface.h.

◆ ModeScientific

VisualizationMode BrainSurface::ModeScientific = ::ModeScientific
staticconstexpr

Definition at line 98 of file brainsurface.h.

◆ ModeSourceEstimate

VisualizationMode BrainSurface::ModeSourceEstimate = ::ModeSourceEstimate
staticconstexpr

Definition at line 99 of file brainsurface.h.

◆ ModeSurface

VisualizationMode BrainSurface::ModeSurface = ::ModeSurface
staticconstexpr

Definition at line 96 of file brainsurface.h.


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