BrainSurface class.
More...
#include <brainsurface.h>
|
| | 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) |
BrainSurface class.
BrainSurface manages the geometry and visual properties of a single brain mesh.
Definition at line 78 of file brainsurface.h.
◆ VisualizationMode
◆ TissueType
| Enumerator |
|---|
| TissueUnknown | |
| TissueBrain | |
| TissueSkin | |
| TissueOuterSkull | |
| TissueInnerSkull | |
Definition at line 101 of file brainsurface.h.
◆ BrainSurface()
| BrainSurface::BrainSurface |
( |
| ) |
|
◆ ~BrainSurface()
| BrainSurface::~BrainSurface |
( |
| ) |
|
|
default |
◆ addAnnotation()
Add annotation data directly.
- Parameters
-
| [in] | annotation | Input 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] | colors | Vector 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] | m | Transformation 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] | min | Minimum coordinates. |
| [out] | max | Maximum 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] | vertices | Nx3 matrix of vertex positions. |
| [in] | normals | Nx3 matrix of vertex normals. |
| [in] | triangles | Mx3 matrix of triangle indices. |
| [in] | color | Surface 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] | vertices | Nx3 matrix of vertex positions. |
| [in] | triangles | Mx3 matrix of triangle indices. |
| [in] | color | Surface 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] | surf | Input BEM surface. |
| [in] | color | Base color for the surface. |
Definition at line 123 of file brainsurface.cpp.
◆ fromSurface()
Load geometry from a FreeSurfer surface.
- Parameters
-
| [in] | surf | Input 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] | vertexIdx | Index of the vertex. |
- Returns
- Label name.
Definition at line 722 of file brainsurface.cpp.
◆ getAnnotationLabelId()
| int BrainSurface::getAnnotationLabelId |
( |
int | vertexIdx | ) |
const |
◆ 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 |
◆ indexCount()
| uint32_t BrainSurface::indexCount |
( |
| ) |
const |
|
inline |
◆ intersects()
| bool BrainSurface::intersects |
( |
const QVector3D & | rayOrigin, |
|
|
const QVector3D & | rayDir, |
|
|
float & | dist, |
|
|
int & | vertexIdx ) const |
Test ray intersection with this surface.
- Parameters
-
| [in] | rayOrigin | Ray 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] | rayDir | Ray direction (normalized). |
| [out] | dist | Distance to intersection. |
- Returns
- True if intersected.
Definition at line 601 of file brainsurface.cpp.
◆ isSelected()
| bool BrainSurface::isSelected |
( |
| ) |
const |
|
inline |
◆ 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] | path | Path 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] | hemi | 0 for Left, 1 for Right. |
Definition at line 131 of file brainsurface.h.
◆ setSelected()
| void BrainSurface::setSelected |
( |
bool | selected | ) |
|
◆ setSelectedRegion()
| void BrainSurface::setSelectedRegion |
( |
int | regionId | ) |
|
Set the selected region for highlighting.
- Parameters
-
| [in] | regionId | The 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] | start | First vertex index to highlight (-1 to clear). |
| [in] | count | Number 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
-
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] | visible | True if visible. |
Definition at line 265 of file brainsurface.cpp.
◆ setVisualizationMode()
Set the visualization mode (Surface, Annotation, Scientific).
- Parameters
-
Definition at line 272 of file brainsurface.cpp.
◆ tissueType()
◆ transform()
| void BrainSurface::transform |
( |
const QMatrix4x4 & | m | ) |
|
Apply a generic 4x4 transformation matrix to all vertices and normals.
- Parameters
-
| [in] | m | Transformation matrix. |
Definition at line 462 of file brainsurface.cpp.
◆ translateX()
| void BrainSurface::translateX |
( |
float | offset | ) |
|
Translate all vertices along the X axis.
- Parameters
-
| [in] | offset | Amount to translate. |
Definition at line 451 of file brainsurface.cpp.
◆ triangleIndices()
| QVector< uint32_t > BrainSurface::triangleIndices |
( |
| ) |
const |
|
inline |
◆ updateBuffers()
| void BrainSurface::updateBuffers |
( |
QRhi * | rhi, |
|
|
QRhiResourceUpdateBatch * | u ) |
Update graphics buffers (vertex/index) on the GPU.
- Parameters
-
| [in] | rhi | Pointer to QRhi instance. |
| [in] | u | Resource update batch. |
Definition at line 508 of file brainsurface.cpp.
◆ vertexBuffer()
| QRhiBuffer * BrainSurface::vertexBuffer |
( |
| ) |
const |
◆ vertexCount()
| uint32_t BrainSurface::vertexCount |
( |
| ) |
const |
|
inline |
◆ vertexNormals()
| Eigen::MatrixX3f BrainSurface::vertexNormals |
( |
| ) |
const |
◆ vertexPositions()
| Eigen::MatrixX3f BrainSurface::vertexPositions |
( |
| ) |
const |
◆ 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.
◆ ModeAnnotation
◆ ModeScientific
◆ ModeSourceEstimate
◆ ModeSurface
The documentation for this class was generated from the following files: