mirror of
https://github.com/Irev-Dev/Round-Anything.git
synced 2025-01-16 18:48:14 +01:00
Merge pull request #10 from nickcoutsos/master
Invert flipped faces for polyRoundExtrude
This commit is contained in:
commit
e6d67b6304
@ -29,6 +29,11 @@ let(
|
||||
points[listWrap(i+1,lp)],
|
||||
],thick=offset,mode=isCWorCCW)];
|
||||
|
||||
function reverseList(list) = [ for(i=[len(list) - 1:-1:0]) list[i] ];
|
||||
|
||||
// Apply `reverseList` to the array of vertex indices for an array of faces
|
||||
function invertFaces(faces) = [ for(f=faces) reverseList(f) ];
|
||||
|
||||
function makeCurvedPartOfPolyHedron(radiiPoints,r,fn,minR=0.01)=
|
||||
// this is a private function that I'm not expecting library users to use directly
|
||||
// radiiPoints= serise of x, y, r points
|
||||
@ -152,7 +157,7 @@ let(
|
||||
topCapFace=[for(i=[0:singeLayerLength-1])radiusPointsLength-singeLayerLength+i],
|
||||
bottomCapFace=[for(i=[0:singeLayerLength-1])radiusPointsLength*2-singeLayerLength+i],
|
||||
finalPolyhedronPoints=concat(topRadiusPoints,bottomRadiusPoints),
|
||||
finalPolyhedronFaces=concat(topRadiusFaces,bottomRadiusFaces, sideFaces, [topCapFace], [bottomCapFace])
|
||||
finalPolyhedronFaces=concat(topRadiusFaces,invertFaces(bottomRadiusFaces),invertFaces(sideFaces),[topCapFace],invertFaces([bottomCapFace]))
|
||||
)
|
||||
[
|
||||
finalPolyhedronPoints,
|
||||
@ -160,7 +165,11 @@ let(
|
||||
];
|
||||
|
||||
module polyRoundExtrude(radiiPoints,length=5,r1=1,r2=1,fn=10,convexity=10) {
|
||||
polyhedronPointsNFaces=extrudePolygonWithRadius(radiiPoints,length,r1,r2,fn);
|
||||
orderedRadiiPoints = CWorCCW(radiiPoints) == 1
|
||||
? reverseList(radiiPoints)
|
||||
: radiiPoints;
|
||||
|
||||
polyhedronPointsNFaces=extrudePolygonWithRadius(orderedRadiiPoints,length,r1,r2,fn);
|
||||
polyhedron(points=polyhedronPointsNFaces[0], faces=polyhedronPointsNFaces[1], convexity=convexity);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user