Exemplo n.º 1
0
        private void CartesianProduct(RelationSymbol returnSymbol, SetSymbol parameterSymbolA, SetSymbol parameterSymbolB,
                                      Func <TriangleMesh, TriangleMesh, bool> operation)
        {
            foreach (var ifcEntityA in parameterSymbolA.Entites)
            {
                var meshA = GetMesh(ifcEntityA);
                if (meshA == null)
                {
                    continue;
                }

                foreach (var ifcEntityB in parameterSymbolB.Entites)
                {
                    var meshB = GetMesh(ifcEntityB);
                    if (meshB == null)
                    {
                        continue;
                    }

                    if (operation(meshA, meshB))
                    {
                        returnSymbol.AddTuple(new[] { ifcEntityA, ifcEntityB });
                    }
                }
            }
        }
Exemplo n.º 2
0
 public void SouthStrict(RelationSymbol returnSymbol, SetSymbol parameterSymbolA, SetSymbol parameterSymbolB)
 {
     CartesianProduct(returnSymbol, parameterSymbolA, parameterSymbolB, directionalOperators.SouthOfStrict);
 }
Exemplo n.º 3
0
 public void Distance(RelationSymbol returnSymbol, SetSymbol parameterSymbolA, SetSymbol parameterSymbolB)
 {
     CartesianProduct(returnSymbol, parameterSymbolA, parameterSymbolB, directionalOperators.AboveOfRelaxed);
 }
Exemplo n.º 4
0
 public void NorthRelaxed(RelationSymbol returnSymbol, SetSymbol parameterSymbolA, SetSymbol parameterSymbolB)
 {
     CartesianProduct(returnSymbol, parameterSymbolA, parameterSymbolB, directionalOperators.NorthOfRelaxed);
 }
Exemplo n.º 5
0
 public void Overlap(RelationSymbol returnSymbol, SetSymbol parameterSymbolA, SetSymbol parameterSymbolB)
 {
     CartesianProduct(returnSymbol, parameterSymbolA, parameterSymbolB, overlapOperator.Overlap);
 }
Exemplo n.º 6
0
 public void DeassociaterSet(SetSymbol parameterSym1, string[] exAtts, RelationSymbol returnSym)
 {
     Console.WriteLine("Deassociater'ing...");
     returnSym.SetTuples(GetTuplesSet(parameterSym1.Entites, exAtts));
 }
Exemplo n.º 7
0
        public void AttributeFilterSet(SetSymbol parameterSym1, PredicateNode predicateNode, SetSymbol returnSym)
        {
            Console.WriteLine("AttributeFilter'ing...");
            var result = parameterSym1.Entites.Where(e => AttributeSetTestLocal(e, predicateNode));

            returnSym.EntityDic = result.ToDictionary(e => e.Id);
        }
Exemplo n.º 8
0
 protected void OnSetSymbol(TSymbol symbol, int row, int column)
 {
     SetSymbol?.Invoke(symbol, row, column);
 }