Guest User

Untitled

a guest
Aug 19th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. Why pointer is not null after function call?
  2. struct edge
  3. {
  4. HalfEdge *he1; // pointer to right halfedge
  5. HalfEdge *he2; // pointer to left halfedge
  6. Edge *nexte; // pointer to next edge
  7. Edge *preve; // pointer to previous edge
  8. };
  9.  
  10. struct halfedge
  11. {
  12. Edge *edg; // pointer to parent edge
  13. Vertex *vtx; // pointer to starting vertex
  14. Loop *wloop; // back pointer to loop
  15. HalfEdge *nexthe;// pointer to next halfedge
  16. HalfEdge *prevhe;// pointer to previous halfedge
  17. };
  18.  
  19. void CDataStructureBuilder::create4VertFace(Face* f,Vertex* v1,Vertex* v2, Vertex* v3, Vertex* v4,Edge* e1,Edge* e2,Edge* e3,Edge* e4){
  20. Loop outerLoop;
  21.  
  22. createHalfEdges(v1,v2,e1);
  23. createHalfEdges(v2,v3,e2);
  24. createHalfEdges(v3,v4,e3);
  25. createHalfEdges(v4,v1,e4);
  26.  
  27.  
  28. outerLoop.lface = f;
  29. outerLoop.ledge = e1->he2;
  30.  
  31. connectEdges(e1, e2);
  32. connectEdges(e2, e3);
  33. connectEdges(e3, e4);
  34. connectEdges(e4, e1);
  35.  
  36. Vertex* vertices;
  37. vertices = createVertices();
  38.  
  39. Edge* edges;
  40. edges = createEdges();
  41.  
  42. create4VertFace(&bottom, &vertices[0], &vertices[1], &vertices[2], &vertices[3], &(edges[0]), &(edges[1]), &(edges[2]), &(edges[3]));
  43.  
  44. Edge* CDataStructureBuilder::createEdges(void){
  45. Edge edgelist[24];
  46.  
  47. Edge e0t1 = {NULL,NULL,NULL,NULL};
  48. // ...
  49. edgelist[0] = e0t1;
  50. // ...
  51. }
  52.  
  53. HalfEdge h;
  54. ...
  55. ed->he2 = &h;
Add Comment
Please, Sign In to add comment