MCPcopy Create free account
hub / github.com/Kitware/VTK / AddMeshTriangle

Method AddMeshTriangle

Common/DataModel/vtkReebGraph.cxx:2859–2925  ·  view source on GitHub ↗

------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

2857
2858//------------------------------------------------------------------------------
2859int vtkReebGraph::Implementation::AddMeshTriangle(
2860 vtkIdType vertex0Id, double f0, vtkIdType vertex1Id, double f1, vtkIdType vertex2Id, double f2)
2861{
2862
2863 int vertex0 = this->VertexStream[vertex0Id], vertex1 = this->VertexStream[vertex1Id],
2864 vertex2 = this->VertexStream[vertex2Id];
2865
2866 int N0 = this->VertexMap[vertex0];
2867 int N1 = this->VertexMap[vertex1];
2868 int N2 = this->VertexMap[vertex2];
2869
2870 // Consistency less check
2871 if (f2 < f1 || (f2 == f1 && vertex2 < vertex1))
2872 {
2873 vtkReebGraphSwapVars(int, vertex1, vertex2);
2874 vtkReebGraphSwapVars(int, N1, N2);
2875 vtkReebGraphSwapVars(double, f1, f2);
2876 }
2877 if (f1 < f0 || (f1 == f0 && vertex1 < vertex0))
2878 {
2879 vtkReebGraphSwapVars(int, vertex0, vertex1);
2880 vtkReebGraphSwapVars(int, N0, N1);
2881 // there is a useless assignment to f0 below
2882 // keeping for clarity and consistency
2883 vtkReebGraphSwapVars(double, f0, f1);
2884 }
2885 if (f2 < f1 || (f2 == f1 && vertex2 < vertex1))
2886 {
2887 vtkReebGraphSwapVars(int, vertex1, vertex2);
2888 vtkReebGraphSwapVars(int, N1, N2);
2889 // there is a useless assignment below
2890 // keeping for clarity and consistency
2891 vtkReebGraphSwapVars(double, f1, f2);
2892 }
2893
2894 vtkReebLabelTag Label01 = ((vtkReebLabelTag)vertex0) | (((vtkReebLabelTag)vertex1) << 32);
2895 vtkReebLabelTag Label12 = ((vtkReebLabelTag)vertex1) | (((vtkReebLabelTag)vertex2) << 32);
2896 vtkReebLabelTag Label02 = ((vtkReebLabelTag)vertex0) | (((vtkReebLabelTag)vertex2) << 32);
2897
2898 if (!this->FindUpLabel(N0, Label01))
2899 {
2900 vtkIdType N01[] = { N0, N1 };
2901 this->AddPath(2, N01, Label01);
2902 }
2903 if (!this->FindUpLabel(N1, Label12))
2904 {
2905 vtkIdType N12[] = { N1, N2 };
2906 this->AddPath(2, N12, Label12);
2907 }
2908 if (!this->FindUpLabel(N0, Label02))
2909 {
2910 vtkIdType N02[] = { N0, N2 };
2911 this->AddPath(2, N02, Label02);
2912 }
2913
2914 this->Collapse(N0, N1, Label01, Label02);
2915 this->Collapse(N1, N2, Label12, Label02);
2916

Callers 1

StreamTriangleMethod · 0.95

Calls 4

FindUpLabelMethod · 0.95
AddPathMethod · 0.95
CollapseMethod · 0.95
EndVertexMethod · 0.95

Tested by

no test coverage detected