#include <Polys.h>
|
| ENGINE_API | FPoly () |
| |
| ENGINE_API void | Init () |
| |
| ENGINE_API void | Reverse () |
| |
| ENGINE_API void | Transform (const FVector3f &PostAdd) |
| |
| ENGINE_API void | Rotate (const FRotator3f &Rotation) |
| |
| ENGINE_API void | Scale (const FVector3f &Scale) |
| |
| ENGINE_API int32 | Fix () |
| |
| ENGINE_API int32 | CalcNormal (bool bSilent=0) |
| |
| ENGINE_API int32 | SplitWithPlane (const FVector3f &InBase, const FVector3f &InNormal, FPoly *FrontPoly, FPoly *BackPoly, int32 VeryPrecise) const |
| |
| ENGINE_API int32 | SplitWithNode (const UModel *Model, int32 iNode, FPoly *FrontPoly, FPoly *BackPoly, int32 VeryPrecise) const |
| |
| ENGINE_API int32 | SplitWithPlaneFast (const FPlane &Plane, FPoly *FrontPoly, FPoly *BackPoly) const |
| |
| ENGINE_API int32 | Split (const FVector3f &InNormal, const FVector3f &InBase) |
| |
| ENGINE_API int32 | RemoveColinears () |
| |
| int32 | Faces (const FPoly &Test) const |
| |
| ENGINE_API float | Area () |
| |
| bool | DoesLineIntersect (FVector Start, FVector End, FVector *Intersect=NULL) |
| |
| bool | OnPoly (FVector InVtx) |
| |
| ENGINE_API bool | OnPlane (FVector InVtx) |
| |
| ENGINE_API void | InsertVertex (int32 InPos, FVector InVtx) |
| |
| ENGINE_API void | RemoveVertex (FVector InVtx) |
| |
| ENGINE_API bool | IsCoplanar () |
| |
| ENGINE_API bool | IsConvex () |
| |
| ENGINE_API int32 | Triangulate (ABrush *InOwnerBrush, TArray< FPoly > &OutTriangles) |
| |
| ENGINE_API int32 | GetVertexIndex (FVector3f &InVtx) |
| |
| ENGINE_API FVector | GetMidPoint () |
| |
| int32 | IsBackfaced (const FVector3f &Point) const |
| |
| int32 | IsCoplanar (const FPoly &Test) const |
| |
◆ VerticesArrayType
◆ FPoly()
Constructor, initializing all member variables.
◆ Area()
Computes the 2D area of the polygon. Returns zero if the polygon has less than three verices.
◆ BuildInfiniteFPoly()
| FPoly FPoly::BuildInfiniteFPoly |
( |
const FPlane & |
InPlane | ) |
|
|
static |
Builds a huge poly aligned with the specified plane. This poly is carved up by the calling routine and used as a capping poly following a clip operation.
- Parameters
-
| InPlane | The plane to lay the polygon on. |
| InCutPlanes | The planes to split the poly with. |
| InOwnerBrush | The brush that owns the polygons. |
- Returns
- The resulting polygon
◆ CalcNormal()
Compute normal of an FPoly. Works even if FPoly has 180-degree-angled sides (which are often created during T-joint elimination). Returns nonzero result (plus sets normal vector to zero) if a problem occurs.
◆ DoesLineIntersect()
Checks to see if the specified line intersects this poly or not. If "Intersect" is a valid pointer, it is filled in with the intersection point.
◆ Faces()
Return whether this poly and Test are facing each other. The polys are facing if they are noncoplanar, one or more of Test's points is in front of this poly, and one or more of this poly's points are behind Test.
◆ Fix()
Fix up an editor poly by deleting vertices that are identical. Sets vertex count to zero if it collapses. Returns number of vertices, 0 or >=3.
◆ GetMidPoint()
Computes the mid point of the polygon (in local space).
◆ GetVertexIndex()
Finds the index of the specific vertex.
- Parameters
-
| InVtx | The vertex to find the index of |
- Returns
- The index of the vertex, if found. Otherwise INDEX_NONE.
◆ Init()
Initialize everything in an editor polygon structure to defaults. Changes to these default values should also be mirrored to UPolysExporterT3D::ExportText(...).
◆ InsertVertex()
Inserts a vertex into the poly at a specific position.
◆ IsBackfaced()
◆ IsConvex()
Checks to see if this polygon is a convex shape.
- Returns
- true if this polygon is convex.
◆ IsCoplanar() [1/2]
| bool FPoly::IsCoplanar |
( |
| ) |
|
Checks to see if all the vertices on a polygon are coplanar.
◆ IsCoplanar() [2/2]
| int32 FPoly::IsCoplanar |
( |
const FPoly & |
Test | ) |
const |
|
inline |
◆ OnPlane()
Checks to see if the specified vertex lies on this polygons plane.
◆ OnPoly()
Checks to see if the specified vertex is on this poly. Assumes the vertex is on the same plane as the poly and that the poly is convex.
This can be combined with FMath::LinePlaneIntersection to perform a line-fpoly intersection test.
◆ RemoveColinears()
| int32 FPoly::RemoveColinears |
( |
| ) |
|
Remove colinear vertices and check convexity. Returns 1 if convex, 0 if nonconvex or collapsed.
◆ RemoveVertex()
Removes a vertex from the polygons list of vertices
◆ Reverse()
Reverse an FPoly by reversing the normal and reversing the order of its vertices.
◆ Rotate()
Rotate an editor polygon.
◆ Scale()
◆ Split()
Split a poly and keep only the front half. Returns number of vertices, 0 if clipped away.
◆ SplitWithNode()
◆ SplitWithPlane()
Split with plane. Meant to be numerically stable.
◆ SplitWithPlaneFast()
Split with plane quickly for in-game geometry operations. Results are always valid. May return sliver polys.
◆ Transform()
Transform an editor polygon with a post-transformation addition.
◆ Triangulate()
| int32 FPoly::Triangulate |
( |
ABrush * |
InOwnerBrush, |
|
|
TArray< FPoly > & |
OutTriangles |
|
) |
| |
Breaks down this polygon into triangles. The triangles are then returned to the caller in an array.
- Parameters
-
| InOwnerBrush | The brush that owns this polygon. |
| OutTriangles | An array to store the resulting triangles in. |
- Returns
- The number of triangles created
◆ operator!=
◆ operator<<
◆ operator==
◆ Actor
◆ Base
◆ iBrushPoly
◆ iLink
◆ iLinkSurf
◆ ItemName
◆ LightMapScale
| float FPoly::LightMapScale |
◆ LightmassSettings
◆ Material
◆ Normal
◆ PolyFlags
◆ RulesetVariation
| FName FPoly::RulesetVariation |
◆ SmoothingMask
◆ TextureU
◆ TextureV
◆ Vertices
The documentation for this class was generated from the following files:
- Engine/Source/Runtime/Engine/Classes/Engine/Polys.h
- Engine/Source/Runtime/Engine/Private/Polygon.cpp