Class: Sketchup::Face
- Inherits:
-
Drawingelement
- Object
- Entity
- Drawingelement
- Sketchup::Face
Overview
Faces in SketchUp are flat, 2-sided polygons with 3 or more sides.
Constant Summary #
- Sketchup::Face::PointUnknown
- Sketchup::Face::PointInside
- Sketchup::Face::PointOnVertex
- Sketchup::Face::PointOnEdge
- Sketchup::Face::PointOnFace
- Sketchup::Face::PointOutside
- Sketchup::Face::PointNotOnPlane
Instance Method Summary # collapse
-
#all_connected ⇒ Array<Sketchup::Entity>
The all_connected method retrieves all of the entities connected to a face.
-
#area(*args) ⇒ Object
The area method is used to retrieve the area of a face.
-
#back_material ⇒ Sketchup::Material?
The back_material method is used to retrieve the material assigned to the back side of the face.
-
#back_material=(material) ⇒ Sketchup::Material
The back_material= method is used to set the material assigned to the back side of the face.
-
#classify_point(point) ⇒ Integer
The classify_point method is used to determine if a given Point3d is on the referenced Face.
-
#clear_texture_position(front) ⇒ Object
The #clear_texture_position method is used to remove any explicit texture positioning for a face and have SketchUp display it with the default texture positioning.
-
#clear_texture_projection(frontside) ⇒ Object
The #clear_texture_projection method is used to clear the texture projection.
-
#edges ⇒ Array<Sketchup::Edge>
The edges method is used to get an array of edges that bound the face.
-
#followme(*args) ⇒ Object
The #followme method is used to create a shape by making the face follow along an array of edges.
-
#get_glued_instances ⇒ Array<Sketchup::ComponentInstance, Sketchup::Group, Sketchup::Image>
The get_glued_instances method returns an Array any ComponentInstances that are glued to the face.
-
#get_texture_projection(frontside) ⇒ Geom::Vector3d?
The #get_texture_projection method will return a vector representing the projection for either the front or back side of the face.
-
#get_UVHelper(*args) ⇒ Sketchup::UVHelper
The get_UVHelper object is used to retrieve a UVHelper object for use in texture manipulation on a face.
-
#loops ⇒ Array<Sketchup::Loop>
The loops method is used to get an array of all of the loops that bound the face.
-
#material ⇒ Sketchup::Material?
The material method is used to retrieve the material assigned to the front of the face.
-
#material=(material) ⇒ Sketchup::Material
The material= method is used to set the material assigned to the front side of the face.
-
#mesh(flags = 0) ⇒ Geom::PolygonMesh
The mesh method creates a polygon mesh that represents the face.
-
#normal ⇒ Geom::Vector3d
The normal method is used to retrieve the 3D vector normal to the face in the front direction.
-
#outer_loop ⇒ Sketchup::Loop
This method is used to retrieve the outer loop that bounds the face.
-
#plane ⇒ Array(Float, Float, Float, Float)
The plane method is used to retrieve the plane of the face.
-
#position_material(*args) ⇒ Sketchup::Face, false
The #position_material method is used to position a material on a face.
-
#pushpull(distance, copy = false) ⇒ nil
The pushpull method is used to perform a push/pull on a face.
-
#reverse! ⇒ Sketchup::Face, false
The reverse! method is used to reverse the face's orientation, meaning the front becomes the back.
-
#set_texture_projection(vector, frontside) ⇒ Boolean
deprecated
Deprecated.
This function never worked correctly. It's not capable of controlling the position and orientation of the texture. In some cases it produced an invalid model. As of SketchUp 2021.1 the method simply raises
NotImplementedError
. -
#texture_positioned?(front) ⇒ Boolean
The #texture_positioned? method is used to check if the face has a texture that is positioned.
-
#texture_projected?(front) ⇒ Boolean
The #texture_projected? method is used to check if the face has a texture that is projected.
-
#uv_tile_at(position, front) ⇒ Array<Geom::Point3d>?
The #uv_tile_at method is used to get the corner positions (model and UV) of a UV tile.
-
#vertices ⇒ Array<Sketchup::Vertex>
The vertices method is used to get an array of all of the vertices that bound the face.
Methods inherited from Drawingelement
#bounds, #casts_shadows=, #casts_shadows?, #erase!, #hidden=, #hidden?, #layer, #layer=, #receives_shadows=, #receives_shadows?, #visible=, #visible?
Methods inherited from Entity
#add_observer, #attribute_dictionaries, #attribute_dictionary, #delete_attribute, #deleted?, #entityID, #get_attribute, #inspect, #model, #parent, #persistent_id, #remove_observer, #set_attribute, #to_s, #typename, #valid?
Instance Method Details
↑ #all_connected ⇒ Array<Sketchup::Entity>
The all_connected method retrieves all of the entities connected to a face.
↑ #area ⇒ Float #area(transform) ⇒ Float
The area method is used to retrieve the area of a face.
You can pass in an optional Transformation (or an array that can represent a transformation), to correct for a parent group's transformation. For example, if a face is inside of a group that is scaled to 200%, the area method will return the unscaled area of the face. So by passing a 200% transformation object to this method, you can account for that to get the “visual” area of the face.
↑ #back_material ⇒ Sketchup::Material?
The back_material method is used to retrieve the material assigned to the back side of the face.
↑ #back_material=(material) ⇒ Sketchup::Material
The back_material= method is used to set the material assigned to the back side of the face.
↑ #classify_point(point) ⇒ Integer
The classify_point method is used to determine if a given Point3d is on the referenced Face.
It is important that return value comparisons be made against the symbolic constants (i.e. PointUnknown, PointInside, PointOnVertex, etc.) rather than the absolute integer values as these values may change from one release to the next.
↑ #clear_texture_position(front) ⇒ Object
The #clear_texture_position method is used to remove any explicit texture positioning for a face and have SketchUp display it with the default texture positioning.
↑ #clear_texture_projection(frontside) ⇒ Object
The #clear_texture_projection method is used to clear the texture projection. This is similar to toggling off Projection from the Position Texture tool in the UI.
↑ #edges ⇒ Array<Sketchup::Edge>
The edges method is used to get an array of edges that bound the face.
↑ #followme(edges) ⇒ Boolean #followme(edge) ⇒ Boolean
The #followme method is used to create a shape by making the face follow along an array of edges.
↑ #get_glued_instances ⇒ Array<Sketchup::ComponentInstance, Sketchup::Group, Sketchup::Image>
The get_glued_instances method returns an Array any ComponentInstances that are glued to the face.
ComponentInstance objects that are currently glued to the face.
↑ #get_texture_projection(frontside) ⇒ Geom::Vector3d?
The #get_texture_projection method will return a vector representing the projection for either the front or back side of the face.
↑ #get_UVHelper(front = true, back = true) ⇒ Sketchup::UVHelper #get_UVHelper(front = true, back = true, texturewriter) ⇒ Sketchup::UVHelper
The get_UVHelper object is used to retrieve a UVHelper object for use in texture manipulation on a face.
↑ #loops ⇒ Array<Sketchup::Loop>
The loops method is used to get an array of all of the loops that bound the face.
↑ #material ⇒ Sketchup::Material?
The material method is used to retrieve the material assigned to the front of the face. (This method is inherited from the Drawingelement parent class.)
↑ #material=(material) ⇒ Sketchup::Material
The material= method is used to set the material assigned to the front side of the face. (This method is inherited from the Drawingelement parent class.)
↑ #mesh(flags = 0) ⇒ Geom::PolygonMesh
The mesh method creates a polygon mesh that represents the face. See the Geom::PolygonMesh class for more information.
Valid flags are:
-
0
: Include PolygonMeshPoints, -
1
: Include PolygonMeshUVQFront, -
2
: Include PolygonMeshUVQBack, -
4
: Include PolygonMeshNormals.
Use bitwise OR to combine flags. A value of 7
will include all flags, for example.
↑ #normal ⇒ Geom::Vector3d
The normal method is used to retrieve the 3D vector normal to the face in the front direction.
↑ #outer_loop ⇒ Sketchup::Loop
This method is used to retrieve the outer loop that bounds the face.
↑ #plane ⇒ Array(Float, Float, Float, Float)
The plane method is used to retrieve the plane of the face. See the Array class for information on how planes are stored.
↑ #position_material(material, points, on_front) ⇒ Sketchup::Face, false #position_material(material, points, on_front, projection) ⇒ Sketchup::Face, false
The #position_material method is used to position a material on a face.
The points
argument must contain 2, 4, 6 or 8 points. The points are used in pairs to describe where a point in the texture image is positioned on the Face. The first point in each pair is a 3D point in the model. The second point in each pair of points is a 2D point that gives the (u,v) coordinates of a point in the image to match up with the 3D point.
↑ #pushpull(distance, copy = false) ⇒ nil
The pushpull method is used to perform a push/pull on a face.
The distance is measured in the direction that the face normal is pointing.
↑ #reverse! ⇒ Sketchup::Face, false
The reverse! method is used to reverse the face's orientation, meaning the front becomes the back.
↑ #set_texture_projection(vector, frontside) ⇒ Boolean
This function never worked correctly. It's not capable of controlling the position and orientation of the texture. In some cases it produced an invalid model. As of SketchUp 2021.1 the method simply raises NotImplementedError
.
The #set_texture_projection method is used to set the texture projection direction.
↑ #texture_positioned?(front) ⇒ Boolean
The #texture_positioned? method is used to check if the face has a texture that is positioned.
A texture is positioned when it's not using the default texture coordinates.
When a user uses the Paint Bucket Tool to apply a material sampled from the Material Browser it will use default texture coordinates and not be positioned. It will be positioned if the user uses the Position Texture Tool.
When an API user uses Drawinglement#material= the texture is not positioned. It will be positioned when the API user uses #position_material. It it also positioned of the face was crafted via Geom::PolygonMesh.
↑ #texture_projected?(front) ⇒ Boolean
The #texture_projected? method is used to check if the face has a texture that is projected.
A texture is projected when the user enables this property via the Position Texture Tool.
It is also projected when the API user passes a projection vector to #position_material.
↑ #uv_tile_at(position, front) ⇒ Array<Geom::Point3d>?
The #uv_tile_at method is used to get the corner positions (model and UV) of a UV tile.
The UV tile bounds the given reference point on the plane of the face. If the reference isn't on the plane of the face it will be projected onto it.
The world coordinates are on the plane of the face unless the texture is projected. When the texture is projected the the world points are on an arbitrary plane that is perpendicular to the projection direction.
The returned coordinates are arranged to be compatible with #position_material.
Getting the bounds of the UV tile under the cursor:
The red quadrilateral represents the model points returned.
↑ #vertices ⇒ Array<Sketchup::Vertex>
The vertices method is used to get an array of all of the vertices that bound the face.