def build(self):
        """Builds the `HelicalHelix`."""
        helical_helix = Polypeptide()
        primitive_coords = self.curve_primitive.coordinates
        helices = [Helix.from_start_and_end(start=primitive_coords[i],
                                            end=primitive_coords[i + 1],
                                            helix_type=self.minor_helix_type,
                                            aa=1)
                   for i in range(len(primitive_coords) - 1)]
        residues_per_turn = self.minor_residues_per_turn(
            minor_repeat=self.minor_repeat)
        if residues_per_turn == 0:
            residues_per_turn = _helix_parameters[self.minor_helix_type][0]
        if self.minor_handedness == 'l':
            residues_per_turn *= -1
        # initial phi_c_alpha value calculated using the first Helix in helices.
        if self.orientation != -1:
            initial_angle = dihedral(numpy.array([0, 0, 0]),
                                     primitive_coords[0],
                                     primitive_coords[1],
                                     helices[0][0]['CA'])
        else:
            initial_angle = dihedral(
                numpy.array([0, 0, primitive_coords[0][2]]),
                primitive_coords[0],
                numpy.array([primitive_coords[0][0],
                             primitive_coords[0][1], primitive_coords[1][2]]),
                helices[0][0]['CA'])
        # angle required to achieve desired phi_c_alpha value of self.phi_c_alpha.
        addition_angle = self.phi_c_alpha - initial_angle
        for i, h in enumerate(helices):
            angle = (i * (360.0 / residues_per_turn)) + addition_angle
            h.rotate(angle=angle, axis=h.axis.unit_tangent,
                     point=h.helix_start)
            helical_helix.extend(h)
        helical_helix.relabel_all()
        self._monomers = helical_helix._monomers[:]
        for monomer in self._monomers:
            monomer.ampal_parent = self
        return
Builds the `HelicalHelix`.