119 void setVisible(
bool visible);
159 int hemi()
const {
return m_hemi; }
186 void createFromData(
const Eigen::MatrixX3f &vertices,
const Eigen::MatrixX3i &triangles,
const QColor &color);
197 void createFromData(
const Eigen::MatrixX3f &vertices,
const Eigen::MatrixX3f &normals,
const Eigen::MatrixX3i &triangles,
const QColor &color);
206 bool loadAnnotation(
const QString &path);
230 void applySourceEstimateColors(
const QVector<uint32_t> &colors);
239 void updateBuffers(QRhi *rhi, QRhiResourceUpdateBatch *u);
241 QRhiBuffer* vertexBuffer()
const;
242 QRhiBuffer* indexBuffer()
const;
250 Eigen::MatrixX3f vertexPositions()
const;
256 Eigen::MatrixX3f vertexNormals()
const;
287 void boundingBox(QVector3D &min, QVector3D &max)
const;
301 bool intersects(
const QVector3D &rayOrigin,
const QVector3D &rayDir,
float &dist,
int &vertexIdx)
const;
310 QString getAnnotationLabel(
int vertexIdx)
const;
311 int getAnnotationLabelId(
int vertexIdx)
const;
319 void setSelectedRegion(
int regionId);
325 void translateX(
float offset);
333 void transform(
const QMatrix4x4 &m);
342 void applyTransform(
const QMatrix4x4 &m);
351 std::vector<Eigen::VectorXi> computeNeighbors()
const;
359 Eigen::MatrixX3f verticesAsMatrix()
const;
365 void setUseDefaultColor(
bool useDefault);
367 void setSelected(
bool selected);
377 void setSelectedVertexRange(
int start,
int count);
380 void updateVertexColors();
382 QVector<VertexData> m_vertexData;
383 QVector<VertexData> m_originalVertexData;
384 QVector<uint32_t> m_indexData;
385 uint32_t m_indexCount = 0;
387 QColor m_defaultColor = Qt::white;
388 QColor m_baseColor = Qt::white;
391 bool m_hasAnnotation =
false;
393 QVector<float> m_curvature;
394 QVector<uint32_t> m_stcColors;
396 bool m_visible =
true;
397 bool m_selected =
false;
398 int m_selectedRegionId = -1;
399 int m_selectedVertexStart = -1;
400 int m_selectedVertexCount = 0;
402 TissueType m_tissueType = TissueUnknown;
406 std::unique_ptr<GpuBuffers> m_gpu;
408 mutable QVector3D m_aabbMin;
409 mutable QVector3D m_aabbMax;
410 mutable bool m_bAABBDirty =
true;