
Security News
Crates.io Implements Trusted Publishing Support
Crates.io adds Trusted Publishing support, enabling secure GitHub Actions-based crate releases without long-lived API tokens.
three-line-2d
Advanced tools
A utility for 2D line drawing in ThreeJS, by expanding a polyline in a vertex shader for variable thickness, anti-aliasing, gradients, line dashes, and other GPU effects.
Works in ThreeJS r69-r75, and possibly newer versions.
See test/index.js for a complete example, as well as other shader applications.
var bezier = require('adaptive-bezier-curve');
var Line = require('three-line-2d')(THREE);
var BasicShader = require('three-line-2d/shaders/basic')(THREE);
//build a smooth bezier curve in world units
var quality = 5;
var curve = bezier([0, 0], [0.5, 1], [1, 1], [2, 0], quality);
//create our geometry
var curveGeometry = Line(curve);
//create a material using a basic shader
var mat = new THREE.ShaderMaterial(BasicShader({
side: THREE.DoubleSide,
diffuse: 0x5cd7ff,
thickness: 0.3
}));
var mesh = new THREE.Mesh(curveGeometry, mat);
app.scene.add(mesh);
geometry = Line(path, [opt])
Creates a new Line geometry from a 2D list of points. Options:
distances
if true, each vertex will also pass a lineDistance
attribute to the vertex shader. This can be used to compute the U texture coordinate from the start of the line to its end.closed
if true, a segment will be drawn from the last point to the the first point, and the normals will be adjusted accordingly (default false)Note: You can also omit the path
and just pass an opt
object to initially construct the geometry. However, some versions of ThreeJS do not support dynamically growing vertex data, so it's best to pass an initial list of points with the maximum capacity of your desired line.
geometry.update(path[, closed])
Updates the geometry with the new 2D polyline, which can optionally be a closed loop (default false).
git clone https://github.com/mattdesl/three-line-2d.git
cd three-line-2d
npm install
You can run the demo locally on localhost:9966
with:
npm run start
You can build the demo to a static JavaScript bundle with:
npm run build
MIT, see LICENSE.md for details.
FAQs
lines expanded in a vertex shader
The npm package three-line-2d receives a total of 361 weekly downloads. As such, three-line-2d popularity was classified as not popular.
We found that three-line-2d demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
Crates.io adds Trusted Publishing support, enabling secure GitHub Actions-based crate releases without long-lived API tokens.
Research
/Security News
Undocumented protestware found in 28 npm packages disrupts UI for Russian-language users visiting Russian and Belarusian domains.
Research
/Security News
North Korean threat actors deploy 67 malicious npm packages using the newly discovered XORIndex malware loader.