
First decide how operate on source objects, then check to
see if gate matches.

source 1	source 2	
					ONLY		ONLY
val	map	val	map	FAIL	MAP	MAPPED	VALUE	GATE
0	0	0	0	T
0	0	0	1	T
0	0	1	0	T
0	0	1	1	T
0	1	0	0	T
0	1	0	1	 	T			have map
0	1	1	0	T
0	1	1	1	T
1	0	0	0	T
1	0	0	1	T
1	0	1	0			 	T	value
1	0	1	1			T		mapped
1	1	0	0	T
1	1	0	1	T
1	1	1	0			T		mapped
1	1	1	1			T		mapped


Gate is thought of first as spatial gate, then operation gate.

source 1	
					ONLY		ONLY
val	map			FAIL	MAP	MAPPED	VALUE	GATE
0	0			T
0	1	 			T			have map
1	0	 					T	value
1	1	no gate			T
1	1	gate has map only	T			map
1	1	gate has value only		T		value
1	1	gate has both			T		mapped
