119 void setVisible(
bool visible);
201 void createFromData(
const Eigen::MatrixX3f& vertices,
const Eigen::MatrixX3i& triangles,
const QColor& color);
212 void createFromData(
const Eigen::MatrixX3f& vertices,
const Eigen::MatrixX3f& normals,
const Eigen::MatrixX3i& triangles,
const QColor& color);
221 bool loadAnnotation(
const QString& path);
238 void labelElements(
int verticesPerElement);
254 void applySourceEstimateColors(
const QVector<uint32_t>& colors);
259 void clearSourceEstimateColors();
296 return m_vertexData.size();
305 Eigen::MatrixX3f vertexPositions()
const;
313 Eigen::MatrixX3f vertexNormals()
const;
347 return m_annotationColors;
373 void boundingBox(QVector3D& min, QVector3D& max)
const;
388 bool intersects(
const QVector3D& rayOrigin,
const QVector3D& rayDir,
float& dist,
int& vertexIdx)
const;
397 QString getAnnotationLabel(
int vertexIdx)
const;
398 int getAnnotationLabelId(
int vertexIdx)
const;
406 void setSelectedRegion(
int regionId);
412 void translateX(
float offset);
420 void transform(
const QMatrix4x4& m);
429 void applyTransform(
const QMatrix4x4& m);
438 std::vector<Eigen::VectorXi> computeNeighbors()
const;
446 Eigen::MatrixX3f verticesAsMatrix()
const;
454 void setUseDefaultColor(
bool useDefault);
462 void setColor(
const QColor& color);
464 void setSelected(
bool selected);
471 return m_selectedRegionId;
475 return m_selectedVertexStart;
485 void setSelectedVertexRange(
int start,
int count);
491 std::optional<uint32_t> selectedLabel()
const;
494 void updateVertexColors();
495 void setGeometry(QVector<VertexData> vertices, QVector<uint32_t> indices,
const QColor& color);
496 void markGeometryDirty();
498 QVector<VertexData> m_vertexData;
499 QVector<VertexData> m_originalVertexData;
500 QVector<uint32_t> m_colors;
501 QVector<uint32_t> m_annotationColors;
502 QVector<int> m_vertexLabelIds;
503 QVector<uint32_t> m_indexData;
504 uint32_t m_indexCount = 0;
507 quint64 m_geometryGeneration = 0;
508 quint64 m_colorGeneration = 0;
509 quint64 m_annotationGeneration = 0;
510 quint64 m_indexGeneration = 0;
512 QColor m_defaultColor = Qt::white;
513 QColor m_baseColor = Qt::white;
516 bool m_hasAnnotation =
false;
518 QVector<float> m_curvature;
519 QVector<uint32_t> m_stcColors;
521 bool m_visible =
true;
522 bool m_selected =
false;
523 int m_selectedRegionId = -1;
524 int m_selectedVertexStart = -1;
525 int m_selectedVertexCount = 0;
527 TissueType m_tissueType = TissueUnknown;
529 mutable QVector3D m_aabbMin;
530 mutable QVector3D m_aabbMax;
531 mutable bool m_bAABBDirty =
true;
535 const Bvh& bvh()
const;
536 mutable std::shared_ptr<const Bvh> m_bvh;