GHL 3.4.2 Release Note

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



Summary of this version up

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.

List of added functions

Utility



2D



3D

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)

List of fixed bugs

fixed after GHL 3.4.1
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.
We greatly appreciate bug reports from GHL users. Thank you.

GHL is being brought you by following persons

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.