Comments (2)
from vtk-js.
The test with byteOffset
is not enough, you also have to use byteLength
For example, if you want to multiply a matrix with a vector extracted from the matrix
The full test could be something like this:
const a = new Float32Array(25); // 5x5 matrix
const b = new Float32Array(a.buffer, 10 * 4, 5); // offset by 10 elements (4 bytes per element), take 5 elements
// Translation of the conditions:
// [ A and B are the same array ]
// OR
// [
// A uses a buffer AND
// B uses the same buffer AND
// NOT ( A is completely before B OR B is completely before A )
// ]
const shouldCopy =
a === b ||
(a.buffer &&
a.buffer === b.buffer &&
!(a.byteOffset + a.byteLength <= b.byteOffset ||
b.byteOffset + b.byteLength <= a.byteOffset));
// An equivalent, if you convert the `!(P || Q)` into a `!P && !Q`
const shouldCopyBis =
a === b ||
(a.buffer &&
a.buffer === b.buffer &&
a.byteOffset + a.byteLength > b.byteOffset &&
b.byteOffset + b.byteLength > a.byteOffset);
This is to check if the two arrays overlap but in this particular case of matrix multiplication, you can for example use the first 16 elements of an array of size 100 as a matrix. So you could replace the x.byteLength
with numberOfElements * x.BYTES_PER_ELEMENT
.
from vtk-js.
Related Issues (20)
- [Bug] Handling of clamped arrays? HOT 2
- [Bug] `vtkStringArray.newClone` raises error HOT 4
- [Feature] Support for LZMA vtk files HOT 5
- The vtkPLYReader parseAsText method reported an error [Bug] HOT 5
- [Bug] Incorrect interface for `insertNextPoint` on `vtkPoints` HOT 1
- STLReader and ORJReader parsing obj file with incorrect number of points[Bug]
- Middle and right mouse button interactor issue on Safari HOT 2
- [Feature] Rendering with OffscreenCanvas HOT 3
- [Bug] Issues in PR(Share GPU ressources across render windows) HOT 1
- [Bug] Memory leak in WidgetState HOT 3
- Can vtk.js read VTK files with the 'DATASET UNSTRUCTURED_GRID' format? HOT 7
- Mobile end lag issue HOT 1
- [Bug] Opacity problem on stl file when backface culling is enabled HOT 11
- [Bug] ESM doesn't work without "type": "module" in node HOT 1
- [Bug] HOT 3
- Display vtkLineWidget error when click same postion[Bug] HOT 6
- [Feature] vtkInteractorStyleTrackballActor port
- [Feature] Unfreezing New Instances HOT 6
- [Feature] Allow bypassing range calculations for Volume Mapper HOT 6
- Abnormal image display[Bug] HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vtk-js.