File: vec3.ck

package info (click to toggle)
chuck 1.5.5.5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 41,056 kB
  • sloc: cpp: 123,473; ansic: 35,893; javascript: 2,111; yacc: 609; makefile: 457; python: 174; perl: 86
file content (46 lines) | stat: -rw-r--r-- 845 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// vec3 is a primitive type
@(1,0,0) => vec3 a;
// declare another
@(0,1,0) => vec3 b;

// add them
a + b => vec3 sum;
// difference
a - b => vec3 diff;
// cross product
a * b => vec3 c;
// another way to do cross product (function)
a.cross(b) => vec3 cross;
// dot product (function)
a.dot(b) => float dot;

// print sum!
<<< "sum:", sum >>>;
// print difference
<<< "diff:", diff >>>;
// print cross product
<<< "cross product:", c >>>;
// print dot product
<<< "dot product:", dot >>>;

// array
[ a, b, @(-1,1,0) ] @=> vec3 group[];
// print them
<<< group[0], group[1], group[2] >>>;

// another v
vec3 v;
// set value
v.set( 2,2,2 );
// print magnitude
<<< "magnitude:", v.magnitude() >>>;
// normalize
v.normalize();
// print vector
<<< "normalize:", v >>>;

// multiply
5 * v => vec3 v2;
// print result
<<< "scalar multiply:", v2 >>>;