93 return m_implantation;
99 int totalContactCount()
const;
109 void setContactValues(
const QMap<QString, float>& values,
const QString& colormap = QStringLiteral(
"Hot"));
114 void clearContactValues();
125 QVector<uint32_t> surfaceColors(
const Eigen::MatrixX3f& vertices,
double distance = 0.01)
const;
133 void selectContact(
const QString& name);
138 void clearSelection();
143 QString selectedContact()
const;
151 void setHoveredContact(
int index);
158 return m_hoveredContact;
170 int intersect(
const QVector3D& rayOrigin,
const QVector3D& rayDir,
float& dist)
const;
182 QString contactLabel(
int index)
const;
198 return m_contactRenderKey;
204 return m_bodyRenderKey;
220 QVector3D boundingBoxMin()
const;
225 QVector3D boundingBoxMax()
const;
237 void buildContactInstances();
238 float contactRadius(
int contact)
const;
241 QVector<int> m_leadOfContact;
242 QVector<QColor> m_contactColors;
243 QMap<QString, float> m_contactValues;
245 float m_valueMin = 0.0f;
246 float m_valueMax = 0.0f;
247 int m_selectedContact = -1;
248 int m_hoveredContact = -1;
251 bool m_visible =
true;
254 QByteArray m_sphereVertices;
255 QByteArray m_sphereIndices;
256 QByteArray m_cylinderVertices;
257 QByteArray m_cylinderIndices;
258 int m_sphereIndexCount = 0;
259 int m_cylinderIndexCount = 0;
261 QByteArray m_contactInstances;
262 QByteArray m_bodyInstances;
264 quint64 m_contactGeneration = 0;
265 quint64 m_bodyGeneration = 0;
266 RenderKey m_contactRenderKey;
267 RenderKey m_bodyRenderKey;
269 void computeBoundingBox();
271 float normalized(
float value)
const;