SINTEF-Geometry / GoTools

GoTools Geometry Toolkit
GNU Affero General Public License v3.0
68 stars 39 forks source link

Few questions on implicitization #330

Open skbizport opened 2 years ago

skbizport commented 2 years ago

Hi

I have few questions on approximate implicitization used in Go-Tools.

  1. How do I compute distance of a point to approximate implicit function? Is evaluation operator () in BernsteinTetrahedralPoly which accepts barycentric coordinates return this distance? Also, can I use BaryCoordSystem3D.cartToBary(pt) to convert a point in 3D space to barycentric and then use the evaluation operator?
  2. If I have a CAD model represented as a set of NURBS or Bezier patches, how do to use this library to compute signed distance function? This needs 2 things, (a) Find if a point is inside a model or outside (b) Find min distance to the model. Would appreciate how one would go about using approx. implicit for this purpose
  3. Is tolerance value used in ImplicitizeSurfaceAlgo? Does this indicate how far implicit surface is from actual surface?
  4. What is the contact email for questions on licensing.

Regards SK

tordokken commented 2 years ago

Hi,

The contact for questions and licensing is me, @.***

The functionality in GoTools for approximate implicitization address local approximation within intersection algorithms for separating to near intersecting curved surface that cannot be separated using convex hulls.

An approximation of the distance is the value divided by the length of the gradient.

To compute a signed distance of a CAD model, our approach would be to have an implicit 3-variate spline space based on LR B-splines/tensor product B-splines. This is one of the possible direction for a master thesis we expect to start soon.

With respect to the program code I cannot answer as this has been developed by my colleagues. I bbc this answer to them, but summer holiday has started, so I expect that they will first follow up in August.

Tor

Last ned Outlook for iOShttps://aka.ms/o0ukef


Fra: skbizport @.> Sendt: onsdag, juli 6, 2022 6:07 pm Til: SINTEF-Geometry/GoTools @.> Kopi: Subscribed @.***> Emne: [SINTEF-Geometry/GoTools] Few questions on implicitization (Issue #330)

Hi

I have few questions on approximate implicitization used in Go-Tools.

  1. How do I compute distance of a point to approximate implicit function? Is evaluation operator () in BernsteinTetrahedralPoly which accepts barycentric coordinates return this distance? Also, can I use BaryCoordSystem3D.cartToBary(pt) to convert a point in 3D space to barycentric and then use the evaluation operator?
  2. If I have a CAD model represented as a set of NURBS or Bezier patches, how do to use this library to compute signed distance function? This needs 2 things, (a) Find if a point is inside a model or outside (b) Find min distance to the model. Would appreciate how one would go about using approx. implicit for this purpose
  3. Is tolerance value used in ImplicitizeSurfaceAlgo? Does this indicate how far implicit surface is from actual surface?
  4. What is the contact email for questions on licensing.

Regards SK

— Reply to this email directly, view it on GitHubhttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FSINTEF-Geometry%2FGoTools%2Fissues%2F330&data=05%7C01%7Ctor.dokken%40sintef.no%7Ccde0462917b446e9b82508da5f699b8b%7Ce1f00f39604145b0b309e0210d8b32af%7C1%7C0%7C637927204432951753%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=%2BtKapFl1eLBiRSuWPZNDQ8FZatXHs1rl31KJ5wNRI7s%3D&reserved=0, or unsubscribehttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABBHBM2ZITYY6CF7T5CDTM3VSWVLRANCNFSM522JRJTQ&data=05%7C01%7Ctor.dokken%40sintef.no%7Ccde0462917b446e9b82508da5f699b8b%7Ce1f00f39604145b0b309e0210d8b32af%7C1%7C0%7C637927204432951753%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=DCQWKhh%2BwdJv2bSLzy97%2FYQdnNZcPGU9F9PavzI5ml4%3D&reserved=0. You are receiving this because you are subscribed to this thread.Message ID: @.***>

skbizport commented 2 years ago

Appreciate these details. Would be quite interesting to see an implementation based on tri-variate splines.

Using the current library, it is not entirely clear how to compute the gradient for BernsteinTetrahedralPoly. Any pointers or example will be useful.

Also, is there any upper bound on error in the computed distance? Does it behave similar to euclidean distance?

Thx

Regards SK

tordokken commented 2 years ago

Hi,

The master student we planned for working on this direction decided on another master thesis. However, I review a paper this summer (cannot give you details as it is not published) where gradient control was added to approximate implication in an elegant way. I believe that this idea can be used to better create distance fields using tri-variate tensor product B-splines or Locally Refined B-spliness. I think it is simpler if we communicate by ordinary e-mail, as what you are looking for is an extension of the functionality of GoTools. @.**@.>). I would also good to know who I am communicating with as we now enter a discussion of new research ideas and a not trivial extension of GoTools.

I am not the person implementing in GoTools, and the approximate implication functionality currently available targets the needs deep inside the recursive surface-surface intersection algorithm for deciding that two surface pieces don't intersect.

Tor

From: skbizport @.> Sent: onsdag 31. august 2022 02.56 To: SINTEF-Geometry/GoTools @.> Cc: Tor Dokken @.>; Comment @.> Subject: Re: [SINTEF-Geometry/GoTools] Few questions on implicitization (Issue #330)

Appreciate these details. Would be quite interesting to see an implementation based on tri-variate splines.

Using the current library, it is not entirely clear how to compute the gradient for BernsteinTetrahedralPoly.

Any pointers or example will be useful. Also, is there any upper bound on error in the computed distance? Does it behave similar to euclidean distance?

Thx

Regards SK

- Reply to this email directly, view it on GitHubhttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FSINTEF-Geometry%2FGoTools%2Fissues%2F330%23issuecomment-1232325608&data=05%7C01%7Ctor.dokken%40sintef.no%7C3b0e9e1ed57c48f5681408da8aeb9890%7Ce1f00f39604145b0b309e0210d8b32af%7C1%7C0%7C637975041724320057%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=VKauYls%2FTu8URyGvu6C8sHZjlcNQqmdBZXvegSb5pQQ%3D&reserved=0, or unsubscribehttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABBHBM6TULQR22Q2LH34LA3V32USTANCNFSM522JRJTQ&data=05%7C01%7Ctor.dokken%40sintef.no%7C3b0e9e1ed57c48f5681408da8aeb9890%7Ce1f00f39604145b0b309e0210d8b32af%7C1%7C0%7C637975041724320057%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=jf2JR6kBHTqvUeCX6yuAIdXUjB%2FY4pgZA1Huu1ohD%2Fc%3D&reserved=0. You are receiving this because you commented.Message ID: @.**@.>>