Fix intermediate nodes generation
parent
81fec2ed44
commit
013c671451
|
@ -490,6 +490,7 @@ bool Builder::generateCutsForNode(size_t nodeIndex)
|
|||
revisedNearCutNormal = &farOriginNode.cutNormal;
|
||||
revisedFarCutNormal = &node.cutNormal;
|
||||
}
|
||||
distanceFactor *= 1.75;
|
||||
if (QVector3D::dotProduct(*revisedNearCutNormal, *revisedFarCutNormal) <= 0)
|
||||
cutNormal = (*revisedNearCutNormal * (1.0 - distanceFactor) - *revisedFarCutNormal * distanceFactor).normalized();
|
||||
else
|
||||
|
|
|
@ -105,12 +105,12 @@ void Modifier::finalize()
|
|||
for (const auto &edge: oldEdges) {
|
||||
const Node &firstNode = m_nodes[edge.firstNodeIndex];
|
||||
const Node &secondNode = m_nodes[edge.secondNodeIndex];
|
||||
float edgeLengthThreshold = (firstNode.radius + secondNode.radius) * 0.75;
|
||||
//float edgeLengthThreshold = (firstNode.radius + secondNode.radius) * 0.75;
|
||||
auto firstAverageCutTemplateEdgeLength = averageCutTemplateEdgeLength(firstNode.cutTemplate) * firstNode.radius;
|
||||
auto secondAverageCutTemplateEdgeLength = averageCutTemplateEdgeLength(secondNode.cutTemplate) * secondNode.radius;
|
||||
float targetEdgeLength = (firstAverageCutTemplateEdgeLength + secondAverageCutTemplateEdgeLength) * 0.5;
|
||||
if (targetEdgeLength < edgeLengthThreshold)
|
||||
targetEdgeLength = edgeLengthThreshold;
|
||||
//if (targetEdgeLength < edgeLengthThreshold)
|
||||
// targetEdgeLength = edgeLengthThreshold;
|
||||
float currentEdgeLength = (firstNode.position - secondNode.position).length();
|
||||
if (targetEdgeLength >= currentEdgeLength) {
|
||||
addEdge(edge.firstNodeIndex, edge.secondNodeIndex);
|
||||
|
|
Loading…
Reference in New Issue