A simple 3D vector library¶
v3d
is a simple vector library with the common operations.
Usage¶
Create your new project with deft new application <name>
, and edit
the file dylan-package.json
created. Just add v3d
in
dependencies
.
To know more about deft package manager visit Deft tool.
Quick summary of v3d
¶
The module v3d
exports the following features:
<v3>
andv3
to create instances.Query dimensions:
v-x
,v-y
,v-z
.Infix operations:
+
,-
,*
,/
,negative
,*
(scalar multiplication), and=
.Other operations:
squared
,magnitude
,cross-product
,normalize
anddistance
.Queries:
unit?
andzero?
Utility:
$v3-zero
andsimilar
.
See a detailed explanation with examples in the The v3d library link.
Note
The vectors are read-only. You can’t change the dimensions without creating a new instance. There are only getters methods and no setters.
Library structure and dependencies¶
The libraries used by the project are shown with the modules inside. The arrows between the libraries are the dependencies.
![digraph G {
bgcolor="#eceff1";
graph [compound=true];
fontname = "times-bold";
node [
fontname="Arial";
shape="component";
color="#90a4ae";
fontcolor="#eceff1";
style="filled";
]
edge [
fontname="Arial";
color="#37474f";
style="dashed";
]
ranksep = 1.0;
subgraph cluster_v3d {
fontcolor="#37474f";
color="#cfd8dc";
style="filled";
shape="component";
label="v3d";
v3d;
};
subgraph cluster_cd {
fontcolor="#263238";
color="#cfd8dc";
style="filled";
label="common-dylan";
rank = same;
rankdir = LR;
"common-dylan";
transcendentals;
};
subgraph cluster_io {
fontcolor="#263238";
color="#cfd8dc";
style="filled";
label="io";
rank = same;
format;
streams;
print;
};
"v3d" -> streams [ltail=cluster_v3d, lhead=cluster_io];
"v3d" -> "common-dylan" [ltail=cluster_v3d, lhead=cluster_cd];
}](_images/graphviz-42b92fb4c94c7e871d021bbcba6ad323cd662a9d.png)
Libraries (light box) and modules (dark box) used¶