------------------------------------------------------------------------------
| 2857 | |
| 2858 | //------------------------------------------------------------------------------ |
| 2859 | int 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 |
no test coverage detected