0.3.0 • Published 9 months ago

poly-extrude v0.3.0

Weekly downloads
-
License
ISC
Repository
github
Last release
9 months ago

poly-extrude

Extrude polygons/polylines. Born in maptalks.three project

Examples

building npm.io buildings npm.io multi-polygon npm.io street npm.io line-uv npm.io ny-building npm.io cylinder npm.io brige npm.io spring npm.io expand paths npm.io

Install

npm i poly-extrude

#   or

yarn add poly-extrude

# or

pnpm i poly-extrude

API

ESM

  import {
      extrudePolygons,
      extrudePolylines,
      cylinder,
      expandPaths
  } from 'poly-extrude';
  const polygons = [
      //polygon
      [
          //outring
          [
              [x, y],
              [x, y], ...........
          ],
          //holes
          [
              [x, y],
              [x, y], ...........
          ],
          ........

      ],
      //other polygons
      ......
  ]

  const result = extrudePolygons(polygons, {
      depth: 2
  });
  const {
      positon,
      normal,
      uv,
      indices
  } = result;
  //do something

  const polylines = [
      // polyline
      [
          [x, y],
          [x, y], ...........
      ],
      //polyline
      [
          [x, y],
          [x, y], ...........
      ],
  ];

  const result = extrudePolylines(polylines, {
      depth: 2,
      lineWidth: 2
  });
  const {
      positon,
      normal,
      uv,
      indices
  } = result;
  //do something

  const center = [0, 0];
  const result = cylinder(center, {
      radius: 1,
      height: 2,
      radialSegments: 6
  });
  const {
      positon,
      normal,
      uv,
      indices
  } = result;
  //do something


  
  const polylines = [
      // polyline
      [
          [x, y],
          [x, y], ...........
      ],
      //polyline
      [
          [x, y],
          [x, y], ...........
      ],
  ];

  const result = expandPaths(polylines, {
      cornerRadius: 0.5,
      lineWidth: 2
  });
  const {
      positon,
      normal,
      uv,
      indices
  } = result;
  //do something

CDN

<script src="https://unpkg.com/poly-extrude/dist/poly-extrude.js"></script>

<script>
    const polygons = [
        //polygon
        [
            //outring
            [
                [x, y],
                [x, y], ...........
            ],
            //holes
            [
                [x, y],
                [x, y], ...........
            ],
            ........

        ],
        //other polygons
        ......
    ]

    const result = polyextrude.extrudePolygons(polygons, {
        depth: 2
    })
    const {
        positon,
        normal,
        uv,
        indices
    } = result;
    //do something

    const polylines = [
        // polyline
        [
            [x, y],
            [x, y], ...........
        ],
        //polyline
        [
            [x, y],
            [x, y], ...........
        ],
    ];

    const result = polyextrude.extrudePolylines(polylines, {
        depth: 2,
        lineWidth: 2
    });
    const {
        positon,
        normal,
        uv,
        indices
    } = result;
    //do something

    const center = [0, 0];
    const result = polyextrude.cylinder(center, {
        radius: 1,
        height: 2,
        radialSegments: 6
    });
    const {
        positon,
        normal,
        uv,
        indices
    } = result;
    //do something


    
  const polylines = [
      // polyline
      [
          [x, y],
          [x, y], ...........
      ],
      //polyline
      [
          [x, y],
          [x, y], ...........
      ],
  ];

  const result = polyextrude.expandPaths(polylines, {
      cornerRadius: 0.5,
      lineWidth: 2
  });
  const {
      positon,
      normal,
      uv,
      indices
  } = result;
  //do something
</script>