Source code for KicadModTree.nodes.base.Model

# KicadModTree is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# KicadModTree is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with kicad-footprint-generator. If not, see < http://www.gnu.org/licenses/ >.
#
# (C) 2016 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>

from KicadModTree.Vector import *
from KicadModTree.nodes.Node import Node


[docs]class Model(Node): r"""Add a 3D-Model to the render tree :param \**kwargs: See below :Keyword Arguments: * *filename* (``str``) -- name of the 3d-model file * *at* (``Vector3D``) -- position of the model (default: [0, 0, 0]) * *scale* (``Vector3D``) -- scale of the model (default: [1, 1, 1]) * *rotate* (``Vector3D``) -- rotation of the model (default: [0, 0, 0]) :Example: >>> from KicadModTree import * >>> Model(filename="example.3dshapes/example_footprint.wrl", ... at=[0, 0, 0], scale=[1, 1, 1], rotate=[0, 0, 0]) """ def __init__(self, **kwargs): Node.__init__(self) self.filename = kwargs['filename'] self.at = Vector3D(kwargs.get('at', [0, 0, 0])) self.scale = Vector3D(kwargs.get('scale', [1, 1, 1])) self.rotate = Vector3D(kwargs.get('rotate', [0, 0, 0])) def _getRenderTreeText(self): render_text = Node._getRenderTreeText(self) render_string = ['filename: {filename}'.format(filename=self.filename), 'at: {at}'.format(at=self.at.render('(xyz {x} {y} {z})')), 'scale: {scale}'.format(scale=self.scale.render('(xyz {x} {y} {z})')), 'rotate: {rotate}'.format(rotate=self.rotate.render('(xyz {x} {y} {z})'))] render_text += " [{}]".format(", ".join(render_string)) return render_text