US 12,367,645 B2
Mesh generation
Kenneth Blake, Austin, TX (US); Scott Canann, Austin, TX (US); and Stefano Pippa, Bologna (IT)
Assigned to SIEMENS INDUSTRY SOFTWARE INC., Plano, TX (US); and SIEMENS INDUSTRY SOFTWARE S.r.l., Milan (IT)
Appl. No. 18/023,827
Filed by SIEMENS INDUSTRY SOFTWARE INC., Plano, TX (US); and SIEMENS INDUSTRY SOFTWARE SRL, Milan (IT)
PCT Filed Aug. 31, 2020, PCT No. PCT/US2020/048723
§ 371(c)(1), (2) Date Feb. 28, 2023,
PCT Pub. No. WO2022/046101, PCT Pub. Date Mar. 3, 2022.
Prior Publication US 2023/0316654 A1, Oct. 5, 2023
Int. Cl. G06T 15/00 (2011.01); G06T 7/62 (2017.01); G06T 7/73 (2017.01); G06T 17/20 (2006.01)
CPC G06T 17/205 (2013.01) [G06T 7/62 (2017.01); G06T 7/75 (2017.01); G06T 2210/21 (2013.01)] 17 Claims
OG exemplary drawing
 
1. A method of remeshing patches in a triangular meshed surface, the method being computer-implemented, wherein an initial surface comprises a triangular surface mesh and a target size field that specifies an optimal triangle edge length at each position on the triangular surface mesh defined over every point in the triangular surface mesh, the triangular surface mesh being partitioned into patches, wherein each of the patches comprises a contiguous set of adjacent faces delimited by closed loops of boundary or feature edges and has principal surface curvatures, the method comprising:
meshing each of the patches using an advancing front process, wherein the advancing front process comprises:
computing an asterisk field over the respective patch;
initializing a front comprising one or more closed chains of connected edges by the boundary or the feature edges of the respective patch;
generating a new triangle, the generating of the new triangle comprising selecting a front edge AB from the edges of the front and determining a position of an apex C of the new triangle, the determining of the position of the apex comprising:
calculating a radius of a first circle based on the target size at point A, rA=TS(A), and calculating a radius of a second circle based on the target size at point B, rB=TS(B);
calculating a growth direction for the front edge AB from the asterisk field, the calculating of the growth direction for the front edge AB from the asterisk field comprising calculating an asterisk field AF(X) at a midpoint X of the front edge AB, calculating a conjugate asterisk field CAF(X) of AF(X) as a field obtained from a 30 degree rotation of AF(X), calculating normal n as a vector orthogonal to the front edge AB and aligned with a direction of an advancing front, and determining the direction of the conjugate asterisk field CAF(X) having a greatest dot product with the normal n, such that the growth direction is obtained;
determining an intersection C0 of the first circle CA centered on the point A with radius rA and the second circle CB centered on the point B with radius rB that lies in a positive half plane of the front edge AB with respect to the growth direction;
generating a circumcircle of a triangle formed by the point A, the point B, and the intersection C0;
determining a point O of intersection between the circumcircle and an axis of the front edge AB;
constructing a line r passing through the point O with an orientation of the growth direction; and
obtaining the position of the apex C of the new triangle at the point where the line r intersects the circumcircle other than at the point O;
when the surface mesh M is not planar, projecting the apex C onto the initial surface; and
inserting the apex C and enforcing an edge formed by the point A and the apex C and an edge formed by the point B and the apex C into the mesh and replacing any internal triangle in a loop AB, BC, CA, with a single triangle ABC,
wherein the asterisk field is generated from a cross field aligned to surface principal curvature directions and boundary orientation of the respective patch.