![]() |
G+Smo
25.01.0
Geometry + Simulation Modules
|
This module implements geometric and modeling operations for solids and point-clouds.
Classes | |
| class | gsBarrierPatch< d, T > |
| Computes a patch parametrization given a set of boundary geometries. Parametrization is not guaranteed to be non-singular. Works for planar surfaces and volumes. More... | |
| class | gsCoonsPatch< T > |
| Computes a Coons' patch parametrization given a set of boundary geometries. Parametrization is not guaranteed to be non-singular. Works for surface, volumes, or any dimension. More... | |
| class | gsCurvatureSmoothing< T > |
| Class for computing a closed B-spline curve with a smaller number of curvature extrema compared to a given closed B-spline curve. More... | |
| class | gsCurveFitting< T > |
| Class for performing a least squares fit to get a open/closed B-Spline curve for some given data. More... | |
| class | gsCurveLoop< T > |
| A closed loop given by a collection of curves. More... | |
| class | gsFitting< T > |
| Class for performing a fit of a parametrized point cloud with a gsGeometry. More... | |
| class | gsPatchGenerator< T > |
| Abstract class that accepts a set of input boundaries and computes a new geometry. More... | |
| class | gsPlanarDomain< T > |
| Class representing a Planar domain with an outer boundary and a number of holes. More... | |
| class | gsSolid< T > |
| Class for representing a solid made up of vertices, edges, faces, and volumes. More... | |
| class | gsTemplate< T > |
| Class gsTemplate object. More... | |
| class | gsTriMeshToSolid< T > |
| Class gsTriMeshToSolid object. More... | |
| class | gsTrimSurface< T > |
| Class for a trim surface. More... | |
Functions | |
| template<typename T = real_t> | |
| gsVector< T > | convertMultiPatchToFreeVector (const gsMultiPatch< T > &mp, const gsDofMapper &mapper) |
| Computes a patch parametrization given a set of boundary geometries. Parametrization is not guaranteed to be non-singular. Works for planar surfaces and volumes. | |
| void | getPatchData (T angle, T innerAngle, T patchAreaWeight, T mergeSmallPatches, std::vector< std::vector< VertexHandle > > &iPoints, std::vector< std::vector< VertexHandle > > &oPoints, std::vector< std::vector< std::vector< VertexHandle > > > &innerBdrys, std::vector< std::vector< Vertex > > &innerBdrysMassP, std::vector< std::vector< bool > > &oPointsConvexFlag, std::string filenameFeatures, int useFeatures) |
| Computes data describing the patch structure of the mesh. Combines getFeatures and getFaces. | |
| gsBarrierPatch (const gsMultiPatch< T > &mp, const gsDofMapper &mapper) | |
| Constructs the object using a given multi-patch and a degree of freedom mapper. | |
| template<class T > | |
| void | gsTraceLine (std::pair< gsFunction< T > *, gsFunction< T > * > &map, gsMatrix< T > const &x, gsMatrix< T > const &p, gsMatrix< T > &result) |
| void | toSolid (gsSolid< T > &sl, std::vector< std::vector< VertexHandle > > &iPoints, std::vector< std::vector< VertexHandle > > &oPoints, std::vector< std::vector< std::vector< VertexHandle > > > &innerBdrys, std::vector< std::vector< Vertex > > &innerBdrysMassP, std::vector< std::vector< bool > > &oPointsConvexFlag, std::vector< gsMesh< T > * > ¶Meshes, std::vector< gsMesh< T > * > &fitMeshes, std::vector< gsMesh< T > * > &patchMeshes, int kvOuterPoints, int kvAdditionalInnerPoints, bool plot, int meshPoints, bool moreInner=true, T wE=5, T wI=1, int closeBoundary=0, bool noSmooth=false) |
| Parametrized a number of patches given by iPoints, oPoints, innerBdrys, innerBdrysMassP and oPointsConvexFlag, fits B-spline surfaces to them and trimmes the resulting surfaces. The trimmed surfaces are then added to the empty solid sl and a half-edge structure for sl is generated. If desired, in paraview plotable meshes to visualize the solid are generated. | |
| gsVector< T > convertMultiPatchToFreeVector | ( | const gsMultiPatch< T > & | mp, |
| const gsDofMapper & | mapper | ||
| ) |
Computes a patch parametrization given a set of boundary geometries. Parametrization is not guaranteed to be non-singular. Works for planar surfaces and volumes.
| d | domain dimension |
| T | Coefficient type Convert the free control points of a multi-patch into a vector |
| void getPatchData | ( | T | angle, |
| T | innerAngle, | ||
| T | patchAreaWeight, | ||
| T | mergeSmallPatches, | ||
| std::vector< std::vector< VertexHandle > > & | iPoints, | ||
| std::vector< std::vector< VertexHandle > > & | oPoints, | ||
| std::vector< std::vector< std::vector< VertexHandle > > > & | innerBdrys, | ||
| std::vector< std::vector< Vertex > > & | innerBdrysMassP, | ||
| std::vector< std::vector< bool > > & | oPointsConvexFlag, | ||
| std::string | filenameFeatures, | ||
| int | useFeatures | ||
| ) |
Computes data describing the patch structure of the mesh. Combines getFeatures and getFaces.
| angle | - defines the angle between 2 triangles before the edge between them counts as sharp. By increasing this parameter, the function will identify a smaller number of patches of the mesh. | |
| innerAngle | - after the initial patch generation there is the possibility to subdivide the larger patches by a smaller angle. Larger is defined by patchAreaWeight. innerAngle should be smaller than angle, else it will not have any effect. | |
| patchAreaWeight | - patchAreaWeight determines how large a patch has to be such that it is subdivided by using the parameter innerAngle. | |
| mergeSmallPatches | - by using a low angle a lot of small patches might be produced. mergeSmallPatches gives the opportunity to merge the small patches. mergeSmallPatches decides how small the patches are allowed to be before they are merged. A value of 1 will merge patches if the area of them is smaller than the average area. | |
| [out] | iPoints | - the data about the inner points of a patch is stored in an unsorted vector. For each patch such a vector is generated. The parameter iPoints is a vector of these generated vectors. |
| [out] | oPoints | - the data about the boundary points of a patch is stored in a counter clockwise sorted vector. For each patch such a vector is generated. The parameter oPoints is a vector of these generated vectors. |
| [out] | innerBdrys | - the data about each hole of a patch is stored in a clockwise sorted vector. For each hole of a patch such a vector is generated. For each patch a vector of its holes is generated. The parameter innerBdrys is a vector of these generated vectors. |
| [out] | innerBdrysMassP | - the data about the mass points of each hole is stored here. |
| [out] | oPointsConvexFlag | - each boundary point can be convex of not, depending on the turning angles of the adjacent edges on the boundary. |
| filenameFeatures | - the path to the text file where the manually provided features (sharp edges) can be found. | |
| useFeatures | - if set to 1 the text file is used to add the features from the text file. If set to 2 these features are used exclusively. |
|
explicit |
Constructs the object using a given multi-patch and a degree of freedom mapper.
Computes a patch parametrization given a set of boundary geometries. Parametrization is not guaranteed to be non-singular. Works for planar surfaces and volumes.
| d | domain dimension |
| T | Coefficient type |
| bRep | Input boundary representation |
| initialMethod | Specify initialization method |
| filename | Name of input data file Constructs the object using a given multi-patch and a degree of freedom mapper. |
| void gsTraceLine | ( | std::pair< gsFunction< T > *, gsFunction< T > * > & | map, |
| gsMatrix< T > const & | x, | ||
| gsMatrix< T > const & | p, | ||
| gsMatrix< T > & | result | ||
| ) |
| map | is a planar map given by two component functions, that maps onto a template |
| p | is a 2x1 matrix storing a chosen point in our template |
| x | is a 2x1 matrix storing a starting point in our computational domain |
| result | is a 2xn matrix containing points on the pre-image curve |
| void toSolid | ( | gsSolid< T > & | sl, |
| std::vector< std::vector< VertexHandle > > & | iPoints, | ||
| std::vector< std::vector< VertexHandle > > & | oPoints, | ||
| std::vector< std::vector< std::vector< VertexHandle > > > & | innerBdrys, | ||
| std::vector< std::vector< Vertex > > & | innerBdrysMassP, | ||
| std::vector< std::vector< bool > > & | oPointsConvexFlag, | ||
| std::vector< gsMesh< T > * > & | paraMeshes, | ||
| std::vector< gsMesh< T > * > & | fitMeshes, | ||
| std::vector< gsMesh< T > * > & | patchMeshes, | ||
| int | kvOuterPoints, | ||
| int | kvAdditionalInnerPoints, | ||
| bool | plot, | ||
| int | meshPoints, | ||
| bool | moreInner = true, |
||
| T | wE = 5, |
||
| T | wI = 1, |
||
| int | closeBoundary = 0, |
||
| bool | noSmooth = false |
||
| ) |
Parametrized a number of patches given by iPoints, oPoints, innerBdrys, innerBdrysMassP and oPointsConvexFlag, fits B-spline surfaces to them and trimmes the resulting surfaces. The trimmed surfaces are then added to the empty solid sl and a half-edge structure for sl is generated. If desired, in paraview plotable meshes to visualize the solid are generated.
| [out] | sl | - The empty solid sl is designed by adding trimmed surface patches and incorporating a half-edge structure. |
| iPoints | - the data about the inner points of a patch is stored in an unsorted vector. For each patch such a vector is generated. The parameter iPoints is a vector of these generated vectors. | |
| oPoints | - the data about the boundary points of a patch is stored in a counter clockwise sorted vector. For each patch such a vector is generated. The parameter oPoints is a vector of these generated vectors. | |
| innerBdrys | - the data about each hole of a patch is stored in a clockwise sorted vector. For each hole of a patch such a vector is generated. For each patch a vector of its holes is generated. The parameter innerBdrys is a vector of these generated vectors. | |
| innerBdrysMassP | - the data about the mass points of each hole is stored here. | |
| oPointsConvexFlag | - each boundary point can be convex of not, depending on the turning angles of the adjacent edges on the boundary. | |
| [out] | paraMeshes | - a vector of meshes visualizing the parametrizations of the patches. |
| [out] | fitMeshes | - a vector of meshes visualizing the trimmed surfaces of the patches. |
| [out] | patchMeshes | - a vector of meshes visualizing the patches. |
| kvOuterPoints | - determines the multiplicity at the two end knots of the knot vector needed to approximate the surface of each face. | |
| kvAdditionalInnerPoints | - determines the number of additionl inner Points in the knot vector (equally distributed). The sqrt of the number of corners of a face are taken as a base value. | |
| plot | - if set to 1, it will generate meshes of each of the patches, its parametrization and also of the trimmed surfaces. | |
| meshPoints | - the accuracy of the visualization for the _fit plots. | |
| moreInner | - if additional interior points shall be added between large Edges. The number of points added per Edge are calculated by length(edge)/h. h is the length of one of the smaller Edges. (The Edge such that 10% of the other Edges are smaller.) | |
| wE | - weights for edge points during fitting the B-spline surfaces. | |
| wI | - weights for interior points during fitting the B-spline surfaces. | |
| closeBoundary | - if additional points on the edges shall be added, to reduce the possible gaps between two patches. | |
| noSmooth | - if the trimming curves shall not be smoothed out. |