Blender V5.0
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 angle, float r_matrix[2][2]) const
void build_inverse_transformation (float scale, double angle, 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 119 of file GEO_uv_pack.hh.

Constructor & Destructor Documentation

◆ PackIsland()

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

Definition at line 127 of file uv_pack.cc.

References angle, 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 angle,
float r_matrix[2][2] ) const

Definition at line 2350 of file uv_pack.cc.

References angle, aspect_y, build_inverse_transformation(), cos, reflect, and sin.

Referenced by build_inverse_transformation(), and place_().

◆ build_transformation()

◆ 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 2395 of file uv_pack.cc.

References can_rotate_before_pack_(), 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.

Referenced by can_rotate_before_pack_().

◆ can_scale_()

◆ can_translate_()

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

◆ 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 )

◆ Occupancy

friend class Occupancy
friend

Definition at line 167 of file GEO_uv_pack.hh.

References Occupancy.

Referenced by Occupancy.

◆ OverlapMerger

friend class OverlapMerger
friend

Definition at line 168 of file GEO_uv_pack.hh.

References OverlapMerger.

Referenced by OverlapMerger.

Member Data Documentation

◆ angle

◆ aspect_y

◆ caller_index

int blender::geometry::PackIsland::caller_index

Unchanged by pack_islands, used by caller.

Definition at line 132 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_

◆ 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: