Hi everybody,
I need to know hot to get and move the vertices of a selected mesh edge. Although it seems an easy task I could not get them. I made an attempt but the indices of the selected edge and the mesh topology edge seem not to match…
CRhinoObjectIterator it(CRhinoObjectIterator::undeleted_objects, CRhinoObjectIterator::active_and_reference_objects);
it.EnableVisibleFilter(TRUE);
for (CRhinoObject* pObject = it.First(); pObject; pObject = it.Next()) {
ON_SimpleArray<ON_COMPONENT_INDEX> subidxs;
pObject->GetSelectedSubObjects(subidxs);
for(int su = 0; su < subidxs.Count(); su++)
if (subidxs[su].m_type == ON_COMPONENT_INDEX::meshtop_edge) {
const ON_Mesh* mesh = ON_Mesh::Cast(pObject->Geometry());
ON_SimpleArray<ON_2dex> edges;
mesh->GetMeshEdges(edges);
ON_3dPoint vert1 = mesh->m_V[edges[subidxs[su].m_index].i];
ON_3dPoint vert2 = mesh->m_V[edges[subidxs[su].m_index].j];
vert1.Transform(translateXform);
vert2.Transform(translateXform);
mesh.SetVertex(edges[idx].i, vert1);
mesh.SetVertex(edges[idx].j, vert2)
}
}