Exemplo n.º 1
0
        void add_edge_vert(int graph_eid, int mesh_tri, int mesh_edge, int mesh_vert)
        {
            GraphEdgeInfo einfo = new GraphEdgeInfo()
            {
                caseType   = TriangleCase.EdgeVertex,
                mesh_edges = new Index2i(mesh_edge, mesh_vert),
                mesh_tri   = mesh_tri
            };

            GraphEdges.insertAt(einfo, graph_eid);
        }
Exemplo n.º 2
0
        void add_on_edge(int graph_eid, int mesh_tri, int mesh_edge)
        {
            GraphEdgeInfo einfo = new GraphEdgeInfo()
            {
                caseType   = TriangleCase.OnEdge,
                mesh_edges = new Index2i(mesh_edge, -1),
                mesh_tri   = mesh_tri
            };

            GraphEdges.insertAt(einfo, graph_eid);
        }
Exemplo n.º 3
0
        void add_edge_edge(int graph_eid, int mesh_tri, Index2i mesh_edges)
        {
            GraphEdgeInfo einfo = new GraphEdgeInfo()
            {
                caseType   = TriangleCase.EdgeEdge,
                mesh_edges = mesh_edges,
                mesh_tri   = mesh_tri
            };

            GraphEdges.insertAt(einfo, graph_eid);
        }
Exemplo n.º 4
0
        /// <summary>
        /// DGraph3 edges are not oriented, which means they cannot inherit orientation from mesh.
        /// This function returns true if, for a given graph_eid, the vertex pair returned by
        /// Graph.GetEdgeV(graph_eid) should be reversed to be consistent with mesh orientation.
        /// Mainly inteded to be passed to DGraph3Util.ExtractCurves
        /// </summary>
        public bool ShouldReverseGraphEdge(int graph_eid)
        {
            if (GraphEdges == null)
            {
                throw new Exception("MeshIsoCurves.OrientEdge: must track edge graph info to orient edge");
            }

            Index2i       graph_ev = Graph.GetEdgeV(graph_eid);
            GraphEdgeInfo einfo    = GraphEdges[graph_eid];

            if (graph_ev.b == einfo.order.a && graph_ev.a == einfo.order.b)
            {
                return(true);
            }
            Util.gDevAssert(graph_ev.a == einfo.order.a && graph_ev.b == einfo.order.b);
            return(false);
        }