p5-gizmo

1.0.0 • Public • Published

p5-gizmo

Gizmo for 3D translation control in p5js WEBGL mode

Installation

Add this CDN to a script tag in your index.html file

<script src="https://cdn.jsdelivr.net/npm/p5-gizmo@1.0.0/gizmo.js"></script>

or Install via the command line

npm i p5-gizmo

Usage

Define a camera variable called cam in the setup function

cam = createCamera();
g = new gizmo(0, 0, 0)

Use g.show in the draw loop.

I would also recommend disabling orbitControl when gizmo is clicked:

if(!g.gizmoClicked) orbitControl()

Use g.update in the mousePressed function. Use g.released in the mouseReleased function.

function mousePressed() {
  if(g.hover){
    g.update()
  }
}

function mouseReleased() {
  g.released()
}

Complete example:

function setup() {
  createCanvas(400, 400, WEBGL);
  cam = createCamera()
  g = new gizmo(0, 0, 0)
}

function draw() {
  background(220);
  lights()
  if(!g.gizmoClicked) orbitControl()
  g.show()
}

function mousePressed() {
  if(g.hover){
    g.update()
  }
}

function mouseReleased() {
  g.released()
}

Example in p5 editor

3D Gizmo - Transform Controls in p5js

Dependencies

The matrix math for raycasting is done with math.js

Copy and paste this script tag into your index.html file

<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/11.8.1/math.js" integrity="sha512-5nftKkjZO1gtHEWFlUGXi/vuXzFnWTom549IH/gMqOiJHcPfH5z/1DO8/c0qnoG0R8RCVLOeBDXhCjg2+23nqQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

MIT

Dependencies (0)

    Dev Dependencies (0)

      Package Sidebar

      Install

      npm i p5-gizmo

      Weekly Downloads

      4

      Version

      1.0.0

      License

      MIT

      Unpacked Size

      25.8 kB

      Total Files

      4

      Last publish

      Collaborators

      • rjgmore