chart.h File Reference Detailed DescriptionDefinition of a local chart on a point on a manifold. Definition in file chart.h.
Macro Definition Documentation
Charts are defined as polytopes in the tangent space. If the error is large the vertices of these polytopes are quite far away from the manifold and the plots have apparent gaps between the different charts. Those gaps can be minimized projecting the vertices of the charts to the manifold before plotting. Note: When using large charts this should be set to zero (points far away from the chart center do not properly converge to the manifold). Definition at line 40 of file chart.h. Referenced by PlotChart(), and PlotChartAsPolygon().
In general a chart is ploted using the edges between the vertices bounding the chart area of influence. For 2D manifolds the representation can be enhanced. In this case the edges define a polygon that can be filled. This results in a smoother graphical representation. Definition at line 50 of file chart.h. Referenced by PlotAtlas(), PlotAtlasRRT(), and PlotChart().
Sampling radius below this can not be reduced. Note that this is a ratio with respect to the original chart radius. Definition at line 59 of file chart.h. Referenced by ExtendAtlasFromPoint(), and NewChartFromPoint(). Function Documentation
Defines a new chart that locally parametrizes a manifold. This chart is supposed to be on a regular point. Otherwise an error is triggered. We do not extract m and k from the number of variables/equations in the world since our systems are overconstrained (we include redundant equations).
Definition at line 792 of file chart.c. References FALSE, InitChartInt(), and TRUE. Referenced by AddChart2Atlas(), ConnectSamplesChart(), ExtendAtlasFromPoint(), ExtendAtlasTowardPoint(), GradientSmooth(), InitAtlasFromPoint(), main(), NewChartFromPoint(), and NewTemptativeSample().
The same as InitChart but for charts possibly defined from singular points. No error is triggered if the point is not regular and charts are not forced to be singular.
Definition at line 800 of file chart.c. References FALSE, InitChartInt(), and TRUE. Referenced by FindSingularPoint().
The same as InitChart but for charts defined from singular points. Charts as marked as singular even if numerically they are determined to be regular.
Definition at line 808 of file chart.c. References FALSE, InitChartInt(), and TRUE. Referenced by DefineChartsAtBifurcation().
The same as InitChart but for points that are for sure on the manifold and collision free.
Definition at line 816 of file chart.c. References InitChartInt(), and TRUE. Referenced by AddTrustedChart2Atlas().
Defines a new chart that locally parametrizes a manifold. This is like InitChart but here the tangent space is given instead of computed from the Jacobian. This is used during branch switching where the tangent space is computed externally.
Definition at line 824 of file chart.c. References FALSE, InitChartInt(), and TRUE. Referenced by DefineChartsAtBifurcation(). Copies one chart into another.
Definition at line 833 of file chart.c. References Tchart::BJ, Tchart::center, CopyPolytope(), CopySPolytope(), Tchart::degree, Tchart::eCurv, Tchart::error, Tchart::frontier, Tchart::k, Tchart::l, Tchart::m, Tchart::ml, Tchart::n, NEW, Tchart::nl, Tchart::nrJ, Tchart::p, Tchart::r, Tchart::simple, Tchart::singular, Tchart::sp, Tchart::T, and Tchart::w. Referenced by main(). Computes the norm of the product of the tangent spaces on two charts. If they are similar, the norm of the resulting matrix must be below epsilon (the error). The comparison between tangent spaces is based on measuring the principal angles between the sub-spaces. Intuitively, similar sub-spaces have angles between them close to 0 or to pi.
Definition at line 901 of file chart.c. References Tchart::eCurv, Error(), Tchart::k, Tchart::m, MatrixDeterminant(), NEW, Tchart::T, TMatrixMatrixProduct(), and Tchart::w. Referenced by FindSingularPoint(), and IntersectChartsInt(). This is a wrapper for MinCosinusBetweenSubSpaces that can be used with charts.
Definition at line 920 of file chart.c. References Error(), Tchart::k, Tchart::m, MinCosinusBetweenSubSpaces(), Tchart::T, and Tchart::w. Referenced by DefineChartsAtBifurcation(), and FindSingularPoint().
Returns a pointer to the world structure with the system of equations defining the manifold. This is used to determine is two charts are defined on the same manifold (i.e., the same world).
Definition at line 928 of file chart.c. References Tchart::w.
Returns a pointer to the point from which the local chart is defined
Definition at line 933 of file chart.c. References Tchart::center. Referenced by AddChart2Btree(), AtlasAStar(), AtlasGBF(), BuildAtlasFromPoint(), ExtendAtlasTowardPoint(), FindSingularPoint(), GeodesicDistance(), InitBTree(), MinimizeOnAtlas(), PlotAtlas(), PlotBifurcations(), PlotQrand(), ReconstructAtlasPath(), RefineSingularPoint(), SaveChartCenters(), SaveSingularCharts(), SearchInBtree(), and TriangulateAtlas().
Returns the radious of influence for the chart.
Definition at line 938 of file chart.c. References Tchart::r. Referenced by ExtendAtlasTowardPoint(), and InitBTree().
Returns the adjusted radious of influence for the chart. Right now there is no difference between the radius and the sampling radious. This can change in the future.
Definition at line 943 of file chart.c. References Error(), Tchart::simple, Tchart::sp, and SPolytopeGetSamplingRadius(). Referenced by PrintAtlasRRTStatistics(), and RandomPointInAtlasTree().
Returns the maximum error between the chart and the manifold.
Definition at line 950 of file chart.c. References Tchart::error.
Returns the maximum oriented curvature error between the chart and the manifold.
Definition at line 955 of file chart.c. References Tchart::eCurv.
Returns the dimensionality of the ambient space where the manifold is defined
Definition at line 960 of file chart.c. References Tchart::m. Referenced by InitBTree().
Returns a pointer to the matrix defining a basis of the chart tangent space. This matrix is m x k.
Definition at line 970 of file chart.c. References Tchart::T. Referenced by DefineChartsAtBifurcation(), DetectBifurcation(), FindRightNullVector(), FindSingularPoint(), GradientSmooth(), and RefineSingularPoint(). Returns TRUE for charts defined on singularities (i.e., points where the Jacobian is not full rang).
Definition at line 980 of file chart.c. References Tchart::singular. Referenced by DetectBifurcation(), ExtendAtlasFromPoint(), ExtendAtlasTowardPoint(), FindSingularPoint(), PlotAtlas(), and SaveSingularCharts(). Returns a pointer to an array of booleans indicating the linearly independent vectors of the Jacobian. This can be NULL if the Jacobian basis is not yet computed.
Definition at line 975 of file chart.c. References Tchart::BJ.
The degree the modulo 2 of the number of non-negative real eigenvalues (i.e., possitive, or complex) of the squared matrix formed by the Jacobian in the top rows and the transposed tangent space (given in the function call) in the bottom rows. The degree of a chart is the degree for the center of this chart (i.e., the Jacobian is evaluated at the center of the chart). The degree is used to detect bifurcations (a change in the degree between two points on the manifold indicates that the line connecting the points crosses a bifurcation. Note that for this procedure to work effectively, we have to use the same tangent space to complement the Jacobian of the two points to be tested. That is, we use the tangent space of one of the points to evaluate the degrees of the two points. That is, the degree is not something intrinsec of a chart that can be computed and stored forever but depends on couples of charts (that use the same tangent space). When computing the degree for a pair of charts (a,b) we use the tangent space of a for the two evaluations. We use the cached degree for a and compute that of b from scratch using the tangent space of a. If we evaluate the possible existance of a bifurcation in between (b,a) we re-use the cached degree in b and we recompute that for a using the tangent space of b.
Definition at line 985 of file chart.c. References Tchart::BJ, Tchart::center, CT_EPSILON, Tchart::degree, Error(), EvaluateJacobianSubSetInVector(), FALSE, GetParameter(), Tchart::k, Tchart::m, MatrixDeterminantSgn(), Tchart::n, NEW, NO_UINT, PrintMatrix(), PrintVector(), Tchart::singular, SubMatrixFromTMatrix(), Tchart::T, and TRUE. Referenced by DetectBifurcation(), and FindSingularPoint().
Returns the parametrization on the tangent space of a point on the manifold. In principle any point can be projected to the tangent space, even those given parameters out of the radius of the chart. This corresponds to the logarithmic map in differential geometry. In some cases we have to take into account the topology of the ambient space and in others not. When trying to determine which charts are neighbours, we take it into account so that we obtain the closest projection of a point to the current chart center. When defining RRT branches on the tangnent space the topology is not considered so that we define the correct advance direction towards the random/goal sample. We directly project the points to the tangent space, without transforming the point to project into canonical form (i.e,. move it in the range -pi,pi for the dimensions with circular topology). It is the user option to transform the point to project before actually projecting it. Observe that transforming a point before projecting it can actually generate a set of parameters that do not give the shortest displacement to the projected sample. This is critical when defining RRT-like structures using the charts.
Definition at line 1036 of file chart.c. References ArrayPi2Pi(), Tchart::center, DifferenceVector(), DifferenceVectorTopology(), Tchart::k, Tchart::m, Tchart::n, NEW, Norm(), Tchart::T, and TMatrixVectorProduct(). Referenced by AddBranchToAtlasRRT(), AddChart2AtlasRRT(), AddSample2AtlasRRT(), ClassifyPointInChart(), ConnectSamplesChart(), Error2Chart(), FindSingularPoint(), FocusedPointOnBoundary(), ForceChartCut(), IntersectChartsInt(), main(), NewTemptativeSample(), PointOnChart(), PointTowardRandSample(), PopulateWithSamples(), ReconstructAtlasPath(), and SaveChartCenters().
Returns a point in the mainifold corresponding to a set of parameters in a given chart. Note that not all parameters can be savely mapped to the manifold. The implicit function theorem guarantees the mapping to be valid for a ball around the linealization point. In principle this ball should reach the singularity locus possibly sourronding the central point. However, this mapping is implemented using a numerical procedure than can fail to converge even far from the singularity frontier. This corresponds to the exponential map in differential geometry. In many cases, this function not applies the pi2pi mapping since the output points can be used with many purposes (not only creating new charts). Thus, this function can produce points larger/smaller than pi/-pi in circular dimensions. The trick here is:
To skip the pi2pi mapping just call the function with tp set to NULL.
Definition at line 1066 of file chart.c. References ArrayPi2Pi(), Tchart::BJ, Tchart::center, CS_WD_EVALUATE_SIMP_EQUATIONS, CS_WD_EVALUATE_SUBSET_SIMP_EQUATIONS, CT_EPSILON, CT_MAX_NEWTON_ITERATIONS, DeleteLS(), DifferenceVectorTopology(), DistanceTopology(), Error(), EvaluateJacobianInVector(), EvaluateJacobianSubSetInVector(), FALSE, GetLSMatrixBuffer(), GetLSRHBuffer(), GetLSSolutionBuffer(), GetParameter(), INF, InitLS(), Tchart::k, Local2Global(), LSSolve(), Tchart::m, Tchart::n, NEW, Norm(), Tchart::nrJ, PI2PI, SubMatrixFromTMatrix(), SumVector(), Tchart::T, TMatrixVectorProduct(), TOPOLOGY_S, TRUE, and Tchart::w. Referenced by ChartVolume(), ClassifyPointInChart(), ConnectSamplesChart(), DistanceOnChart(), ExtendAtlasFromPoint(), ExtendAtlasTowardPoint(), FindSingularPoint(), GradientSmooth(), main(), MinimizeOnAtlas(), NewChartFromPoint(), NewTemptativeSample(), PathInChart(), PlotChart(), PlotChartAsPolygon(), PointOnChart(), and SaveChartCenters().
Uses the center and the base of the tangent space to generate a point in ambient space from a parameter set in tangent space.
Definition at line 1212 of file chart.c. References AccumulateVector(), ArrayPi2Pi(), Tchart::center, Tchart::k, Tchart::m, MatrixVectorProduct(), Tchart::n, SumVector(), and Tchart::T. Referenced by Chart2Manifold(), ChartErrorFromParameters(), CutPolytopeWithFace(), PlotAtlasRRT(), PlotChart(), PlotChartAsPolygon(), PlotQrand(), PointTowardRandSample(), and RandomPointInChart().
Transforms p to the ambient space (via Local2Global) and compute the distance to p. The point p and the paramters t are supposed to correspond each other (via the Chart2Manifold and Manifold2Chart mappings).
Definition at line 1229 of file chart.c. References DistanceTopology(), Local2Global(), Tchart::m, Tchart::n, and NEW. Referenced by Error2Chart().
Basically combines Manifold2Chart with ChartErrorFromParameters.
Definition at line 1247 of file chart.c. References ChartErrorFromParameters(), Tchart::k, Manifold2Chart(), Tchart::n, and NEW.
Determines if two local charts are close and have similar tangent spaces.
Definition at line 1264 of file chart.c. References FALSE, IntersectChartsInt(), and NO_UINT. Referenced by ExtendAtlasFromPoint(), ExtendAtlasTowardPoint(), NewChartFromPoint(), and NewTemptativeSample().
Determines if two chart are neighbours and intersect the corresponding polytopes.
Definition at line 1270 of file chart.c. References IntersectChartsInt(), and TRUE. Referenced by DetermineChartNeighbours(). Identifies charts that are in collision
Definition at line 1277 of file chart.c. References Tchart::collision. Referenced by ExtendAtlasFromPoint(), ExtendAtlasTowardPoint(), and NewChartFromPoint(). Identifies charts that are at the borders of the domain.
Definition at line 1282 of file chart.c. References Tchart::frontier. Referenced by AtlasVolume(), InitAtlasFromPoint(), PlotAtlas(), and SaveChartCenters().
Marks a chart as a frontier chart. Frontier charts are note expanded.
Definition at line 1287 of file chart.c. References Tchart::frontier, and TRUE. Referenced by ExtendAtlasFromPoint(), and NewChartFromPoint(). TRUE for external (frontier) charts, i.e., charts that can be used to expand the atlas. If the chart is based on simple polytope this function will trigger an error since simple polytopes can not identify open charts.
Definition at line 1292 of file chart.c. References Error(), ExpandiblePolytope(), Tchart::frontier, Tchart::p, and Tchart::simple. Referenced by AtlasAStar(), AtlasGBF(), FocusedPointOnBoundary(), and PlotAtlas(). TRUE for charts with polytope vertices still outside the ball. Those vertices can still be used to generate neighbours for the chart. If the chart is based on simple polytope this function will return TRUE always since for simple polytopes it is not possible to determine if a chart is closed or not. This is equivalent to ExpandibleChart but this function does not trigger error for charts based on simple polytopes.
Definition at line 1300 of file chart.c. References ExpandiblePolytope(), Tchart::p, and Tchart::simple. Referenced by BuildAtlasFromPoint().
Wrapper for WrongPolytopeCorner.
Definition at line 1305 of file chart.c. References Error(), Tchart::p, Tchart::simple, and WrongPolytopeCorner(). Referenced by AtlasAStar(), and BuildAtlasFromPoint(). Wrapper for InsidePolytope (or InsideSPolytope).
Definition at line 1313 of file chart.c. References InsidePolytope(), InsideSPolytope(), Tchart::p, Tchart::simple, and Tchart::sp. Referenced by ClassifyPointInChart(), NewTemptativeSample(), and PointOnChart().
This function determines the neighbouring chart that includes a point inside the chart radius but outside the polytope. This is implemented determining the chart borders crossed when moving to the point.
Definition at line 1321 of file chart.c. References DetermineSPolytopeNeighbour(), Error(), NO_UINT, Tchart::simple, and Tchart::sp. Referenced by NewTemptativeSample(), and PopulateWithSamples().
Ensures that a chart includes a given point possibly modifying the faces enlarging the polytope. Note that this function is not implemented for normal polytpes since moving a face will represent to recompute all vertices and this is too expensive. Thus, this function is only used from AtlasRRT where charts are defined with simple polytopes.
Definition at line 1332 of file chart.c. References EnlargeSPolytope(), Error(), Tchart::simple, and Tchart::sp. Referenced by AddChart2AtlasRRT(), NewTemptativeSample(), and PopulateWithSamples(). Wapper for PolytopeBoundaryPointFromExternalCorner.
Definition at line 1340 of file chart.c. References Error(), Tchart::p, PolytopeBoundaryPointFromExternalCorner(), Tchart::r, and Tchart::simple. Referenced by AtlasAStar(), and BuildAtlasFromPoint().
This is the same as BoundaryPointFromExternalCorner but instead of selecting one vertex returns points for all the possible vertices. This is used when parallelizing the generation of children charts from a given chart.
Definition at line 1348 of file chart.c. References Error(), Tchart::p, PolytopeBoundaryPointsFromExternalCorners(), Tchart::r, and Tchart::simple. Wrapper for PolytopeRandomPointOnBoundary.
Definition at line 1356 of file chart.c. References Tchart::p, PolytopeRandomPointOnBoundary(), Tchart::r, Tchart::simple, Tchart::sp, and SPolytopeRandomPointOnBoundary(). Referenced by AtlasGBF().
Selects a point on a chart with uniform distribution. Points are given in the tangent space associated with the chart and not on the manifold. However, given the chart manifold, a point on the tangent is supposed to give a point on the manifold. This is basically a wrapper RandomPointInPolytope plus a conversion of local points to global.
Definition at line 1364 of file chart.c. References Local2Global(), Tchart::p, RandomPointInPolytope(), RandomPointInSPolytope(), Tchart::simple, and Tchart::sp. Referenced by RandomPointInAtlas(), and RandomPointInAtlasTree().
Valid sampling on a chart leads to an increment of the sampling area.
Definition at line 1379 of file chart.c. References Tchart::simple, Tchart::sp, and SPolytopeIncreaseSamplingRadius(). Referenced by AtlasRRT(), and AtlasRRTSample().
Rejection sampling on a chart leads to a reduction of the sampling area.
Definition at line 1385 of file chart.c. References Tchart::simple, Tchart::sp, and SPolytopeDecreaseSamplingRadius(). Referenced by AtlasRRT(), and AtlasRRTSample().
This is a simplified version of ChartVolume where collisions are not taken into account. Thus this returns an upper bound approximation of the collision free volume of the chart. This is used to fix some thresholds in RRT*.
Definition at line 1391 of file chart.c. References Tchart::p, PolytopeVolume(), Tchart::simple, Tchart::sp, and SPolytopeVolume(). Referenced by ChartVolume().
Estimate the volume of part of the manifold covered by a chart. The volume is estimated via MonteCarlo on the tangent space. Note that this function replicates PolytopeVolume and SPolytopeVolume but including the collision detection, which is not computable at the level of polytopes.
Definition at line 1406 of file chart.c. References Chart2Manifold(), ChartMaxVolume(), CS_WD_IN_COLLISION, INF, Tchart::k, Tchart::m, NEW, Tchart::p, PolytopeMaxVolume(), RandomPointInPolytope(), RandomPointInSPolytope(), Tchart::simple, Tchart::sp, SPolytopeMaxVolume(), and Tchart::w. Referenced by AtlasVolume(). Tries to generate a point on the chart boundary that is aligned with a given point on the manifold.
Definition at line 1458 of file chart.c. References Error(), ExpandibleChart(), FALSE, InsidePolytope(), Tchart::k, Manifold2Chart(), Tchart::p, Tchart::r, ScaleVector(), and Tchart::simple.
Defines the path to a point in the chart. The samples added to the path are those resulting from using the chart projection moving at steps of size delta towards the given set of parameters. The final point is also added to the path. This is used when reconstructing the path from the start point to the goal and the segment of path on this chart is concatenated to the path already found.
Definition at line 1477 of file chart.c. References AddSample2Samples(), Tchart::center, Chart2Manifold(), CS_WD_ORIGINAL_IN_COLLISION, CS_WD_REGENERATE_ORIGINAL_POINT, CT_DELTA, Distance(), DistanceTopology(), Tchart::error, FALSE, GetParameter(), Tchart::k, Tchart::m, NEW, Norm(), ScaleVector(), TRUE, and Tchart::w. Referenced by ReconstructAtlasPath().
Approximates the geodesic distance between the center of a chart and a point on this chart. This is like GeodesicDistance but this function only operates on points on the same chart. If the path is not collision free, this function returns INF.
Definition at line 1546 of file chart.c. References Tchart::center, Chart2Manifold(), CS_WD_IN_COLLISION, CT_DELTA, Distance(), DistanceTopology(), Tchart::error, FALSE, GetParameter(), INF, Tchart::k, Tchart::m, NEW, Norm(), ScaleVector(), TRUE, and Tchart::w. Referenced by AtlasAStar(), and AtlasGBF().
Identifies points that are inside the area of influence of a given chart.
Definition at line 1602 of file chart.c. References Chart2Manifold(), CT_EPSILON, DistanceTopology(), Tchart::error, FALSE, GetParameter(), InsideChartPolytope(), Tchart::m, Manifold2Chart(), NEW, and Tchart::r. Referenced by AtlasAStar(), and AtlasGBF().
Computes the relative position of a point with respect to a given chart. The point can be
Codes 0 and 1 correspont to points inside the scope of the chart, although in different circumstances. In the first case the point wil for sure move to a neighbouring chart as new charts are created and in the second this is less likely to occur (but not impossible).
Definition at line 1629 of file chart.c. References Chart2Manifold(), CT_EPSILON, DistanceTopology(), Tchart::error, GetParameter(), InsideChartPolytope(), Tchart::m, Manifold2Chart(), NEW, and Tchart::r. At bifurcation points we generate two charts, one at the singular point with tangent space aligned with the charts that allowed to detect the bifurcation and a chart at the other branch of the manifold. These two charts overlap because they are almost defined at the same point but with different tangent spaces. Since they have different tangent spaces they will not be considered neighbours by IntersectCharts and they have to be linked explicitly using this function. Explicitly linked chats also appear in the list of neighbours as retrieved using ChartNumNeighbours or ChartNeighbourID.
Definition at line 1669 of file chart.c. References LinkChart(). Referenced by DefineChartsAtBifurcation().
Crops the domain of a given chart with a constraint derived form the global domain. This is used for charts that are at the border of the global domain.
Definition at line 229 of file chart.c. References CutPolytopeWithFace(), CutSPolytopeWithFace(), GeneralDotProduct(), Tchart::k, Tchart::m, NEW, NO_UINT, Norm(), Tchart::p, ScaleVector(), Tchart::simple, Tchart::sp, and Tchart::w. Referenced by ExtendAtlasFromPoint().
Intersects two charts without checking first if they are actually neighbours. This is used in the AtlasRRT when using loose controls aboud curvature. In this case we can end up generating a chart that is not neighbour with its parent (but it must be almost neighbour). In this situation we enforce the neighbouring relation between them.
Definition at line 265 of file chart.c. References Tchart::center, CutPolytope(), CutSPolytope(), Tchart::k, Tchart::m, Manifold2Chart(), NEW, Tchart::p, Tchart::r, Tchart::simple, Tchart::sp, and Tchart::w. Referenced by AddChart2AtlasRRT().
Returns the number of neighbouring charts. Note that for charts at the border of the ambient space, this returns and overestimation of the number of neighbours: it includes "virtual" neighbours generated by cropping the chart with the ambient space borders. These virtual neighbours have NO_UINT as identifier.
Definition at line 1675 of file chart.c. References Tchart::nl, Tchart::p, PolytopeNumNeighbours(), Tchart::simple, Tchart::sp, and SPolytopeNumNeighbours(). Referenced by AddChart2AtlasRRT(), AtlasAStar(), DetermineChartNeighbours(), GetRRTNNInNeighbourChart(), PlotAtlas(), PopulateWithSamples(), and SaveChartCenters().
Gives the identifer for one of the neighbours of a chart. For the virtual neighbours eventually generated due to the intersection of the chart with the ambient space domain, NO_UINT is returned. The caller must take care of not using output of this function in these special cases.
Definition at line 1687 of file chart.c. References Tchart::l, Tchart::nl, Tchart::p, PolytopeNeighbourID(), Tchart::simple, Tchart::sp, and SPolytopeNeighbourID(). Referenced by AddChart2AtlasRRT(), AtlasAStar(), GetRRTNNInNeighbourChart(), PlotAtlas(), PopulateWithSamples(), and SaveChartCenters().
When triangulating an atlas we want to define a triangle for each vertex of the atlas. Thus, for each vertex, we identify the three coincident charts so that we can connect their centers forming a triangle. The charts are the one defining the polytope whose vertex we are analyzing plust the two charts defining the edges coincident at that vertex. This only operates for bidimendional manifolds and does not return the neighbours through singularities. This is only used when triangulating atlas.
Definition at line 1704 of file chart.c. References DeletePolytope(), GetPolytopeNeighboursFromVertices(), NEW, Tchart::p, Tchart::simple, Tchart::sp, and SPolytope2Polytope(). Referenced by TriangulateAtlas().
Plots a 3d projection of a local chart. In only works for 2D or 3D manifolds. We plot the edges delimiting the chart. Observe that this function does not take into account the topology of the variables in order to avoid plotting weird charts. When plotting on variables with topology TOPOLOGY_S a cut is introduced at pi and since plots are in generated in R. Charts over pi will produce vertices larger/smaller than pi/-pi. The resulting plot won't be continuous.
Definition at line 1726 of file chart.c. References Chart2Manifold(), CS_WD_REGENERATE_ORIGINAL_POINT, CT_CUT_X, CT_CUT_Y, CT_CUT_Z, DeletePolytope(), Error(), GetParameter(), GetPolytopeEdges(), GetPolytopeVertices(), INF, Tchart::k, Local2Global(), Tchart::m, M_2PI, NEW, Tchart::p, PLOT_AS_POLYGONS, PLOT_ON_MANIFOLD, PlotChartAsBox(), PlotChartAsPolygon(), PlotVect3d(), Tchart::simple, Tchart::sp, SPolytope2Polytope(), and Tchart::w. Referenced by PlotAtlas().
Returns the approximated memory used (in bytes) by a given chart.
Definition at line 1862 of file chart.c. References Tchart::k, Tchart::m, Tchart::p, PolytopeMemSize(), Tchart::simple, Tchart::sp, and SPolytopeMemSize(). Referenced by AtlasMemSize().
Stores the chart information on a file.
Definition at line 1877 of file chart.c. References Tchart::BJ, Tchart::center, Tchart::degree, Tchart::eCurv, Tchart::error, Tchart::frontier, Tchart::k, Tchart::l, Tchart::m, Tchart::ml, Tchart::n, Tchart::nl, Tchart::nrJ, Tchart::p, Tchart::r, SavePolytope(), SaveSPolytope(), Tchart::simple, Tchart::singular, Tchart::sp, and Tchart::T. Referenced by SaveAtlas().
Chart constructor from the information on a file. The information is to be generated with SaveChart.
Definition at line 1932 of file chart.c. References Tchart::BJ, Tchart::center, Tchart::degree, Tchart::eCurv, Tchart::error, Tchart::frontier, Tchart::k, Tchart::l, LoadPolytope(), LoadSPolytope(), Tchart::m, Tchart::ml, Tchart::n, NEW, Tchart::nl, Tchart::nrJ, Tchart::p, Tchart::r, Tchart::simple, Tchart::singular, Tchart::sp, Tchart::T, and Tchart::w. Referenced by LoadAtlas().
Deletes the information stored in a chartping.
Definition at line 2011 of file chart.c. References Tchart::BJ, Tchart::center, DeletePolytope(), DeleteSPolytope(), Tchart::l, Tchart::p, Tchart::sp, and Tchart::T. Referenced by ConnectSamplesChart(), DeleteAtlas(), ExtendAtlasFromPoint(), ExtendAtlasTowardPoint(), FindSingularPoint(), GradientSmooth(), InitChartInt(), main(), NewChartFromPoint(), and NewTemptativeSample(). |
Follow us!