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

dual-quat-to-mat4

Package Overview
Dependencies
Maintainers
2
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dual-quat-to-mat4 - npm Package Compare versions

Comparing version 1.0.0 to 1.0.1

2

package.json
{
"name": "dual-quat-to-mat4",
"version": "1.0.0",
"version": "1.0.1",
"description": "Convert a dual quaternion into a 4x4 matrix",

@@ -5,0 +5,0 @@ "main": "src/dual-quat-to-mat4",

@@ -30,6 +30,6 @@ dual-quat-to-mat4 [![npm version](https://badge.fury.io/js/dual-quat-to-mat4.svg)](http://badge.fury.io/js/dual-quat-to-mat4) [![Build Status](https://travis-ci.org/chinedufn/dual-quat-to-mat4.svg?branch=master)](https://travis-ci.org/chinedufn/dual-quat-to-mat4)

var dualQuatToMat4 = require('dual-quat-to-mat4')
var matrix = []
var dualQuat = dualQuatToMat4(matrix, [0, 0, 0, 1, 0, 0, 0, 0])
var dualQuat = dualQuatToMat4([0, 0, 0, 1, 0, 0, 0, 0])
console.log(dualQuat)
console.log(matrix)
// [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]

@@ -40,8 +40,16 @@ ```

### `dualQuatToMat4(matrix)` -> `Array[16]`
### `dualQuatToMat4(out, dualQuat)` -> `Array[16]`
#### dual quaternion
#### out
*Requred*
*Required*
Type: `Array[*]`
An allocated array that will get elements [0] through [15] set as your output matrix
#### dualQuat
*Required*
Type: `Array[8]`

@@ -48,0 +56,0 @@

@@ -5,23 +5,23 @@ module.exports = convertDualQuatToMatrix

// recommended reading: https://www.cs.utah.edu/~ladislav/kavan07skinning/kavan07skinning.pdf
function convertDualQuatToMatrix (dq) {
function convertDualQuatToMatrix (out, dq) {
// dq[0] dq[1] dq[2] dq[3] are our rotation quaternion elements
// dq[4] dq[5] dq[6] dq[7] are our translation quaternion elements (the dual quaternions imaginary component)
return [
1.0 - (2.0 * dq[1] * dq[1]) - (2.0 * dq[2] * dq[2]),
(2.0 * dq[0] * dq[1]) + (2.0 * dq[3] * dq[2]),
(2.0 * dq[0] * dq[2]) - (2.0 * dq[3] * dq[1]),
0,
(2.0 * dq[0] * dq[1]) - (2.0 * dq[3] * dq[2]),
1.0 - (2.0 * dq[0] * dq[0]) - (2.0 * dq[2] * dq[2]),
(2.0 * dq[1] * dq[2]) + (2.0 * dq[3] * dq[0]),
0,
(2.0 * dq[0] * dq[2]) + (2.0 * dq[3] * dq[1]),
(2.0 * dq[1] * dq[2]) - (2.0 * dq[3] * dq[0]),
1.0 - (2.0 * dq[0] * dq[0]) - (2.0 * dq[1] * dq[1]),
0,
2.0 * (-dq[7] * dq[0] + dq[4] * dq[3] - dq[5] * dq[2] + dq[6] * dq[1]),
2.0 * (-dq[7] * dq[1] + dq[4] * dq[2] + dq[5] * dq[3] - dq[6] * dq[0]),
2.0 * (-dq[7] * dq[2] - dq[4] * dq[1] + dq[5] * dq[0] + dq[6] * dq[3]),
1
]
// dq[4] dq[5] dq[6] dq[7] are our translation quaternion elements (the dual quaternion's imaginary component)
out[0] = 1.0 - (2.0 * dq[1] * dq[1]) - (2.0 * dq[2] * dq[2])
out[1] = (2.0 * dq[0] * dq[1]) + (2.0 * dq[3] * dq[2])
out[2] = (2.0 * dq[0] * dq[2]) - (2.0 * dq[3] * dq[1])
out[3] = 0
out[4] = (2.0 * dq[0] * dq[1]) - (2.0 * dq[3] * dq[2])
out[5] = 1.0 - (2.0 * dq[0] * dq[0]) - (2.0 * dq[2] * dq[2])
out[6] = (2.0 * dq[1] * dq[2]) + (2.0 * dq[3] * dq[0])
out[7] = 0
out[8] = (2.0 * dq[0] * dq[2]) + (2.0 * dq[3] * dq[1])
out[9] = (2.0 * dq[1] * dq[2]) - (2.0 * dq[3] * dq[0])
out[10] = 1.0 - (2.0 * dq[0] * dq[0]) - (2.0 * dq[1] * dq[1])
out[11] = 0
out[12] = 2.0 * (-dq[7] * dq[0] + dq[4] * dq[3] - dq[5] * dq[2] + dq[6] * dq[1])
out[13] = 2.0 * (-dq[7] * dq[1] + dq[4] * dq[2] + dq[5] * dq[3] - dq[6] * dq[0])
out[14] = 2.0 * (-dq[7] * dq[2] - dq[4] * dq[1] + dq[5] * dq[0] + dq[6] * dq[3])
out[15] = 1
return out
}

@@ -10,6 +10,9 @@ var test = require('tape')

var expectedOriginalDualQuat = [0, 0, 0, 1, 0, 0, 0, 0]
var expectedDualQuatOut = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]
var out = []
var convertedMatrix = dualQuatToMat4(
out,
expectedOriginalDualQuat
)
t.deepEqual(out, expectedDualQuatOut)
var convertedDualQuat = mat4ToDualQuat(convertedMatrix)

@@ -26,4 +29,5 @@

var expectedOriginalDualQuat = [-0.27447058422968623, -0.016130971701251967, 0.05674661681750636, 0.9597840903036474, -0.0017457254491423332, -0.12487046113525742, -0.011375334994009861, -0.0019253500880238306]
var out = []
var convertedMatrix = dualQuatToMat4(
out,
expectedOriginalDualQuat

@@ -30,0 +34,0 @@ )

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