|
Blender V5.0
|
#include <transform_snap_object.hh>
Inherited by blender::ed::transform::SnapData_Mesh.
Public Member Functions | |
| SnapData (SnapObjectContext *sctx, const float4x4 &obmat=float4x4::identity()) | |
| void | clip_planes_enable (SnapObjectContext *sctx, const Object *ob_eval, bool skip_occlusion_plane=false) |
| bool | snap_boundbox (const float3 &min, const float3 &max) |
| bool | snap_point (const float3 &co, int index=-1) |
| bool | snap_edge (const float3 &va, const float3 &vb, int edge_index=-1) |
| eSnapMode | snap_edge_points_impl (SnapObjectContext *sctx, int edge_index, float dist_px_sq_orig) |
| void | register_result (SnapObjectContext *sctx, const Object *ob_eval, const ID *id_eval) |
| virtual void | get_vert_co (const int, const float **) |
| virtual void | get_edge_verts_index (const int, int[2]) |
| virtual void | copy_vert_no (const int, float[3]) |
Static Public Member Functions | |
| static void | register_result (SnapObjectContext *sctx, const Object *ob_eval, const ID *id_eval, const float4x4 &obmat, BVHTreeNearest *r_nearest) |
| static void | register_result_raycast (SnapObjectContext *sctx, const Object *ob_eval, const ID *id_eval, const float4x4 &obmat, const BVHTreeRayHit *hit, const bool is_in_front) |
Public Attributes | |
| DistProjectedAABBPrecalc | nearest_precalc |
| Vector< float4, MAX_CLIPPLANE_LEN+1 > | clip_planes |
| float4x4 | pmat_local |
| float4x4 | obmat_ |
| const bool | is_persp |
| bool | use_backface_culling |
| BVHTreeNearest | nearest_point |
Definition at line 139 of file transform_snap_object.hh.
| blender::ed::transform::SnapData::SnapData | ( | SnapObjectContext * | sctx, |
| const float4x4 & | obmat = float4x4::identity() ) |
Definition at line 105 of file transform_snap_object.cc.
References copy_v3_fl3(), blender::ed::transform::SnapObjectContext::Output::dist_px_sq, dist_squared_to_projected_aabb_precalc(), false, is_persp, blender::ed::transform::SnapObjectContext::mval, nearest_point, nearest_precalc, obmat_, params, pmat_local, blender::ed::transform::SnapObjectContext::ret, blender::ed::transform::SnapObjectContext::runtime, blender::ed::transform::SnapObjectContext::rv3d, use_backface_culling, and blender::ed::transform::SnapObjectContext::win_size.
Referenced by blender::ed::transform::SnapData_Mesh::SnapData_Mesh().
| void blender::ed::transform::SnapData::clip_planes_enable | ( | SnapObjectContext * | sctx, |
| const Object * | ob_eval, | ||
| bool | skip_occlusion_plane = false ) |
Definition at line 126 of file transform_snap_object.cc.
References clip_planes, blender::ed::transform::SnapObjectContext::clip_planes, Object::dtx, blender::ed::transform::SnapObjectContext::has_occlusion_plane, blender::ed::transform::SnapObjectContext::has_occlusion_plane_in_front, OB_DRAW_IN_FRONT, obmat_, blender::ed::transform::SnapObjectContext::occlusion_plane, blender::ed::transform::SnapObjectContext::occlusion_plane_in_front, blender::ed::transform::SnapObjectParams::occlusion_test, blender::ed::transform::SnapObjectContext::params, blender::ed::transform::SnapObjectContext::runtime, blender::ed::transform::SNAP_OCCLUSION_AS_SEEM, and blender::math::transpose().
Referenced by blender::ed::transform::snap_grid(), blender::ed::transform::snap_object_center(), blender::ed::transform::snap_polygon_mesh(), blender::ed::transform::snapArmature(), blender::ed::transform::snapCamera(), blender::ed::transform::snapCurve(), and blender::ed::transform::snapMesh().
|
inlinevirtual |
Reimplemented in blender::ed::transform::SnapData_Mesh.
Definition at line 177 of file transform_snap_object.hh.
Referenced by snap_edge_points_impl().
|
inlinevirtual |
Reimplemented in blender::ed::transform::SnapData_Mesh.
Definition at line 176 of file transform_snap_object.hh.
Referenced by snap_edge_points_impl().
|
inlinevirtual |
Reimplemented in blender::ed::transform::SnapData_Mesh.
Definition at line 175 of file transform_snap_object.hh.
Referenced by snap_edge_points_impl().
| void blender::ed::transform::SnapData::register_result | ( | SnapObjectContext * | sctx, |
| const Object * | ob_eval, | ||
| const ID * | id_eval ) |
Definition at line 309 of file transform_snap_object.cc.
References nearest_point, obmat_, and register_result().
|
static |
Definition at line 283 of file transform_snap_object.cc.
References BLI_assert, BVHTreeNearest::co, copy_v3_v3(), blender::ed::transform::SnapObjectContext::Output::data, blender::ed::transform::SnapObjectContext::Output::dist_px_sq, BVHTreeNearest::dist_sq, blender::ed::transform::SnapObjectContext::Output::index, BVHTreeNearest::index, blender::ed::transform::SnapObjectContext::Output::loc, blender::ed::transform::SnapObjectContext::Output::no, BVHTreeNearest::no, blender::math::normalize(), blender::ed::transform::SnapObjectContext::Output::ob, blender::ed::transform::SnapObjectContext::Output::obmat, blender::ed::transform::SnapObjectContext::ret, blender::math::transform_direction(), and blender::math::transform_point().
Referenced by blender::ed::transform::nearest_world_mesh(), register_result(), blender::ed::transform::snap_edge_points_mesh(), blender::ed::transform::snap_grid(), blender::ed::transform::snap_object_center(), blender::ed::transform::snap_polygon_mesh(), blender::ed::transform::snapArmature(), blender::ed::transform::snapCamera(), blender::ed::transform::snapCurve(), and blender::ed::transform::snapMesh().
|
static |
Definition at line 314 of file transform_snap_object.cc.
References BVHTreeRayHit::co, blender::ed::transform::SnapObjectContext::Output::data, BVHTreeRayHit::dist, blender::ed::transform::SnapObjectContext::has_occlusion_plane_in_front, blender::ed::transform::SnapObjectContext::Output::index, BVHTreeRayHit::index, blender::ed::transform::SnapObjectContext::Output::loc, blender::ed::transform::SnapObjectContext::Output::no, BVHTreeRayHit::no, blender::math::normalize(), blender::ed::transform::SnapObjectContext::Output::ob, blender::ed::transform::SnapObjectContext::Output::obmat, blender::ed::transform::occlusion_plane_create(), blender::ed::transform::SnapObjectContext::occlusion_plane_in_front, blender::ed::transform::SnapObjectContext::Output::ray_depth_max, blender::ed::transform::SnapObjectContext::Output::ray_depth_max_in_front, blender::ed::transform::SnapObjectContext::ray_dir, blender::ed::transform::SnapObjectContext::ret, blender::ed::transform::SnapObjectContext::runtime, blender::math::transform_direction(), and blender::math::transform_point().
Referenced by blender::ed::transform::raycastMesh().
Definition at line 147 of file transform_snap_object.cc.
References clip_planes, dist_squared_to_projected_aabb(), ISECT_AABB_PLANE_BEHIND_ANY, isect_aabb_planes_v3(), blender::ed::transform::max, blender::ed::transform::min, nearest_point, and nearest_precalc.
Referenced by blender::ed::transform::snapCurve(), and blender::ed::transform::snapMesh().
| bool blender::ed::transform::SnapData::snap_edge | ( | const float3 & | va, |
| const float3 & | vb, | ||
| int | edge_index = -1 ) |
Definition at line 188 of file transform_snap_object.cc.
References clip_planes, nearest_point, nearest_precalc, sub_v3_v3v3(), and blender::ed::transform::test_projected_edge_dist().
Referenced by blender::ed::transform::snapArmature().
| eSnapMode blender::ed::transform::SnapData::snap_edge_points_impl | ( | SnapObjectContext * | sctx, |
| int | edge_index, | ||
| float | dist_px_sq_orig ) |
Definition at line 205 of file transform_snap_object.cc.
References copy_vert_no(), blender::ed::transform::SnapObjectContext::curr_co, get_edge_verts_index(), get_vert_co(), IN_RANGE, interp_v3_v3v3(), isect_ray_line_v3(), line_point_factor_v3(), mid_v3_v3v3(), mul_v3_m4v3(), nearest_point, nearest_precalc, obmat_, blender::ed::transform::SnapObjectContext::runtime, SCE_SNAP_TO_EDGE, SCE_SNAP_TO_EDGE_ENDPOINT, SCE_SNAP_TO_EDGE_MIDPOINT, SCE_SNAP_TO_EDGE_PERPENDICULAR, snap_point(), blender::ed::transform::SnapObjectContext::snap_to_flag, and sub_v3_v3v3().
Referenced by blender::ed::transform::snap_edge_points_mesh().
| bool blender::ed::transform::SnapData::snap_point | ( | const float3 & | co, |
| int | index = -1 ) |
Definition at line 173 of file transform_snap_object.cc.
References clip_planes, nearest_point, nearest_precalc, and blender::ed::transform::test_projected_vert_dist().
Referenced by snap_edge_points_impl(), blender::ed::transform::snap_grid(), blender::ed::transform::snap_object_center(), blender::ed::transform::snapArmature(), blender::ed::transform::snapCamera(), and blender::ed::transform::snapCurve().
| Vector<float4, MAX_CLIPPLANE_LEN + 1> blender::ed::transform::SnapData::clip_planes |
Definition at line 143 of file transform_snap_object.hh.
Referenced by clip_planes_enable(), snap_boundbox(), snap_edge(), snap_point(), blender::ed::transform::snap_polygon_mesh(), and blender::ed::transform::snapMesh().
| const bool blender::ed::transform::SnapData::is_persp |
Definition at line 146 of file transform_snap_object.hh.
Referenced by SnapData().
| BVHTreeNearest blender::ed::transform::SnapData::nearest_point |
Definition at line 150 of file transform_snap_object.hh.
Referenced by register_result(), snap_boundbox(), snap_edge(), snap_edge_points_impl(), blender::ed::transform::snap_edge_points_mesh(), blender::ed::transform::snap_grid(), snap_point(), blender::ed::transform::snap_polygon_mesh(), blender::ed::transform::snapArmature(), SnapData(), and blender::ed::transform::snapMesh().
| DistProjectedAABBPrecalc blender::ed::transform::SnapData::nearest_precalc |
Definition at line 142 of file transform_snap_object.hh.
Referenced by snap_boundbox(), snap_edge(), snap_edge_points_impl(), snap_point(), blender::ed::transform::snap_polygon_mesh(), and SnapData().
| float4x4 blender::ed::transform::SnapData::obmat_ |
Definition at line 145 of file transform_snap_object.hh.
Referenced by clip_planes_enable(), register_result(), snap_edge_points_impl(), and SnapData().
| float4x4 blender::ed::transform::SnapData::pmat_local |
Definition at line 144 of file transform_snap_object.hh.
Referenced by SnapData(), and blender::ed::transform::snapMesh().
| bool blender::ed::transform::SnapData::use_backface_culling |
Definition at line 147 of file transform_snap_object.hh.
Referenced by SnapData(), and blender::ed::transform::snapMesh().