Example #1
0
        public override bool Equals(Object clause)
        {
            CongruentCircles cts = clause as CongruentCircles;

            if (cts == null)
            {
                return(false);
            }

            return(this.cc1.Equals(cts.cc1) || this.cc2.Equals(cts.cc2) ||
                   this.cc2.Equals(cts.cc1) || this.cc1.Equals(cts.cc2));
        }
        //
        // All radii of the congruent circles are congruent.
        //
        private static List<GenericInstantiator.EdgeAggregator> InstantiateFromDefinition(CongruentCircles cs)
        {
            List<EdgeAggregator> congRadii = new List<EdgeAggregator>();

            // For hypergraph
            List<GroundedClause> antecedent = new List<GroundedClause>();
            antecedent.Add(cs);

            for (int r1 = 0; r1 < cs.cc1.radii.Count; r1++)
            {
                for (int r2 = 0; r2 < cs.cc2.radii.Count; r2++)
                {
                    GeometricCongruentSegments gcs = new GeometricCongruentSegments(cs.cc1.radii[r1], cs.cc2.radii[r2]);
                    congRadii.Add(new GenericInstantiator.EdgeAggregator(antecedent, gcs, annotation));
                }
            }

            return congRadii;
        }