Skip to content

Commit d3268fd

Browse files
authored
Merge pull request #17 from UnstableDesign/v3
V3
2 parents b62ce84 + 7079394 commit d3268fd

30 files changed

+4096
-1198
lines changed

src/app/core/directives/weave.directive.ts

Lines changed: 1252 additions & 333 deletions
Large diffs are not rendered by default.

src/app/core/model/cell.ts

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
/**
2+
* Definition of pattern object.
3+
* @class
4+
*/
5+
export class Cell {
6+
poles: number;
7+
is_up: boolean;
8+
mask_id: number;
9+
10+
constructor() {
11+
this.poles = 0b0000;
12+
this.is_up = false;
13+
this.mask_id = -1;
14+
}
15+
16+
setNorth(){
17+
this.poles = this.poles | 0b1000;
18+
}
19+
20+
setEast(){
21+
this.poles = this.poles | 0b0100;
22+
23+
}
24+
25+
setSouth(){
26+
this.poles = this.poles | 0b0010;
27+
}
28+
29+
setWest(){
30+
this.poles = this.poles | 0b0001;
31+
}
32+
33+
unsetNorth(){
34+
this.poles = this.poles ^ 0b1000;
35+
}
36+
37+
unsetEast(){
38+
this.poles = this.poles ^ 0b0100;
39+
40+
}
41+
42+
unsetSouth(){
43+
this.poles = this.poles ^ 0b0010;
44+
}
45+
46+
unsetWest(){
47+
this.poles = this.poles ^ 0b0001;
48+
}
49+
50+
51+
hasNorth():boolean{
52+
let p:number = this.poles >>> 3;
53+
return(p === 1);
54+
}
55+
56+
hasEast():boolean{
57+
let p:number = this.poles >>> 2;
58+
return((p %2)===1);
59+
}
60+
61+
hasSouth():boolean{
62+
let p:number = this.poles >>> 1;
63+
return((p %2)===1);
64+
}
65+
66+
hasWest():boolean{
67+
return((this.poles %2)===1);
68+
}
69+
70+
isUp():boolean{
71+
return this.is_up;
72+
}
73+
74+
getPoles(){
75+
return this.poles;
76+
}
77+
78+
getMaskId(){
79+
return this.mask_id;
80+
}
81+
82+
setHeddle(value:boolean){
83+
this.is_up = value;
84+
}
85+
86+
setPoles(poles:number){
87+
this.poles = poles;
88+
}
89+
90+
setMaskId(id: number){
91+
this.mask_id = id;
92+
}
93+
94+
unsetMaskId(){
95+
this.mask_id = -1;
96+
}
97+
98+
unsetHeddle(){
99+
this.is_up = false;
100+
}
101+
102+
unsetPoles(){
103+
this.poles = 0b0000;
104+
}
105+
106+
107+
108+
109+
110+
}

0 commit comments

Comments
 (0)