Home
Reply
Contributor
bryn
Posts: 29

Function to get edge point ids wrather than positions

Hi

 

It seems the information about if a point of a SEQUENTIAL_MESH is on the edge of a FACE is available in ACIS.

I found the api function api_get_facet_edge_points, which returns the positions of the edge points.

 

        ENTITY_LIST edges;
        api_get_edges(face, edges);
        edges.init();
        for (ENTITY* edge = 0; edge = edges.next(); )
        {
            int nepts = 0;
            SPAposition* epts = 0;
            api_get_facet_edge_points(static_cast<EDGE*>(edge), epts, nepts);

           

            // find Ids of positions
        }

 

However, this forces me to identify the positions from the face SEQUENTIAL_MESH, since I would like to have the indices of the edge points.

Are there any high or level functions, which can tell me if a point in a SEQUENTIAL_MESH is on the face interior or edge (or start/end point of edge)?

 

Thanks

 

Bryn

Spatial Employee
asdf
Posts: 106

Re: Function to get edge point ids wrather than positions

Hi Bryn

 

I am one of the developers who maintains the faceter (among other things).  Unfortunately, the information you want is avialable inside the faceting algorithm, but there is not a clean easy way to get the information out.

 

There is a way to get the information though, without doing a brute force search through the points.  It involves writing a custom mesh manager.  If you are not familar with MESH_MANAGERS, I can summarize roughly what they do.  The MESH_MANAGER class is an interface for determining the format for facets.  There are two virtual methods 

 

logical need_edge_indices()

 

and

 

virtual void announce_edge_indices( ENTITY* coedge, void*, ....) // e.g., if you derive from INDEXED_MESH_MANAGER, the void*'s here are pointers to polygon_vertex

 

which allow you to get the edge data for indexed-type mesh managers.  If you are using a global mesh manager, the information is accessible in a different way.  Unfortunately, it requires some expertise to figure out how to write a correct mesh manager.

 

I think it would be a good enhancement to put into acis to provide an easy to use interface for getting this information.  I would be happy to help with this, but it requires a more prolonged discussion than I can put in a blog post.  If you like, I can ask the blog administrator for you email and correspond directly on the matter.

 

best regards

 

Eric