======= Surface ======= .. py:class:: Surface .. py:method:: id :property: The id of the surface. :type: str, read-only .. py:method:: name :property: The name of the surface. :type: str :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: layer :property: The visibility layer containing this surface. :type: VisibilityLayer :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: visible :property: The surface visibility. :type: bool :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: locked :property: The surface lock state. :type: bool :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: color :property: The shaper color of the surface. :type: ColorRgb :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: translation :property: The global translation of the surface from the pivot point, in meters. :type: Vector3 :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: rotation :property: The global rotation of the surface from the pivot point, in degrees. :type: Vector3 :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: scale :property: The global scale of the surface from the pivot point. :type: Vector3 :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. :raises ValueError: If trying to set a negative scale. .. py:method:: pivot_global_position :property: The pivot point global position, in meters. :type: Vector3 :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: pivot_global_orientation :property: The pivot point global orientation, in degrees. :type: Vector3 :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: pivot_local_position :property: The pivot point local position, in meters. :type: Vector3 :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: pivot_local_orientation :property: The pivot point local orientation, in degrees. :type: Vector3 :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: symmetry :property: Whether symmetry is enabled for this layer. :type: bool :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: symmetry_plane_normal :property: The normal vector of the symmetry plane. :type: Vector3 :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: symmetry_plane_distance :property: The distance in meters of the symmetry plane from the origin. :type: float :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: triangle_mesh_indices :property: Indices of vertices to make triangles in counter-clockwise order. :type: list(int), read-only .. py:method:: triangle_mesh_positions :property: Indexed triangle mesh vertices position (x, y, z) as floats. Units are meters. :type: list(float), read-only .. py:method:: triangle_mesh_normals :property: Indexed triangle mesh vertices normals (x, y, z) as floats or :py:obj:`None` if the mesh has no normals. :type: list(float) or None, read-only .. py:method:: triangle_mesh_uvs :property: The 32 UV layers of the indexed triangle mesh mesh. Each layer contains UVs (u, v) as floats or :py:obj:`None` if the mesh has no UV at this layer. :type: list(list(float) or None), read-only .. py:method:: duplicate() Duplicate this surface. :returns: The duplicated surface. :rtype: Surface :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: remove() Delete this surface. :raises ReadOnlyError: If :py:obj:`Database` is in read only mode.