Renamed getEdges and getVertices to computeEdges and computeVertices

This commit is contained in:
iasonmanolas 2022-02-18 17:40:56 +02:00
parent 9e121beade
commit e1f66515d5
2 changed files with 53 additions and 50 deletions

View File

@ -6,9 +6,9 @@
Eigen::MatrixX2i VCGEdgeMesh::getEigenEdges() const { return eigenEdges; } Eigen::MatrixX2i VCGEdgeMesh::getEigenEdges() const { return eigenEdges; }
std::vector<vcg::Point2i> VCGEdgeMesh::getEdges() std::vector<vcg::Point2i> VCGEdgeMesh::computeEdges()
{ {
getEdges(eigenEdges); computeEdges(eigenEdges);
std::vector<vcg::Point2i> edges(eigenEdges.rows()); std::vector<vcg::Point2i> edges(eigenEdges.rows());
for (int ei = 0; ei < eigenEdges.rows(); ei++) { for (int ei = 0; ei < eigenEdges.rows(); ei++) {
edges[ei] = vcg::Point2i(eigenEdges(ei, 0), eigenEdges(ei, 1)); edges[ei] = vcg::Point2i(eigenEdges(ei, 0), eigenEdges(ei, 1));
@ -16,9 +16,10 @@ std::vector<vcg::Point2i> VCGEdgeMesh::getEdges()
return edges; return edges;
} }
Eigen::MatrixX3d VCGEdgeMesh::getEigenVertices() { Eigen::MatrixX3d VCGEdgeMesh::getEigenVertices() const
getVertices(eigenVertices); {
return eigenVertices; // getVertices(eigenVertices);
return eigenVertices;
} }
Eigen::MatrixX3d VCGEdgeMesh::getEigenEdgeNormals() const { Eigen::MatrixX3d VCGEdgeMesh::getEigenEdgeNormals() const {
@ -182,8 +183,8 @@ bool VCGEdgeMesh::createSpanGrid(const size_t desiredWidth,
vcg::tri::Allocator<VCGEdgeMesh>::DeleteVertex( vcg::tri::Allocator<VCGEdgeMesh>::DeleteVertex(
*this, vert[(desiredHeight + 1) * (desiredWidth + 1) - 1]); *this, vert[(desiredHeight + 1) * (desiredWidth + 1) - 1]);
vcg::tri::Allocator<VCGEdgeMesh>::CompactVertexVector(*this); vcg::tri::Allocator<VCGEdgeMesh>::CompactVertexVector(*this);
getEdges(eigenEdges); computeEdges(eigenEdges);
getVertices(eigenVertices); computeVertices(eigenVertices);
// vcg::tri::Allocator<VCGEdgeMesh>::CompactEdgeVector(*this); // vcg::tri::Allocator<VCGEdgeMesh>::CompactEdgeVector(*this);
// const size_t numberOfEdges = // const size_t numberOfEdges =
@ -214,8 +215,8 @@ bool VCGEdgeMesh::load(const std::filesystem::__cxx11::path &meshFilePath)
return false; return false;
} }
getEdges(eigenEdges); computeEdges(eigenEdges);
getVertices(eigenVertices); computeVertices(eigenVertices);
vcg::tri::UpdateTopology<VCGEdgeMesh>::VertexEdge(*this); vcg::tri::UpdateTopology<VCGEdgeMesh>::VertexEdge(*this);
label = std::filesystem::path(meshFilePath).stem().string(); label = std::filesystem::path(meshFilePath).stem().string();
@ -299,25 +300,24 @@ Eigen::MatrixX3d VCGEdgeMesh::getNormals() const {
return vertexNormals; return vertexNormals;
} }
void VCGEdgeMesh::getEdges(Eigen::MatrixX3d &edgeStartingPoints, void VCGEdgeMesh::computeEdges(Eigen::MatrixX3d &edgeStartingPoints,
Eigen::MatrixX3d &edgeEndingPoints) const { Eigen::MatrixX3d &edgeEndingPoints) const
edgeStartingPoints.resize(EN(), 3); {
edgeEndingPoints.resize(EN(), 3); edgeStartingPoints.resize(EN(), 3);
for (int edgeIndex = 0; edgeIndex < EN(); edgeIndex++) { edgeEndingPoints.resize(EN(), 3);
const VCGEdgeMesh::EdgeType &edge = this->edge[edgeIndex]; for (int edgeIndex = 0; edgeIndex < EN(); edgeIndex++) {
edgeStartingPoints.row(edgeIndex) = const VCGEdgeMesh::EdgeType &edge = this->edge[edgeIndex];
edge.cP(0).ToEigenVector<Eigen::Vector3d>(); edgeStartingPoints.row(edgeIndex) = edge.cP(0).ToEigenVector<Eigen::Vector3d>();
edgeEndingPoints.row(edgeIndex) = edgeEndingPoints.row(edgeIndex) = edge.cP(1).ToEigenVector<Eigen::Vector3d>();
edge.cP(1).ToEigenVector<Eigen::Vector3d>(); }
}
} }
VCGEdgeMesh::VCGEdgeMesh() {} VCGEdgeMesh::VCGEdgeMesh() {}
void VCGEdgeMesh::updateEigenEdgeAndVertices() { void VCGEdgeMesh::updateEigenEdgeAndVertices() {
#ifdef POLYSCOPE_DEFINED #ifdef POLYSCOPE_DEFINED
getEdges(eigenEdges); computeEdges(eigenEdges);
getVertices(eigenVertices); computeVertices(eigenVertices);
#endif #endif
} }
@ -325,13 +325,15 @@ bool VCGEdgeMesh::copy(VCGEdgeMesh &mesh) {
vcg::tri::Append<VCGEdgeMesh, VCGEdgeMesh>::MeshCopy(*this, mesh); vcg::tri::Append<VCGEdgeMesh, VCGEdgeMesh>::MeshCopy(*this, mesh);
label = mesh.getLabel(); label = mesh.getLabel();
eigenEdges = mesh.getEigenEdges(); eigenEdges = mesh.getEigenEdges();
if (eigenEdges.rows() == 0) { // assert(eigenEdges.rows() != 0);
getEdges(eigenEdges); // if (eigenEdges.rows() == 0) {
} // getEdges(eigenEdges);
// }
eigenVertices = mesh.getEigenVertices(); eigenVertices = mesh.getEigenVertices();
if (eigenVertices.rows() == 0) { // assert(eigenVertices.rows() != 0);
getVertices(eigenVertices); // if (eigenVertices.rows() == 0) {
} // getVertices(eigenVertices);
// }
vcg::tri::UpdateTopology<VCGEdgeMesh>::VertexEdge(*this); vcg::tri::UpdateTopology<VCGEdgeMesh>::VertexEdge(*this);
return true; return true;
@ -399,7 +401,8 @@ void VCGEdgeMesh::deleteDanglingVertices(vcg::tri::Allocator<VCGEdgeMesh>::Point
updateEigenEdgeAndVertices(); updateEigenEdgeAndVertices();
} }
void VCGEdgeMesh::getVertices(Eigen::MatrixX3d &vertices) { void VCGEdgeMesh::computeVertices(Eigen::MatrixX3d &vertices)
{
vertices = Eigen::MatrixX3d(); vertices = Eigen::MatrixX3d();
vertices.resize(VN(), 3); vertices.resize(VN(), 3);
for (int vi = 0; vi < VN(); vi++) { for (int vi = 0; vi < VN(); vi++) {
@ -412,21 +415,21 @@ void VCGEdgeMesh::getVertices(Eigen::MatrixX3d &vertices) {
} }
} }
void VCGEdgeMesh::getEdges(Eigen::MatrixX2i &edges) { void VCGEdgeMesh::computeEdges(Eigen::MatrixX2i &edges)
edges = Eigen::MatrixX2i(); {
edges.resize(EN(), 2); edges = Eigen::MatrixX2i();
for (int edgeIndex = 0; edgeIndex < EN(); edgeIndex++) { edges.resize(EN(), 2);
const VCGEdgeMesh::EdgeType &edge = this->edge[edgeIndex]; for (int edgeIndex = 0; edgeIndex < EN(); edgeIndex++) {
assert(!edge.IsD()); const VCGEdgeMesh::EdgeType &edge = this->edge[edgeIndex];
auto vp0 = edge.cV(0); assert(!edge.IsD());
auto vp1 = edge.cV(1); auto vp0 = edge.cV(0);
assert(vcg::tri::IsValidPointer(*this, vp0) && auto vp1 = edge.cV(1);
vcg::tri::IsValidPointer(*this, vp1)); assert(vcg::tri::IsValidPointer(*this, vp0) && vcg::tri::IsValidPointer(*this, vp1));
const size_t vi0 = vcg::tri::Index<VCGEdgeMesh>(*this, vp0); const size_t vi0 = vcg::tri::Index<VCGEdgeMesh>(*this, vp0);
const size_t vi1 = vcg::tri::Index<VCGEdgeMesh>(*this, vp1); const size_t vi1 = vcg::tri::Index<VCGEdgeMesh>(*this, vp1);
assert(vi0 != -1 && vi1 != -1); assert(vi0 != -1 && vi1 != -1);
edges.row(edgeIndex) = Eigen::Vector2i(vi0, vi1); edges.row(edgeIndex) = Eigen::Vector2i(vi0, vi1);
} }
} }
void VCGEdgeMesh::printVertexCoordinates(const size_t &vi) const { void VCGEdgeMesh::printVertexCoordinates(const size_t &vi) const {
@ -456,7 +459,7 @@ polyscope::CurveNetwork *VCGEdgeMesh::registerForDrawing(
const glm::vec3 desiredColor_glm(desiredColor.value()[0], const glm::vec3 desiredColor_glm(desiredColor.value()[0],
desiredColor.value()[1], desiredColor.value()[1],
desiredColor.value()[2]); desiredColor.value()[2]);
polyscopeHandle_edgeMesh->setColor(desiredColor_glm); polyscopeHandle_edgeMesh->setColor(/*glm::normalize(*/ desiredColor_glm /*)*/);
} }
return polyscopeHandle_edgeMesh; return polyscopeHandle_edgeMesh;

View File

@ -40,8 +40,8 @@ protected:
Eigen::MatrixX3d eigenVertices; Eigen::MatrixX3d eigenVertices;
Eigen::MatrixX3d eigenEdgeNormals; Eigen::MatrixX3d eigenEdgeNormals;
void getEdges(Eigen::MatrixX2i &edges); void computeEdges(Eigen::MatrixX2i &edges);
void getVertices(Eigen::MatrixX3d &vertices); void computeVertices(Eigen::MatrixX3d &vertices);
public: public:
VCGEdgeMesh(); VCGEdgeMesh();
@ -65,7 +65,7 @@ public:
virtual void deleteDanglingVertices( virtual void deleteDanglingVertices(
vcg::tri::Allocator<VCGEdgeMesh>::PointerUpdater<VertexPointer> &pu); vcg::tri::Allocator<VCGEdgeMesh>::PointerUpdater<VertexPointer> &pu);
void getEdges(Eigen::MatrixX3d &edgeStartingPoints, Eigen::MatrixX3d &edgeEndingPoints) const; void computeEdges(Eigen::MatrixX3d &edgeStartingPoints, Eigen::MatrixX3d &edgeEndingPoints) const;
Eigen::MatrixX3d getNormals() const; Eigen::MatrixX3d getNormals() const;
@ -81,9 +81,9 @@ public:
void createSpiral(const float &degreesOfArm, const size_t &numberOfSamples); void createSpiral(const float &degreesOfArm, const size_t &numberOfSamples);
Eigen::MatrixX2i getEigenEdges() const; Eigen::MatrixX2i getEigenEdges() const;
std::vector<vcg::Point2i> getEdges(); std::vector<vcg::Point2i> computeEdges();
Eigen::MatrixX3d getEigenVertices(); Eigen::MatrixX3d getEigenVertices() const;
Eigen::MatrixX3d getEigenEdgeNormals() const; Eigen::MatrixX3d getEigenEdgeNormals() const;
void printVertexCoordinates(const size_t &vi) const; void printVertexCoordinates(const size_t &vi) const;
#ifdef POLYSCOPE_DEFINED #ifdef POLYSCOPE_DEFINED