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);
235 void clearSourceEstimateColors();
244 void updateBuffers(QRhi *rhi, QRhiResourceUpdateBatch *u);
246 QRhiBuffer* vertexBuffer()
const;
247 QRhiBuffer* indexBuffer()
const;
255 Eigen::MatrixX3f vertexPositions()
const;
261 Eigen::MatrixX3f vertexNormals()
const;
300 void boundingBox(QVector3D &min, QVector3D &max)
const;
314 bool intersects(
const QVector3D &rayOrigin,
const QVector3D &rayDir,
float &dist,
int &vertexIdx)
const;
323 QString getAnnotationLabel(
int vertexIdx)
const;
324 int getAnnotationLabelId(
int vertexIdx)
const;
332 void setSelectedRegion(
int regionId);
338 void translateX(
float offset);
346 void transform(
const QMatrix4x4 &m);
355 void applyTransform(
const QMatrix4x4 &m);
364 std::vector<Eigen::VectorXi> computeNeighbors()
const;
372 Eigen::MatrixX3f verticesAsMatrix()
const;
378 void setUseDefaultColor(
bool useDefault);
380 void setSelected(
bool selected);
392 void setSelectedVertexRange(
int start,
int count);
395 void updateVertexColors();
396 void markVertexDirty();
398 QVector<VertexData> m_vertexData;
399 QVector<VertexData> m_originalVertexData;
400 QVector<uint32_t> m_indexData;
401 uint32_t m_indexCount = 0;
403 QColor m_defaultColor = Qt::white;
404 QColor m_baseColor = Qt::white;
407 bool m_hasAnnotation =
false;
409 QVector<float> m_curvature;
410 QVector<uint32_t> m_stcColors;
412 bool m_visible =
true;
413 bool m_selected =
false;
414 int m_selectedRegionId = -1;
415 int m_selectedVertexStart = -1;
416 int m_selectedVertexCount = 0;
418 TissueType m_tissueType = TissueUnknown;
422 std::unique_ptr<GpuBuffers> m_gpu;
424 quint64 m_vertexGeneration = 0;
426 mutable QVector3D m_aabbMin;
427 mutable QVector3D m_aabbMax;
428 mutable bool m_bAABBDirty =
true;