122 void setVisible(
bool visible);
162 int hemi()
const {
return m_hemi; }
189 void createFromData(
const Eigen::MatrixX3f &vertices,
const Eigen::MatrixX3i &triangles,
const QColor &color);
200 void createFromData(
const Eigen::MatrixX3f &vertices,
const Eigen::MatrixX3f &normals,
const Eigen::MatrixX3i &triangles,
const QColor &color);
209 bool loadAnnotation(
const QString &path);
233 void applySourceEstimateColors(
const QVector<uint32_t> &colors);
238 void clearSourceEstimateColors();
247 void updateBuffers(QRhi *rhi, QRhiResourceUpdateBatch *u);
249 QRhiBuffer* vertexBuffer()
const;
250 QRhiBuffer* indexBuffer()
const;
258 Eigen::MatrixX3f vertexPositions()
const;
264 Eigen::MatrixX3f vertexNormals()
const;
303 void boundingBox(QVector3D &min, QVector3D &max)
const;
317 bool intersects(
const QVector3D &rayOrigin,
const QVector3D &rayDir,
float &dist,
int &vertexIdx)
const;
326 QString getAnnotationLabel(
int vertexIdx)
const;
327 int getAnnotationLabelId(
int vertexIdx)
const;
335 void setSelectedRegion(
int regionId);
341 void translateX(
float offset);
349 void transform(
const QMatrix4x4 &m);
358 void applyTransform(
const QMatrix4x4 &m);
367 std::vector<Eigen::VectorXi> computeNeighbors()
const;
375 Eigen::MatrixX3f verticesAsMatrix()
const;
381 void setUseDefaultColor(
bool useDefault);
383 void setSelected(
bool selected);
395 void setSelectedVertexRange(
int start,
int count);
398 void updateVertexColors();
399 void markVertexDirty();
401 QVector<VertexData> m_vertexData;
402 QVector<VertexData> m_originalVertexData;
403 QVector<uint32_t> m_indexData;
404 uint32_t m_indexCount = 0;
406 QColor m_defaultColor = Qt::white;
407 QColor m_baseColor = Qt::white;
410 bool m_hasAnnotation =
false;
412 QVector<float> m_curvature;
413 QVector<uint32_t> m_stcColors;
415 bool m_visible =
true;
416 bool m_selected =
false;
417 int m_selectedRegionId = -1;
418 int m_selectedVertexStart = -1;
419 int m_selectedVertexCount = 0;
421 TissueType m_tissueType = TissueUnknown;
425 std::unique_ptr<GpuBuffers> m_gpu;
427 quint64 m_vertexGeneration = 0;
429 mutable QVector3D m_aabbMin;
430 mutable QVector3D m_aabbMax;
431 mutable bool m_bAABBDirty =
true;