コード例 #1
0
    def test_eng2(self):
        from src.rules.heursitics import EngineHeurFP
        rules = EngineHeurFP()
        Eng = RuleEngine(term_rule=rules.root)

        system = SystemFactory.from_segs(SEGMENTS, root=_root, lr='a')
        system = system.bake()
        root = viper.nx_to_nodes(system)

        root = Eng.yield_queue(root)
        nxg = Eng.plot(root, rules.final_labels)
コード例 #2
0
 def test_eng4(self):
     system = SystemFactory.from_serialized_geom(load_segs(),
                                                 sys=viper.System,
                                                 root=(-246, 45, 0))
     system = system.bake()
     root = viper.nx_to_nodes(system)
     print(root)
     rules = heursitics.EngineHeurFP()
     Eng = RuleEngine(term_rule=rules.root, mx=2500, debug=False, nlog=20)
     Kb = KB(rules.root)
     root = Eng.alg2(root, Kb)
     nxg = Eng.plot(root, rules.final_labels)
コード例 #3
0
    def test_loop_pos(self):

        connect_loop = [(8., 8., 0), (4., 4., 0)]
        SEGMENTS.append(connect_loop)
        system = SystemFactory.from_segs(SEGMENTS, root=_root, lr='a')
        system = system.bake()
        root = viper.nx_to_nodes(system)
        propagator = gp.LoopDetector()
        propagator(root, data=[])
        for n in root.__iter__():
            if n.geom in connect_loop:
                assert n.get(propagator.var) is True
コード例 #4
0
def get_rendered():
    data = load_segs(fl='1535158393.0-revit-signal')
    system = SystemFactory.from_serialized_geom(data,
                                                sys=System,
                                                root=(-246, 45, 0))
    system = system.bake()
    rules = heursitics.EngineHeurFP()
    Eng = RuleEngine(term_rule=rules.root, mx=2500, debug=False, nlog=20)
    Kb = KB(rules.root)
    root = Eng.alg2(system.root, Kb)

    renderer = RenderNodeSystem()
    root = renderer.render(root)
    return root
コード例 #5
0
    def test_eng3(self):

        rules = heursitics.EngineHeurFP()
        Eng = RuleEngine(term_rule=rules.root, mx=400, debug=True, nlog=1)

        _root = (2, 1, 0)
        system = SystemFactory.from_segs(SEGMENTS, root=_root, lr='a')
        system = system.bake()
        root = viper.nx_to_nodes(system)

        Kb = KB(rules.root)
        print(Kb)
        root = Eng.alg2(root, Kb, )
        nxg = Eng.plot(root, rules.final_labels)
コード例 #6
0
ファイル: ui.py プロジェクト: psavine42/viper-server
 def test_adapter_nodes(self):
     data = load_segs(fl='1535158393.0-revit-signal')
     system = SystemFactory.from_serialized_geom(data,
                                                 sys=System,
                                                 root=(-246, 45, 0))
     system = system.bake()
     rules = heursitics.EngineHeurFP()
     Eng = RuleEngine(term_rule=rules.root, mx=2500, debug=False, nlog=20)
     Kb = KB(rules.root)
     root = Eng.alg2(system.root, Kb)
     print('nodes ', len(root))
     renderer = RenderNodeSystem()
     root = renderer.render(root)
     self.vis.build(root)
コード例 #7
0
    def test_eng5(self):
        data = load_segs(fl='1535158393.0-revit-signal')
        system = SystemFactory.from_serialized_geom(
            data, sys=viper.System, root=(-246, 45, 0))
        system = system.bake()
        root = system.root
        print(root)
        rules = heursitics.EngineHeurFP()
        Eng = RuleEngine(term_rule=rules.root, mx=2500, debug=False, nlog=20)
        Kb = KB(rules.root)
        root = Eng.alg2(root, Kb)

        print('nodes ', len(root))

        renderer = RenderNodeSystem()
        meta = Eng.annotate_type(root, rules.final_labels)
        root = renderer.render(root)

        print('nodes ', len(root))
        visualize.plot3d(root, meta)
コード例 #8
0
    def test_254(self):
        segs = load_segs()

        segs, syms = SystemFactory.to_segments(segs)
        fsg = []
        fsm = []
        print(syms[0])
        mx = -260
        mn = -270
        for seg in segs:
            sg = list(seg.coords)
            if mn < sg[0][0] < mx or mn < sg[1][0] < mx:
                fsg.append(seg)

        for seg in syms:
            sg = list(seg.coords)
            if mn < sg[0][0] < mx:
                fsm.append(seg)
        print(fsm[0])
        system = viper.SystemV3(segments=fsg, symbols=fsm, root=(-246, 45, 0))
        system.aplot()
コード例 #9
0
    def process(self,
                data,
                points=[(-246, 45, 0)],
                system_type='FP',
                **kwargs):
        """

        :param data:
        :param points:
        :param system_type:
        :param kwargs: arguments to render the system
        :return:
        """
        self._log_inputs(data, points)

        # build graph,  bake attributes
        system = SystemFactory.from_serialized_geom(data,
                                                    sys=viper.SystemV3,
                                                    root=tuple(points[0]))
        system.bake()

        syst_meta = SystemRequest(type=system_type, **kwargs)

        heuristic = self.get_system(system_type)()
        rl_engine = RuleEngine(term_rule=heuristic.root, mx=1e6, debug=False)
        fact_base = KB(heuristic.root)
        root_node = rl_engine.alg2(system.root, fact_base)

        # based on labels, finallize graph (adding new info)
        sysrender = RenderNodeSystem()
        root_node = sysrender.render(root_node)
        meta_data = rl_engine.annotate_type(root_node, heuristic.final_labels)

        # create build instructions
        geom, inds, syms = self.finalize(root_node)
        return {'geom': geom, 'indicies': inds, 'symbols': syms}
コード例 #10
0
 def get_sys(self):
     system = SystemFactory.from_segs(SEGMENTS, root=_root, lr='a')
     system = system.bake()
     return viper.nx_to_nodes(system)
コード例 #11
0
 def test_loadsyms(self):
     segs = load_segs()
     ds = [x for x in segs if x['children'] != []]
     system = SystemFactory.from_serialized_geom(ds, root=(-246, 45, 0))
コード例 #12
0
 def test_remover_lg(self):
     segs = load_segs()
     system = SystemFactory.from_serialized_geom(
         segs, sys=viper.System, root=(-246, 45, 0))
     system.bake()
     system.gplot(fwd=True, bkwd=False)
コード例 #13
0
 def test_remover_cl(self):
     system = SystemFactory.from_segs(
         SEGMENTS_COL, sys=viper.System, root=_root, lr='a')
     system.aplot()
コード例 #14
0
 def test_remover_sm(self):
     system = SystemFactory.from_segs(
         SEGMENTS, sys=viper.System, root=_root, lr='a')
     system.bake()
     system.gplot(fwd=True, bkwd=False)