- Entities and Modules
- Geometric evaluation (2D/3D)
- Intersection/Interference (2D/3D)
- Angle (2D/3D)
- Distance (2D/3D)
- Shortest Distance (2D)
- Side (2D/3D)
- Projection (2D/3D)
- Common Normal(2D/3D)
- Tangent (2D/3D)
- Common tangent (2D)
- Element creation (2D/3D)
- Fillet insertion (2D/3D)
- Offsetting (2D/3D)
- Sweeping/Skinning (3D)
- Line Segment operations (2D)
- Freeform operations (2D/3D)
- Composite Curve operations (2D/3D)
- Pseudo embedded graph(2D)
- Voronoi diagram / Delaunay diagram(2D)
- Set of triangles(2D/3D)
- (closed) Polygon(2D)
- S-patch(3D)
- Printing(2D/3D)
- Coordinate transformation (2D/3D)
- Vector operation (2D/3D)
- Equation
- Polynomial
- Matrix
- Others

Pnt | Point | Pln | Plane |

Vec | Vector | Sph | Spherical surface |

Axp | Local coordinate system | Cyl | Cylindrical surface |

Lin | Line | Con | Conical surface |

Lsg | Line segment (poly line) | Bzs | Bezier surface (polynom./rational) |

Cir | Circle | Bss | Bspline surace (polynom./rational) |

Ell | Ellipse | Les | Surface of linear extrusion |

Par | Parabola | Rvs | Surface of revolution |

Hyp | Hyperbola | Rts | Rectangular trimmed surface |

Bzc | Bezier curve (polynom./rational) | Cbs | Curve bounded surface |

Bsc | Bspline curve (polynom./rational) | GS | S Patch |

Trc | Trimmed curve | ||

Cmc | Composite curve |

GHL 3.4.4 is supplied as following sets(2D Subset or Fullset) which are combination of above mentioned entities.

Subset name | Entities |
---|---|

2D Subset | 2D Elements(Point/Vector/Axis Placement/Curve) + Utilities |

Fullset | 2D Subset + 3D Elements(Point/Vector/Axis Placement/Curve/Surface) |

- Evaluate a curve at a parameter (position, tangent vector, curvature, principal normal, tosion)
- Evaluate a surface at a pair of parameters (position, first/second partial derivatives, principal curvatures)
- Determine the length of curve
- Determine the area of curve
- Determine the enclosing box of curve
- Get the cusp points of curve
- Get the singular points of free-form curve
- Get the inflection points of free-form curve
- Get a self-intersection of free-form curve, line segment

Lin | Cir | Ell | Par | Hyp | Bzc | Bsc | Lsg | Trc | Cmc | |
---|---|---|---|---|---|---|---|---|---|---|

Lin | x | - | - | - | - | - | - | - | - | - |

Cir | x | x | - | - | - | - | - | - | - | - |

Ell | x | x | x | - | - | - | - | - | - | - |

Par | x | x | x | x | - | - | - | - | - | - |

Hyp | x | x | x | x | x | - | - | - | - | - |

Bzc | x | x | x | x | x | x | - | - | - | - |

Bsc | x | x | x | x | x | x | x | - | - | - |

Lsg | x | x | x | x | x | x | x | x | - | - |

Trc | x | x | x | x | x | x | x | x | x | - |

Cmc | x | x | x | x | x | x | x | x | x | x |

Lin | Cir | Ell | Par | Hyp | Bzc | Bsc | Trc | Cmc | |
---|---|---|---|---|---|---|---|---|---|

Pln | x | x | x | x | x | x | x | x | x |

Sph | x | x | x | x | x | x | x | x | x |

Cyl | x | x | x | x | x | x | x | x | x |

Con | x | x | x | x | x | x | x | x | x |

Bzs | x | x | x | x | x | x | x | x | x |

Bss | x | x | x | x | x | x | x | x | x |

Les | x | x | x | x | x | x | x | x | x |

Rvs | x | x | x | x | x | x | x | x | x |

Cbs | x | x | x | x | x | x | x | x | x |

Pln | Sph | Cyl | Con | Bzs | Bss | Les | Rvs | Cbs | |
---|---|---|---|---|---|---|---|---|---|

Pln | x | - | - | - | - | - | - | - | - |

Sph | x | x | - | - | - | - | - | - | - |

Cyl | x | x | x | - | - | - | - | - | - |

Con | x | x | x | x | - | - | - | - | - |

Bzs | x | x | x | x | x | - | - | - | - |

Bss | x | x | x | x | x | x | - | - | - |

Les | x | x | x | x | x | x | x | - | - |

Rvs | x | x | x | x | x | x | x | x | - |

Cbs | x | x | x | x | x | x | x | x | x |

Bzc | Bsc | Lsg | Trc | Cmc | |
---|---|---|---|---|---|

Bzc | x | - | - | - | - |

Bsc | x | x | - | - | - |

Lsg | - | - | x | - | - |

Trc | - | - | - | x | - |

Cmc | - | - | - | - | x |

Pln | Bzs | Bss | |
---|---|---|---|

Pln | - | - | - |

Bzs | x | x | - |

Bss | x | x | x |

Lin | Pln | |
---|---|---|

Lin | x | - |

Pln | x | x |

Pnt | Lin | |
---|---|---|

Pnt | x | - |

Lin | x | x |

- Curve : Lin/Cir/Ell/Par/Hyp/Bzc/Bsc/Lsg/Trc/Cmc

Lin | Cir | Ell | Par | Hyp | Bzc | Bsc | Lsg | Trc | Cmc | |
---|---|---|---|---|---|---|---|---|---|---|

Lin | x | - | - | - | - | - | - | - | - | - |

Cir | x | x | - | - | - | - | - | - | - | - |

Ell | x | x | x | - | - | - | - | - | - | - |

Par | x | x | x | x | - | - | - | - | - | - |

Hyp | x | x | x | x | x | - | - | - | - | - |

Bzc | x | x | x | x | x | x | - | - | - | - |

Bsc | x | x | x | x | x | x | x | - | - | - |

Lsg | x | x | x | x | x | x | x | x | - | - |

Trc | x | x | x | x | x | x | x | x | x | - |

Cmc | x | x | x | x | x | x | x | x | x | x |

- Entity : Pnt/Lin/Cir/Ell/Par/Hyp/Bzc/Bsc/Trc/Cmc/Pln

- Curve : Lin/Cir/Ell/Par/Hyp/Bzc/Bsc/Trc/Cmc

- Curve : Lin/Cir/Ell/Par/Hyp/Bzc/Bsc/Trc/Cmc
- Surface : Pln/Sph/Cyl/Con/Bzs/Bss/Les/Rvs/Cbs

- Curve : Lin/Cir/Ell/Par/Hyp/Bzc/Bsc/Lsg/Trc/Cmc

Lin | Cir | Ell | Par | Hyp | Bzc | Bsc | Lsg | Trc | Cmc | |
---|---|---|---|---|---|---|---|---|---|---|

Lin | x | - | - | - | - | - | - | - | - | - |

Cir | x | x | - | - | - | - | - | - | - | - |

Ell | x | x | x | - | - | - | - | - | - | - |

Par | x | x | x | x | - | - | - | - | - | - |

Hyp | x | x | x | x | x | - | - | - | - | - |

Bzc | x | x | x | x | x | x | - | - | - | - |

Bsc | x | x | x | x | x | x | x | - | - | - |

Lsg | x | x | x | x | x | x | x | x | - | - |

Trc | x | x | x | x | x | x | x | x | x | - |

Cmc | x | x | x | x | x | x | x | x | x | x |

- Curve : Lin/Cir/Ell/Par/Hyp/Bzc/Bsc/Trc/Cmc

Lin | Cir | Ell | Par | Hyp | Bzc | Bsc | Trc | Cmc | |
---|---|---|---|---|---|---|---|---|---|

Lin | x | - | - | - | - | - | - | - | - |

Cir | x | x | - | - | - | - | - | - | - |

Ell | x | x | x | - | - | - | - | - | - |

Par | x | x | x | x | - | - | - | - | - |

Hyp | x | x | x | x | x | - | - | - | - |

Bzc | x | x | x | x | x | x | - | - | - |

Bsc | x | x | x | x | x | x | x | - | - |

Trc | x | x | x | x | x | x | x | x | - |

Cmc | x | x | x | x | x | x | x | x | x |

- Create a line from 2 points
- Create a conic section (Cir/Ell/Par/Hyp) from 5 points
- Create a tangential circle of 3 entities(Pnt/Lin/Cir)(2D)
- Interpolate a polygon with free-form curve (Bsc)
- Approximate a polygon with free-form curve (Bzc/Bsc)
- Interpolate a polynet with free-form surface (Bss)
- Interpolate boundaries with free-from surface (Bss)
- Approximate a polynet with free-form surface (Bzs/Bss)
- Convert a curve into line-segment
- Convert a curve into rational free-form curve (Bzc/Bsc)
- Convert a surface into rational free-form surface (Bzs/Bss)
- Get an isoparametric curve of surface
- Convert a surface into set of triangle
- Convert a Bzs/Bss into grid points
- Reduce the number of segments of a Bss

Pnt | Lin | Cir | Ell | Par | Hyp | Bzc | Bsc | Trc | |
---|---|---|---|---|---|---|---|---|---|

Pnt | x | - | - | - | - | - | - | - | - |

Lin | x | x | - | - | - | - | - | - | - |

Cir | x | x | x | - | - | - | - | - | - |

Ell | x | x | x | x | - | - | - | - | - |

Par | x | x | x | x | x | - | - | - | - |

Hyp | x | x | x | x | x | x | - | - | - |

Bzc | x | x | x | x | x | x | x | - | - |

Bsc | x | x | x | x | x | x | x | x | - |

Trc | x | x | x | x | x | x | x | x | x |

Pnt | Lin | Cir | Ell | Par | Hyp | Bzc | Bsc | |
---|---|---|---|---|---|---|---|---|

Pnt | x | - | - | - | - | - | - | - |

Lin | x | x | - | - | - | - | - | - |

Cir | x | x | x | - | - | - | - | - |

Ell | x | x | x | x | - | - | - | - |

Par | x | x | x | x | x | - | - | - |

Hyp | x | x | x | x | x | x | - | - |

Bzc | x | x | x | x | x | x | x | - |

Bsc | x | x | x | x | x | x | x | x |

Pnt | Lin | Cir | Ell | Par | Hyp | Bzc | Bsc | |
---|---|---|---|---|---|---|---|---|

Pln | x | x | x | x | x | x | x | x |

Sph | x | x | x | x | x | x | x | x |

Cyl | x | x | x | x | x | x | x | x |

Con | x | x | x | x | x | x | x | x |

Bzs | x | x | x | x | x | x | x | x |

Bss | x | x | x | x | x | x | x | x |

Les | x | x | x | x | x | x | x | x |

Rvs | x | x | x | x | x | x | x | x |

Cbs | x | x | x | x | x | x | x | x |

Pln | Sph | Cyl | Con | Bzs | Bss | Les | Rvs | Cbs | |
---|---|---|---|---|---|---|---|---|---|

Pln | x | - | - | - | - | - | - | - | - |

Sph | x | x | - | - | - | - | - | - | - |

Cyl | x | x | x | - | - | - | - | - | - |

Con | x | x | x | x | - | - | - | - | - |

Bzs | x | x | x | x | x | - | - | - | - |

Bss | x | x | x | x | x | x | - | - | - |

Les | x | x | x | x | x | x | x | - | - |

Rvs | x | x | x | x | x | x | x | x | - |

Cbs | x | x | x | x | x | x | x | x | x |

- 2D element : Pnt/Lin/Cir/Ell/Par/Hyp/Bzc/Bsc/Trc/Cmc
- 3D element : Pnt/Lin/Cir/Ell/Par/Hyp/Bzc/Bsc/Trc/Pln/Sph/Cyl/Con/Bzs/Bss/Les/Rvs/Cbs

- input: Bsc, RBsc
- output: Bss, RBss

- input: Bsc, RBsc
- output: Bss, RBss

- Divide a line segment into two
- Trancate a line segment
- Reverse the direction of a line segment
- Judge the direction of a closed line segment

- Elevate the degree of Bzc/Bzs
- Divide a Bzc/Bzs into two
- Get the monomial form of Bzc
- Evaluate Bernstein functions at a parameter
- Elevate the degree of Bsc/Bss
- Insert a knot into Bsc/Bss
- Divide a Bsc/Bss into two
- Convert a Bsc/Bss into Bzc/Bzs
- Get the monomial form of Bsc
- Evaluate Bspline functions at a parameter
- Get the index of a Bspline segment that includes a given parameter
- Get the value of i-th knot
- Blossoming
- Judge whether a Bzs is planar or not
- etc.

- Add a trimmed curve at the end of a composite curve
- Count the number of trimmed curve in a composite curve
- Return the i-th trimmed curve in a composite curve
- Add a trimmed curve at a given point of a composite curve
- Get the segment of a composite curve
- remove self-intersection of closed composite curve(2D)
- set operation of closed composite curve(2D)
- etc.

- add vertices/edges/faces into a pseudo embedded graph
- remove vertices/edges/faces from a pseudo embedded graph
- attach arbitrary data to a vertex/edge/face
- call specified function for each of vertices/edges/faces
- etc.

- generate Voronoi/Delaunay diagram for a set of points
- attach arbitrary data to a vertex/edge/face
- etc.

- generate a triangulation for a set of points
- attach arbitrary data to a vertex/edge/face
- call specified function for each of vertices/edges/faces
- etc.

- judge whether a set of points is included by a closed polygon or not
- determine the loop-wise (CW/CCW) of closed polygon
- do set operation (sum/intersection) for 2 closed polygons
- etc.

- Allocate an empty s-patch
- Approximate s-patch with Set of Triangle
- Approximate s-patch with Bezier Surfaces
- Evaluate s-patch
- Create Gregory s-patch
- Free s-patch
- Depth elevation for normal s-patch
- Get normal vector of s-patch

- Set/Get the function for printing a string
- Set/Get the number of decimal columns for floating point numbers
- Print the type of entity
- Print the definition of entity

- Transform a point/vector into enclosing coordinate system
- Transform a point/vector into local coordinate system

- Get the norm of vector
- Unitize a vector
- Get the sum/difference/dot product/cross product of two vectors
- Sum vectors with weights
- Generate a vector which is perpendicular with a given vector

- Solve a quadric equation (real, complex)
- Solve n-th degree equation by Durand-Kerner method (complex)
- Solve n-th degree equation by Newton-Raphson method (real, complex)
- Solve simultaneous non-linear equations by Newton-Raphson method
- Integrate the specified function over finite interval

- Cross product of position and 1st derivative of a vector polynomial
- Cross product of 1st and 2nd derivatives of a vector polynomial
- Evaluate a real polynomial
- Evaluate a complex polynomial
- Multiply a polynomial by another polynomial
- Transform a vector polynomial into [0, 1] unit parameter section

- LU-decomposition of N * N matrix
- Solver of LU-decomposed linear equations
- Compute linear least square solutions

- Array management
- List management
- Binary-Tree/N-ary-Tree management
- Initialize various tolerance values
- Judge whether given points are collinear or not
- Judge whether given points are coplanar or not
- Translate a geometric element
- Rotate a geometric element
- Extend/contract a geometric element
- Convert a vector into slope angle in radian
- Normalize angle into [(0, 2pi)]
- Maximum/Minimum value in the arguments
- Coefficient of Pascal triangle
- Greatest Common Divider, Least Common Multiple
- etc.

Copyright (c) 2000 Precision Modeling Laboratory,Inc., Tokyo, Japan. All Rights Reserved.