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

**3D: Another version of Sweeping (one Profile and two Sweep paths)**-
Another functions
to create a swept surface that is a locus of a curve (profile) swept along another two curves (sweep path).
Where, the given curves are polynomial/rational Bspline curve,
and generated surface is a correspoinding polynomial/rational Bspline surface.
The new functions supports one more sweep path; one profile and TWO sweep paths.

example: ghlv3/examples/sweep_skin/sweeping3.c

**3D : Region Octree Functions**- Region octree functions make and manage octrees to represent effective regions in 3D space.

gh3rotAllcSerializedOctree allocates memory areas for a serialized octree gh3rotClearCCL removes CCL in an octree gh3rotConvTriangle converts a triangle into an octree gh3rotCountComponents gets the number of CCLs in an octree gh3rotDispose disposes an octree gh3rotFreeSerializedOctree frees memory areas for a serialized octree gh3rotGetExtent gets geometrical extent of an octree gh3rotGetMemSize gets size of memory areas being used by an octree gh3rotGetOctComponent gets CCL which an octant belongs to gh3rotGetPixLevel gets pixel level of an octree gh3rotGetRoot gets root octant of an octree gh3rotHasIntersection judges whether an octree and a surface intersect or not gh3rotIntersect rids an octree of intersections with a surface gh3rotMakeCCL makes CCL in an octree gh3rotNew creates an octree gh3rotOctDivide divides an octant gh3rotOctGetApplData1 gets value of application data 1 of an octant gh3rotOctGetApplData2 gets value of application data 2 of an octant gh3rotOctGetChild gets specified child of an octant gh3rotOctGetExtent gets geometrical extent of an octant gh3rotOctGetLevel gets level of an octant gh3rotOctGetMother gets parent of an octant gh3rotOctGetTree gets an octree which an octant belongs to gh3rotOctGetType gets type of an octant gh3rotOctGetValue gets value of an octant gh3rotOctGtEqEdgeNeighbor gets edge neighbor of an octree gh3rotOctGtEqFaceNeighbor gets face neighbor of an octree gh3rotOctGtEqVrtxNeighbor gets vertex neighbor of an octree gh3rotOctHasIntersection judges whether an octant and a surface intersect or not gh3rotOctIsLeaf gets whether an octant is leaf or not gh3rotOctIsPixel gets whether an octant is pixel or not gh3rotOctMergeIfP merges subtree of an octant if possible gh3rotOctMergeIfP2 merges subtree of an octant if possible (type 2) gh3rotOctSetApplData1 sets specified value on application data 1 of an octant gh3rotOctSetApplData2 sets specified value on application data 2 of an octant gh3rotOctSetValue sets specified value on an octant gh3rotOctTraverse traverses subtree of an octant gh3rotOctTraverse2 traverses subtree of an octant (type 2) gh3rotSerialize serializes an octree gh3rotSetOpIntersection gets intersection between two aligned octrees gh3rotSetOpSubtraction gets sutraction between two aligned octrees gh3rotSetOpUnion gets union between two aligned octrees gh3rotUnserialize un-serializes an octree gh3swp2BscCPY1 copys profile according to variation of tangent vector(Bspline curve) gh3swp2BscCPY2 copys profile according to given view up vector(Bspline curve) gh3swp2BscCPY3 copys profile according to given normal vector(Bspline curve) gh3swp2RBscCPY1 copys profile according to variation of tangent vector(rational Bspline curve) gh3swp2RBscCPY2 copys profile according to given view up vector(rational Bspline curve) gh3swp2RBscCPY3 copys profile according to given normal vector(rational Bspline curve) gh3swp2BscDIV1 divides sweep paths in equal length in the parameter space(Bspline curve) gh3swp2BscDIV2 divides sweep paths in equal lenght in the real space(Bspline curve) gh3swp2BscDIV3 returns the parameters of the knot points of sweep paths(Bspline curve) gh3swp2BscDIV4 approximates sweep paths by poly line(Bspline curve) gh3swp2RBscDIV1 divides sweep paths in equal length in the parameter space(rational Bspline curve) gh3swp2RBscDIV2 divides sweep paths in equal lenght in the real space(rational Bspline curve) gh3swp2RBscDIV3 returns the parameters of the knot points of sweep paths(rational Bspline curve) gh3swp2RBscDIV4 approximates sweep paths by poly line(rational Bspline curve)

- doc/*/HowToUse/FunctionList/FunctionList2.html
- where bsc,bzc should be bss,bzs.
- gh2insk[R]Bsc, gh2divi[R]Bsc
- Inserted knot was invlalid, where the knot was closed form and uicp = degree + 1.
- gh2insk[R]Bsc, gh2divi[R]Bsc,gh3insk[R]Bsc, gh3divi[R]Bsc, gh3insk[R]Bss, gh3divi[R]Bss,
- Crashed when knot point difference was just GH__LMT_PTOL.
- gh2ofstBscBsc3, gh2ofstRBscBsc3
- possibility of invalid operation when given curve had a linear segment.
- gh2projPntLsg,gh3projPntLsg
- returned parameter value was NaN when Line segment had a recuced segment.
- gh3projCirPln{,2}
- Opposite side arc was generated when an arc was projected.
- gh3projTrcPln2
- Memory leak
- gh3makeWDRvl, gh3rottWDRvl
- Crashed when a generating curve of a revolution surface was a line.
- gh3dvdbCbs
- Crashed when a boundary had self-intersected.
- gh3intsConCon
- Invalid intersection curve was returned.
- gh3proj{Bzc,Bsc,RBzc,RBsc}Pln
- Invalid error was returned.
- gh[23]aprcQBsc4_Rev2
- bad memory assign.

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.