Example #1
0
 def __init__(self):
     self.planimetry = Factory.create_planimetry()
     self.column = Factory.create_column()
     self.gorgeous_column = GorgeousColumn(5, 18)
     self.top_triangle = Triangle(42, 10)
     self.lateral_roof = Triangle(52, 201)
     self.main_roof = Roof(72, 65.16, 16)
     self.arch = Arch(4, 15, 1.5)
Example #2
0
def get_system():
    if sys.platform == 'linux':
        install_required_dependencies('distro')
        import distro
        if distro.name() == 'Ubuntu':
            current_desktop = os.environ['XDG_CURRENT_DESKTOP']
            if current_desktop == 'KDE':
                print('Detected Kubuntu')
                return Kubuntu()
            elif current_desktop == 'LXQt' or current_desktop == 'LXDE':
                print('Detected Lubuntu')
                return Lubuntu()
            elif current_desktop == 'XFCE':
                print('Detected Xubuntu')
                return Xubuntu()
            else:
                print('Detected Ubuntu')
                return Ubuntu()
        elif distro.name() == 'Arch Linux':
            print('Detected Arch')
            return Arch()
        else:
            return Linux()
    elif sys.platform == 'darwin':
        print('Detected Mac')
        return Mac()
    elif sys.platform == 'win32' or sys.platform == 'cygwin':
        print('Detected Windows')
        return Windows()
    else:
        EnvironmentError('Unknown operating system')
Example #3
0
def calculate_archs(pdb,
                    limit_internal_ss=100,
                    limit_distance=False,
                    allowed_gaps=0):
    number = 1
    for i in range(len(pdb.secondary_structures)):
        for j in range(i + 1, len(pdb.secondary_structures)):
            f1 = pdb._get_structure_array_coordinate(
                pdb.secondary_structures[i]._inip)
            f2 = pdb._get_structure_array_coordinate(
                pdb.secondary_structures[i]._endp)
            f3 = pdb._get_structure_array_coordinate(
                pdb.secondary_structures[j]._inip)
            f4 = pdb._get_structure_array_coordinate(
                pdb.secondary_structures[j]._endp)

            internal_ss_header = []
            if j - i - 1 > limit_internal_ss:
                break
            else:
                ss_count = 2
                intss_types = ''
                for n in range(i + 1, j):
                    internal_ss_header.append(
                        pdb.secondary_structures[n].headerformat(
                            ss_count, chr(65 + ss_count - 1)))
                    intss_types += pdb.secondary_structures[n]._sstype
                    ss_count += 1
            newss = pdb.extract(pdb.secondary_structures[i]._inip,
                                pdb.secondary_structures[j]._endp)
            ss_template = Counter(
                list(newss.gapped_protein_secondary_structure))
            if 'x' in ss_template and ss_template['x'] > allowed_gaps:
                break
            gapcorrectini = 0
            gapcorrectend = 0
            if len(pdb._gaps) > 0:
                if f1 >= pdb._gaps[0]:
                    tmp_str = pdb.extract(pdb.aminoacids[0].identifier,
                                          pdb.secondary_structures[i]._inip)
                    ss_template = Counter(
                        list(tmp_str.gapped_protein_secondary_structure))
                    gapcorrectini = ss_template['x']
                    if allowed_gaps == 0:
                        gapcorrectend = gapcorrectini
                    else:
                        tmp_str = pdb.extract(
                            pdb.aminoacids[0].identifier,
                            pdb.secondary_structures[j]._endp)
                        ss_template = Counter(
                            list(tmp_str.gapped_protein_secondary_structure))
                        gapcorrectend = ss_template['x']

            secondstructurepair = Arch(
                pdb.globalID, pdb.secondary_structures[i],
                pdb.secondary_structures[j], j - i - 1, f3 - f2 - 1, newss,
                pdb._torsionsCA[f1 + gapcorrectini:f4 + 1 + gapcorrectend],
                pdb._psiphi[(f1 + gapcorrectini) * 3:(f4 + gapcorrectend) * 3 +
                            6], number)
            # distance restriction only aplies to archs with internal structures
            if secondstructurepair.is_superarch and \
               (limit_distance and secondstructurepair.cartesian_distance > limit_distance):
                break

            secondstructurepair._inttxt = internal_ss_header
            secondstructurepair._inttyp = intss_types
            if secondstructurepair.is_superarch:
                pdb._superarchs.append(secondstructurepair)
            else:
                pdb._archs.append(secondstructurepair)
            number += 1
Example #4
0
	def setAlignment(self, alignment, arch):
		Arch.sanityCheck(arch)
		self._alignments[arch] = alignment
Example #5
0
	def setSize(self, size, arch):
		Arch.sanityCheck(arch)
		self._sizes[arch] = size
Example #6
0
	def setAddress(self, address, arch):
		Arch.sanityCheck(arch)
		self._addresses[arch] = address
Example #7
0
	def getAlignment(self, arch):
		Arch.sanityCheck(arch)
		return self._alignments[arch]
Example #8
0
	def getSize(self, arch):
		Arch.sanityCheck(arch)
		return self._sizes[arch]
Example #9
0
	def getAddress(self, arch):
		Arch.sanityCheck(arch)
		return self._addresses[arch]
Example #10
0
class VillaEmo:
    def __init__(self):
        self.planimetry = Factory.create_planimetry()
        self.column = Factory.create_column()
        self.gorgeous_column = GorgeousColumn(5, 18)
        self.top_triangle = Triangle(42, 10)
        self.lateral_roof = Triangle(52, 201)
        self.main_roof = Roof(72, 65.16, 16)
        self.arch = Arch(4, 15, 1.5)

    def render(self):
        return STRUCT([
            self.get_top_triangle(),
            self.get_planimetry(),
            self.get_steps(),
            self.texture("intonaco.jpg", 5,
                         5)(TOP([self.get_columns_lx(),
                                 self.get_archs()])),
            self.texture("intonaco.jpg", 5,
                         5)(TOP([self.get_columns_rx(),
                                 self.get_archs()])),
            self.get_first_floor(),
            self.get_gorgeous_columns(),
            self.get_lateral_roof(),
            self.get_main_root(),
            self.lateral_floor(),
        ])

    def get_planimetry(self):
        return self.texture("intonaco.jpg", .5, .5)(DIFFERENCE(
            [self.planimetry.render(),
             self.get_entrance()]))

    def get_steps(self):
        steps = Steps(steps=20, width=45, height=15, depth=84)
        return T([1, 2, 3])([229, 0, 0])(self.texture("steps.jpg", .5,
                                                      .5)(steps.render()))

    def get_columns_lx(self):
        column = self.get_column()
        return T([1, 2])([0, 90])(STRUCT(self.repeat(column, 1, 12, 17.7)))

    def get_columns_rx(self):
        column = self.get_column()
        return T([1, 2])([301, 90])(STRUCT(self.repeat(column, 1, 12, 17.7)))

    def get_column(self):
        return Column(width=6,
                      height=19,
                      width_decoration=7,
                      height_decoration=1).render()

    def get_entrance(self):
        return T([1, 2, 3])([233, 83, 16])(CUBOID([36, 2, 25]))

    def get_first_floor(self):
        return T([1, 2, 3])([202, 84,
                             15])(self.texture("atrio.jpg", 1.5,
                                               1.5)(CUBOID([94, 84, 1])))

    def get_gorgeous_columns(self):
        gorgeous_column = self.texture("intonaco.jpg", .5,
                                       .5)(self.gorgeous_column.render())
        return T([1, 2, 3])([233, 83,
                             16])(STRUCT(self.repeat(gorgeous_column, 1, 4,
                                                     12)))

    def get_top_triangle(self):
        height_base = 9
        return T([1, 2, 3])([230, 108, 41])((STRUCT([
            T(2)(-26)(self.texture("intonaco.jpg", 5,
                                   5)(CUBOID([42, 5, height_base]))),
            self.texture("tegole.jpg", 1,
                         2)(T(3)(height_base)(Triangle(42, 27).render())),
            T([2, 3])([-26.5,
                       height_base])(self.texture("fronte.jpg", 35.,
                                                  31.)(Triangle(42,
                                                                1).render())),
        ])))

    def get_lateral_roof(self):
        roof = self.texture("tegole.jpg", .5, .5)(self.lateral_roof.render())
        return STRUCT(
            self.repeat(
                T([1, 2, 3])([0, 93, 30])(ROTATE([1, 2])(PI / 2)(roof)), 1, 2,
                301))

    def get_main_root(self):
        return T([1, 2, 3])([251, 129,
                             50])(self.texture("tegole.jpg", .5,
                                               .5)(self.main_roof.render()))

    def get_archs(self):
        arch = self.arch.render()
        return STRUCT(self.repeat(arch, 1, 11, 17.7))

    def texture(self, f, scale_x=0, scale_y=0):
        return TEXTURE([os.path.join(path, "../assets/" + f)] + [
            True, True, 0.0, 0.0, 0.0, 1 + float(1 / scale_x), 1 +
            float(1 / scale_y), 0.0, 0.0
        ])

    def lateral_floor(self):
        pav = self.texture("pavimento.jpg", 1, 1)(QUOTE([200, 13, 1]))
        return T(2)(92)(STRUCT(self.repeat(pav, 1, 10, 10)))

    @staticmethod
    def repeat(o, axis, n, space):
        return map(lambda i: T(axis)(i * space)(o), range(0, n))