New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

clipper2-js

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

clipper2-js

![npm](https://img.shields.io/npm/v/clipper2-js)

  • 1.2.4
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
181
increased by0.56%
Maintainers
1
Weekly downloads
 
Created
Source

clipper2-js

npm

A native Typescript/Javascript port of Clipper2

image

Overview

clipper2-js was ported from the original Clipper2 C# implementation. However, the Java implementation was used as guidance for some conversion solutions

Clipper2 performs all clipping operations using integer coordinates internally. Since Javascript doesn't have a native integer data type, all values are rounded. To avoid precision loss, its recommended to scale up any values before adding paths and scale down, by the same factor, the clipped results.

The Clipper class provides static methods for clipping, path-offsetting, minkowski-sums and path simplification. For more complex clipping operations (e.g. when clipping open paths or when outputs are expected to include polygons nested within holes of others), use the Clipper64 class directly.

Documentation

Clipper2 HTML documentation

Example

const subj = new Paths64();
const clip = new Paths64();
subj.push(Clipper.makePath([ 100, 50, 10, 79, 65, 2, 65, 98, 10, 21 ]));
clip.push(Clipper.makePath([98, 63, 4, 68, 77, 8, 52, 100, 19, 12]));
const solution = Clipper.Intersect(subj, clip, FillRule.NonZero);

Developer Notes

  • An Angular project is used to host clipper2-js, but the library does not depend on Angular.
  • Jest is used for unit tests
  • All line units tests are passing. Some polygon tests are still failing and needs further investigation. However, the example demonstrates its basically working.

Support

Bug fixes will be integrated when original clipper2 has new releases.

Conversion to Typescript

  • ChatGPT did most of the code conversion. It took a few more days to get resulting code to compile. A few more days to add unit tests and remove bugs I'd introduced.
  • Context or return objects are used to replicate C# ref (pass-by-reference) behaviour.
  • Uses lower-case (x, y) for point coordinates.
  • Variables and methods have been renamed to camelCase
  • Jest units test included

FAQs

Package last updated on 01 Jan 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc