Blender V4.3
blender::geometry::PackIsland Class Reference

#include <GEO_uv_pack.hh>

Public Member Functions

 PackIsland ()
 
void add_triangle (float2 uv0, float2 uv1, float2 uv2)
 
void add_polygon (Span< float2 > uvs, MemArena *arena, Heap *heap)
 
void build_transformation (float scale, double rotation, float r_matrix[2][2]) const
 
void build_inverse_transformation (float scale, double rotation, float r_matrix[2][2]) const
 
float2 get_diagonal_support (float scale, float rotation, float margin) const
 
float2 get_diagonal_support_d4 (float scale, float rotation, float margin) const
 
void place_ (float scale, UVPhi phi)
 
void finalize_geometry_ (const UVPackIsland_Params &params, MemArena *arena, Heap *heap)
 
bool can_rotate_before_pack_ (const UVPackIsland_Params &params) const
 
bool can_rotate_ (const UVPackIsland_Params &params) const
 
bool can_scale_ (const UVPackIsland_Params &params) const
 
bool can_translate_ (const UVPackIsland_Params &params) const
 

Public Attributes

float aspect_y
 
bool pinned
 
float2 pre_translate
 
float angle
 
int caller_index
 
float2 pivot_
 
float2 half_diagonal_
 
float pre_rotate_
 
Vector< float2triangle_vertices_
 

Friends

class Occupancy
 
class OverlapMerger
 

Detailed Description

Definition at line 121 of file GEO_uv_pack.hh.

Constructor & Destructor Documentation

◆ PackIsland()

blender::geometry::PackIsland::PackIsland ( )

Definition at line 136 of file uv_pack.cc.

References aspect_y, caller_index, half_diagonal_, pinned, pivot_, pre_rotate_, and pre_translate.

Member Function Documentation

◆ add_polygon()

void blender::geometry::PackIsland::add_polygon ( Span< float2 > uvs,
MemArena * arena,
Heap * heap )

◆ add_triangle()

void blender::geometry::PackIsland::add_triangle ( float2 uv0,
float2 uv1,
float2 uv2 )

◆ build_inverse_transformation()

void blender::geometry::PackIsland::build_inverse_transformation ( float scale,
double rotation,
float r_matrix[2][2] ) const

Definition at line 2369 of file uv_pack.cc.

References cos(), and reflect().

Referenced by place_().

◆ build_transformation()

void blender::geometry::PackIsland::build_transformation ( float scale,
double rotation,
float r_matrix[2][2] ) const

◆ can_rotate_()

bool blender::geometry::PackIsland::can_rotate_ ( const UVPackIsland_Params & params) const

◆ can_rotate_before_pack_()

bool blender::geometry::PackIsland::can_rotate_before_pack_ ( const UVPackIsland_Params & params) const

Check that rotation is allowed before packing, where the island may rotated to a desired orientation but not as part of packing. Needed for X/Y axis alignment to be supported.

Definition at line 2414 of file uv_pack.cc.

References blender::geometry::can_rotate_with_method(), ED_UVPACK_ROTATION_AXIS_ALIGNED, ED_UVPACK_ROTATION_AXIS_ALIGNED_X, ED_UVPACK_ROTATION_AXIS_ALIGNED_Y, ELEM, and params.

◆ can_scale_()

◆ can_translate_()

bool blender::geometry::PackIsland::can_translate_ ( const UVPackIsland_Params & params) const

Definition at line 2446 of file uv_pack.cc.

References ED_UVPACK_PIN_LOCK_ALL, and params.

Referenced by blender::geometry::pack_island_xatlas().

◆ finalize_geometry_()

void blender::geometry::PackIsland::finalize_geometry_ ( const UVPackIsland_Params & params,
MemArena * arena,
Heap * heap )

◆ get_diagonal_support()

float2 blender::geometry::PackIsland::get_diagonal_support ( float scale,
float rotation,
float margin ) const

◆ get_diagonal_support_d4()

float2 blender::geometry::PackIsland::get_diagonal_support_d4 ( float scale,
float rotation,
float margin ) const

◆ place_()

void blender::geometry::PackIsland::place_ ( float scale,
UVPhi phi )

Friends And Related Symbol Documentation

◆ Occupancy

friend class Occupancy
friend

Definition at line 169 of file GEO_uv_pack.hh.

◆ OverlapMerger

friend class OverlapMerger
friend

Definition at line 170 of file GEO_uv_pack.hh.

Member Data Documentation

◆ angle

float blender::geometry::PackIsland::angle

◆ aspect_y

◆ caller_index

int blender::geometry::PackIsland::caller_index

Unchanged by pack_islands, used by caller.

Definition at line 134 of file GEO_uv_pack.hh.

Referenced by PackIsland(), blender::geometry::uv_parametrizer_pack(), and uvedit_pack_islands_multi().

◆ half_diagonal_

float2 blender::geometry::PackIsland::half_diagonal_

◆ pinned

◆ pivot_

float2 blender::geometry::PackIsland::pivot_

Center of AABB and inside-or-touching the convex hull.

Definition at line 146 of file GEO_uv_pack.hh.

Referenced by blender::geometry::pack_island_xatlas(), PackIsland(), place_(), blender::geometry::rotate_inside_square(), and blender::geometry::Occupancy::trace_island().

◆ pre_rotate_

float blender::geometry::PackIsland::pre_rotate_

◆ pre_translate

float2 blender::geometry::PackIsland::pre_translate

◆ triangle_vertices_


The documentation for this class was generated from the following files: