Source code for sknano.generators._mixins
# -*- coding: utf-8 -*-
"""
==============================================================================
Generator mixin classes (:mod:`sknano.generators._mixins`)
==============================================================================
.. currentmodule:: sknano.generators._mixins
"""
from __future__ import absolute_import, division, print_function
__docformat__ = 'restructuredtext en'
import copy
#import itertools
from ._base import Atoms
#from sknano.core.math import Vector
__all__ = ['CappedNanotubeGeneratorMixin',
'NanotubeBundleGeneratorMixin']
class CappedNanotubeGeneratorMixin(object):
"""Mixin class for generating capped nanotubes."""
def generate_endcaps(self):
pass
class NanotubeBundleGeneratorMixin(object):
"""Mixin class for generating nanotube bundles."""
def generate_bundle(self):
self._atomsobj0 = copy.deepcopy(self.atoms)
self.structure_data.clear()
#self.atoms = Atoms()
for dr in self.bundle_coords:
atomsobj = Atoms(atoms=self._atomsobj0, deepcopy=True)
atomsobj.center_CM()
atomsobj.translate(dr)
self.atoms.extend(atomsobj)