def _view_3d(self, figure_id=None, new_figure=False, textured=True, **kwargs): r""" Visualize the :map:`TexturedTriMesh` in 3D. Parameters ---------- figure_id : `object`, optional The id of the figure to be used. new_figure : `bool`, optional If ``True``, a new figure is created. textured : `bool`, optional If `True`, render the texture. Returns ------- viewer : :map:`Renderer` The viewer object. """ if textured: try: from menpo3d.visualize import TexturedTriMeshViewer3d return TexturedTriMeshViewer3d( figure_id, new_figure, self.points, self.trilist, self.texture, self.tcoords.points).render(**kwargs) except ImportError: from menpo.visualize import Menpo3dErrorMessage raise ImportError(Menpo3dErrorMessage) else: return super(TexturedTriMesh, self).view(figure_id=figure_id, new_figure=new_figure, **kwargs)
def view(self, figure_id=None, new_figure=False, textured=True, **kwargs): r""" Visualize the :class:`TexturedTriMesh`. Only 3D objects are currently supported. Parameters ---------- textured : bool, optional If `True`, render the texture. Default: `True` Returns ------- viewer : :class:`menpo.visualize.base.Renderer` The viewer object. Raises ------ DimensionalityError If `self.n_dims != 3`. """ if textured: if self.n_dims == 3: try: from menpo3d.visualize import TexturedTriMeshViewer3d return TexturedTriMeshViewer3d( figure_id, new_figure, self.points, self.trilist, self.texture, self.tcoords.points).render(**kwargs) except ImportError: from menpo.visualize import Menpo3dErrorMessage raise ImportError(Menpo3dErrorMessage) else: raise ValueError("Only viewing of 3D textured meshes" "is currently supported.") else: return super(TexturedTriMesh, self).view(figure_id=figure_id, new_figure=new_figure, **kwargs)
def _view_3d( self, figure_id=None, new_figure=True, render_texture=True, mesh_type="surface", ambient_light=0.0, specular_light=0.0, colour="r", line_width=2, normals=None, normals_colour="k", normals_line_width=2, normals_marker_style="2darrow", normals_marker_resolution=8, normals_marker_size=None, step=None, alpha=1.0, ): r""" Visualize the Textured TriMesh in 3D. Parameters ---------- figure_id : `object`, optional The id of the figure to be used. new_figure : `bool`, optional If ``True``, a new figure is created. render_texture : `bool`, optional If ``True``, then the texture is rendered. If ``False``, then only the TriMesh is rendered with the specified `colour`. mesh_type : ``{'surface', 'wireframe'}``, optional The representation type to be used for the mesh. ambient_light : `float`, optional The ambient light intensity. It must be in range ``[0., 1.]``. specular_light : `float`, optional The specular light intensity. It must be in range ``[0., 1.]``. colour : See Below, optional The colour of the mesh if `render_texture` is ``False``. Example options :: {r, g, b, c, m, k, w} or (3, ) ndarray line_width : `float`, optional The width of the lines, if there are any. normals : ``(n_points, 3)`` `ndarray` or ``None``, optional If ``None``, then the normals will not be rendered. If `ndarray`, then the provided normals will be rendered as well. Note that a normal must be provided for each point in the TriMesh. normals_colour : See Below, optional The colour of the normals. Example options :: {r, g, b, c, m, k, w} or (3, ) ndarray normals_line_width : `float`, optional The width of the lines of the normals. It only applies if `normals` is not ``None``. normals_marker_style : `str`, optional The style of the markers of the normals. It only applies if `normals` is not ``None``. Example options :: {2darrow, 2dcircle, 2dcross, 2ddash, 2ddiamond, 2dhooked_arrow, 2dsquare, 2dthick_arrow, 2dthick_cross, 2dtriangle, 2dvertex, arrow, axes, cone, cube, cylinder, point, sphere} normals_marker_resolution : `int`, optional The resolution of the markers of the normals. For spheres, for instance, this is the number of divisions along theta and phi. It only applies if `normals` is not ``None``. normals_marker_size : `float` or ``None``, optional The size of the markers. This size can be seen as a scale factor applied to the size markers, which is by default calculated from the inter-marker spacing. If ``None``, then an optimal marker size value will be set automatically. It only applies if `normals` is not ``None``. step : `int` or ``None``, optional If `int`, then one every `step` normals will be rendered. If ``None``, then all vertexes will be rendered. It only applies if `normals` is not ``None``. alpha : `float`, optional Defines the transparency (opacity) of the object. Returns ------- renderer : `menpo3d.visualize.TexturedTriMeshViewer3D` The Menpo3D rendering object. """ if render_texture: try: from menpo3d.visualize import TexturedTriMeshViewer3d renderer = TexturedTriMeshViewer3d( figure_id, new_figure, self.points, self.trilist, self.texture, self.tcoords.points, ) renderer.render( mesh_type=mesh_type, ambient_light=ambient_light, specular_light=specular_light, normals=normals, normals_colour=normals_colour, normals_line_width=normals_line_width, normals_marker_style=normals_marker_style, normals_marker_resolution=normals_marker_resolution, normals_marker_size=normals_marker_size, step=step, alpha=alpha, ) return renderer except ImportError as e: from menpo.visualize import Menpo3dMissingError raise Menpo3dMissingError(e) else: try: from menpo3d.visualize import TriMeshViewer3d renderer = TriMeshViewer3d(figure_id, new_figure, self.points, self.trilist) renderer.render( mesh_type=mesh_type, line_width=line_width, colour=colour, normals=normals, normals_colour=normals_colour, normals_line_width=normals_line_width, normals_marker_style=normals_marker_style, normals_marker_resolution=normals_marker_resolution, normals_marker_size=normals_marker_size, step=step, alpha=alpha, ) return renderer except ImportError as e: from menpo.visualize import Menpo3dMissingError raise Menpo3dMissingError(e)