Skip to content

Commit 82081ec

Browse files
committed
color transfer (lines)
1 parent ed15f2c commit 82081ec

File tree

1 file changed

+24
-10
lines changed

1 file changed

+24
-10
lines changed

src/traces/streamtubes/convert.js

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@ function calculateMesh(inputX, inputY, inputZ, inputC, inputMC, scalingFactor) {
339339
F.push(f);
340340
}
341341

342-
function catmullRom(x, y, z, r, f, Tratio) {
342+
function catmullRom(x, y, z, r, R, G, B, Tratio) {
343343

344344
var t0 = 0;
345345
var d, c1, c2;
@@ -358,7 +358,9 @@ function calculateMesh(inputX, inputY, inputZ, inputC, inputMC, scalingFactor) {
358358
var A1y = c1*y[0] + c2*y[1];
359359
var A1z = c1*z[0] + c2*z[1];
360360
var A1r = c1*r[0] + c2*r[1];
361-
var A1f = c1*f[0] + c2*f[1];
361+
var A1R = c1*R[0] + c2*R[1];
362+
var A1G = c1*G[0] + c2*G[1];
363+
var A1B = c1*B[0] + c2*B[1];
362364

363365
d = t2 - t1;
364366
c1 = (t2 - T) / d;
@@ -367,7 +369,9 @@ function calculateMesh(inputX, inputY, inputZ, inputC, inputMC, scalingFactor) {
367369
var A2y = c1*y[1] + c2*y[2];
368370
var A2z = c1*z[1] + c2*z[2];
369371
var A2r = c1*r[1] + c2*r[2];
370-
var A2f = c1*f[1] + c2*f[2];
372+
var A2R = c1*R[1] + c2*R[2];
373+
var A2G = c1*G[1] + c2*G[2];
374+
var A2B = c1*B[1] + c2*B[2];
371375

372376
d = t3 - t2;
373377
c1 = (t3 - T) / d;
@@ -376,7 +380,9 @@ function calculateMesh(inputX, inputY, inputZ, inputC, inputMC, scalingFactor) {
376380
var A3y = c1*y[2] + c2*y[3];
377381
var A3z = c1*z[2] + c2*z[3];
378382
var A3r = c1*r[2] + c2*r[3];
379-
var A3f = c1*f[2] + c2*f[3];
383+
var A3R = c1*R[2] + c2*R[3];
384+
var A3G = c1*G[2] + c2*G[3];
385+
var A3B = c1*B[2] + c2*B[3];
380386

381387
d = t2 - t0;
382388
c1 = (t2 - T) / d;
@@ -385,7 +391,9 @@ function calculateMesh(inputX, inputY, inputZ, inputC, inputMC, scalingFactor) {
385391
var B1y = c1*A1y + c2*A2y;
386392
var B1z = c1*A1z + c2*A2z;
387393
var B1r = c1*A1r + c2*A2r;
388-
var B1f = c1*A1f + c2*A2f;
394+
var B1R = c1*A1R + c2*A2R;
395+
var B1G = c1*A1G + c2*A2G;
396+
var B1B = c1*A1B + c2*A2B;
389397

390398
d = t3 - t1;
391399
c1 = (t3 - T) / d;
@@ -394,7 +402,9 @@ function calculateMesh(inputX, inputY, inputZ, inputC, inputMC, scalingFactor) {
394402
var B2y = c1*A2y + c2*A3y;
395403
var B2z = c1*A2z + c2*A3z;
396404
var B2r = c1*A2r + c2*A3r;
397-
var B2f = c1*A2f + c2*A3f;
405+
var B2R = c1*A2R + c2*A3R;
406+
var B2G = c1*A2G + c2*A3G;
407+
var B2B = c1*A2B + c2*A3B;
398408

399409
d = t2 - t1;
400410
c1 = (t2 - T) / d;
@@ -403,9 +413,11 @@ function calculateMesh(inputX, inputY, inputZ, inputC, inputMC, scalingFactor) {
403413
var Cy = c1*B1y + c2*B2y;
404414
var Cz = c1*B1z + c2*B2z;
405415
var Cr = c1*B1r + c2*B2r;
406-
var Cf = c1*B1f + c2*B2f;
416+
var CR = c1*B1R + c2*B2R;
417+
var CG = c1*B1G + c2*B2G;
418+
var CB = c1*B1B + c2*B2B;
407419

408-
return [Cx, Cy, Cz, Cr, Cf];
420+
return [Cx, Cy, Cz, Cr, CR, CG, CB];
409421
}
410422

411423
var quadCount = 36;
@@ -854,14 +866,16 @@ function calculateMesh(inputX, inputY, inputZ, inputC, inputMC, scalingFactor) {
854866
[p.y[n], p.y[n + 1], p.y[n + 2], p.y[n + 3]],
855867
[p.z[n], p.z[n + 1], p.z[n + 2], p.z[n + 3]],
856868
[p.r[n], p.r[n + 1], p.r[n + 2], p.r[n + 3]],
857-
[p.c[n], p.c[n + 1], p.c[n + 2], p.c[n + 3]],
869+
[p.c[n][0], p.c[n + 1][0], p.c[n + 2][0], p.c[n + 3][0]],
870+
[p.c[n][1], p.c[n + 1][1], p.c[n + 2][1], p.c[n + 3][1]],
871+
[p.c[n][2], p.c[n + 1][2], p.c[n + 2][2], p.c[n + 3][2]],
858872
c1);
859873

860874
rp.x.push(xyzrf[0]);
861875
rp.y.push(xyzrf[1]);
862876
rp.z.push(xyzrf[2]);
863877
rp.r.push(xyzrf[3]);
864-
rp.c.push(colorer(xyzrf[4]));
878+
rp.c.push([xyzrf[4], xyzrf[5], xyzrf[6], 1]); // fixme transfer opacity too
865879
}
866880
}
867881

0 commit comments

Comments
 (0)