This document describes contents of version up from GHL 3.4.2 to GHL 3.4.3.

**2D : Region Quadtree Functions**- Region quadtree functions make and manage quadtrees to represent effective regions in 2D space.
**2D: Another version of offsetting a composite curve()**- Another functions to offset a composite curve by a composite curve . In case of adjacent two trimmed curves in the original composite curve are not tangential continuous and causes a disconnection of offset curves, disconnected offset curves are connected with two bounded lines, instead of an arc. Each bounded line is extended from end point of each offset curve, towards tangent vector at each end point, and ended at an intersection point with each other.
**2D: Judges the sense of rotation of a closed composite curve**- A Function which judges the sense of rotation of a closed composite curve, was added.
**3D : Approximation of a grid of points by a Bspline surface : improved**- Functions to find a Bspline surface that approximates a grid of points are improved.
**3D: Another versions of offsetting**-
Type 3 functions
are added for offsetting a point/curve/surface with a Bspline surface or a set of Bezier surfaces.
New functions approximate sample points with a Bspline surface
by calling the latest approximation function, not by using own logic.
example: ghlv3/examples/offset/ofst_srf.c

gh2rqtNew creates a quadtree gh2rqtDispose disposes a quadtree gh2rqtGetMemSize gets size of memory areas being used by a quadtree gh2rqtGetExtent gets geometrical extent of a quadtree gh2rqtGetPixLevel gets pixel level of a quadtree gh2rqtGetRoot gets root quadrant of a quadtree gh2rqtIntersect rids a quadtree of intersections with a curve gh2rqtHasIntersection judges whether a quadtree and a curve intersect or not gh2rqtMakeCCL makes CCL in a quadtree gh2rqtClearCCL removes CCL in a quadtree gh2rqtCountComponents gets the number of CCLs in a quadtree gh2rqtGetQuadComponent gets CCL which a quadrant belongs to gh2rqtQuadDivide divides a quadrant gh2rqtQuadMergeIfP merges subtree of a quadrant if possible gh2rqtQuadMergeIfP2 merges subtree of a quadrant if possible (type 2) gh2rqtQuadIsLeaf gets whether a quadrant is leaf or not gh2rqtQuadIsPixel gets whether a quadrant is pixel or not gh2rqtQuadSetValue sets specified value on a quadrant gh2rqtQuadGetValue gets value of a quadrant gh2rqtQuadSetApplData1 sets specified value on application data 1 of a quadrant gh2rqtQuadSetApplData2 sets specified value on application data 2 of a quadrant gh2rqtQuadGetApplData1 gets value of application data 1 of a quadrant gh2rqtQuadGetApplData2 gets value of application data 2 of a quadrant gh2rqtQuadGetChild gets specified child of a quadrant gh2rqtQuadGetExtent gets geometrical extent of a quadrant gh2rqtQuadGetLevel gets level of a quadrant gh2rqtQuadGetMother gets parent of a quadrant gh2rqtQuadGetTree gets a quadtree which a quadrant belongs to gh2rqtQuadGetType gets type of a quadrant gh2rqtQuadGtEqEdgeNeighbor gets edge neighbor of a quadtree gh2rqtQuadGtEqVrtxNeighbor gets vertex neighbor of a quadtree gh2rqtQuadTraverse traverses subtree of a quadrant gh2rqtQuadTraverse2 traverses subtree of a quadrant (type 2) gh2rqtQuadHasIntersection judges whether a quadrant and a curve intersect or not gh2rqtSetOpIntersection gets intersection between two aligned quadtrees gh2rqtSetOpUnion gets union between two aligned quadtrees gh2rqtSetOpSubtraction gets sutraction between two aligned quadtrees gh2rqtSerialize serializes a quadtree gh2rqtUnserialize un-serializes a quadtree gh2rqtAllcSerializedQuadtree allocates memory areas for a serialized quadtree gh2rqtFreeSerializedQuadtree frees memory areas for a serialized quadtree gh2rqtConvCCrv converts a region enclosed by a closed curve into a quadtree gh2ofstCmcCmcByBzc3 finds a composite curve which approximates an offset of a composite curve (official version, type 3) gh2ofstCmcCmcByBsc3 finds a composite curve which approximates an offset of a composite curve (official version, type 3) gh2jdgwCCmc judges the sense of rotation of a closed composite curve

gh3aprcBss_Rev2 approximates points by a bi-cubic Bspline surface in the given precision (type 1, improved) gh3aprcBss2_Rev2 approximates points by a bi-cubic Bspline surface in the given precision (type 2, improved) gh3aprcBss3_Rev2 approximates points by a bi-cubic Bspline surface in the given precision (type 3, improved) gh3aprcBss32_Rev2 approximates points by a bi-cubic Bspline surface in the given precision (type 3-2, improved) gh3aprcBss4_Rev2 approximates points by a bi-cubic Bspline surface in the given precision (type 4, improved) gh3aprcBss42_Rev2 approximates points by a bi-cubic Bspline surface in the given precision (type 4-2, improved) gh3aprcCBss_Rev2 approximates points by a closed bi-cubic Bspline surface in the given precision (type 1, improved) gh3aprcCBss2_Rev2 approximates points by a closed bi-cubic Bspline surface in the given precision (type 2, gh3ofstPntBzs3 finds a bezier surface which approximates an offset of a point (type 3) gh3ofstPntBss3 finds a Bspline surface which approximates an offset of a point (type 3) gh3ofstLinBzs3 finds a bezier surface which approximates an offset of a line (type 3) gh3ofstCirBzs3 finds a bezier surface which approximates an offset of a circle (type 3) gh3ofstEllBzs3 finds a bezier surface which approximates an offset of a ellipse (type 3) gh3ofstParBzs3 finds a bezier surface which approximates an offset of a parabola (type 3) gh3ofstHypBzs3 finds a bezier surface which approximates an offset of a hyperbola (type 3) gh3ofstBzcBzs3 finds a bezier surface which approximates an offset of a bezier curve (type 3) gh3ofstBscBzs3 finds a bezier surface which approximates an offset of a Bspline curve (type 3) gh3ofstRBzcBzs3 finds a bezier surface which approximates an offset of a rational bezier curve (type 3) gh3ofstRBscBzs3 finds a bezier surface which approximates an offset of a rational Bspline curve (type 3) gh3ofstTrcBzs3 finds a bezier surface which approximates an offset of a trimmed curve (type 3) gh3ofstLinBss3 finds a Bspline surface which approximates an offset of a line (type 3) gh3ofstCirBss3 finds a Bspline surface which approximates an offset of a circle (type 3) gh3ofstEllBss3 finds a Bspline surface which approximates an offset of a ellipse (type 3) gh3ofstParBss3 finds a Bspline surface which approximates an offset of a parabola (type 3) gh3ofstHypBss3 finds a Bspline surface which approximates an offset of a hyperbola (type 3) gh3ofstBzcBss3 finds a Bspline surface which approximates an offset of a bezier curve (type 3) gh3ofstBscBss3 finds a Bspline surface which approximates an offset of a Bspline curve (type 3) gh3ofstRBzcBss3 finds a Bspline surface which approximates an offset of a rational bezier curve (type 3) gh3ofstRBscBss3 finds a Bspline surface which approximates an offset of a rational Bspline curve (type 3) gh3ofstTrcBss3 finds a Bspline surface which approximates an offset of a trimmed curve (type 3) gh3ofstPlnBzs3 finds a bezier surface which approximates an offset of a plane (type 3) gh3ofstSphBzs3 finds a bezier surface which approximates an offset of a sphere (type 3) gh3ofstCylBzs3 finds a bezier surface which approximates an offset of a cylinder (type 3) gh3ofstConBzs3 finds a bezier surface which approximates an offset of a cone (type 3) gh3ofstBzsBzs3 finds a bezier surface which approximates an offset of a bezier surface (type 3) gh3ofstBssBzs3 finds a bezier surface which approximates an offset of a bspline surface (type 3) gh3ofstRBzsBzs3 finds a bezier surface which approximates an offset of a rational bezier surface (type 3) gh3ofstRBssBzs3 finds a bezier surface which approximates an offset of a rational Bspline surface (type 3) gh3ofstLesBzs3 finds a bezier surface which approximates an offset of a linear extrusion surface (type 3) gh3ofstRvsBzs3 finds a bezier surface which approximates an offset of a revolution surface (type 3) gh3ofstRtsBzs3 finds a bezier surface which approximates an offset of a rectangular trimmed surface (type 3 gh3ofstPlnBss3 finds a Bspline surface which approximates an offset of a plane (type 3) gh3ofstSphBss3 finds a Bspline surface which approximates an offset of a sphere (type 3) gh3ofstCylBss3 finds a Bspline surface which approximates an offset of a cylinder (type 3) gh3ofstConBss3 finds a Bspline surface which approximates an offset of a cone (type 3) gh3ofstBzsBss3 finds a Bspline surface which approximates an offset of a bezier surface (type 3) gh3ofstBssBss3 finds a Bspline surface which approximates an offset of a Bspline surface (type 3) gh3ofstRBzsBss3 finds a Bspline surface which approximates an offset of a rational bezier surface (type 3) gh3ofstRBssBss3 finds a Bspline surface which approximates an offset of a rational Bspline surface (type 3) gh3ofstLesBss3 finds a Bspline surface which approximates an offset of a linear extrusion surface (type 3) gh3ofstRvsBss3 finds a Bspline surface which approximates an offset of a revolution surface (type 3) gh3ofstRtsBss3 finds a Bspline surface which approximates an offset of a rectangular trimmed surface (type 3)

Naotake KAKISHITA naokak@pml.co.jp Toru HASEGAWA hasegawa@sra.co.jp Zitao XU zitao@pml.co.jp Nobuyuki SHIKANO shikano@pml.co.jp Hideaki ITO hideit@pml.co.jp

Thank you for your continued support!

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