|
Blender V4.3
|
#include <transform_snap_object.hh>
Inherited by SnapData_Mesh.
Public Member Functions | |
| SnapData (SnapObjectContext *sctx, const blender::float4x4 &obmat=blender::float4x4::identity()) | |
| void | clip_planes_enable (SnapObjectContext *sctx, const Object *ob_eval, bool skip_occlusion_plane=false) |
| bool | snap_boundbox (const blender::float3 &min, const blender::float3 &max) |
| bool | snap_point (const blender::float3 &co, int index=-1) |
| bool | snap_edge (const blender::float3 &va, const blender::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 blender::float4x4 &obmat, BVHTreeNearest *r_nearest) |
| static void | register_result_raycast (SnapObjectContext *sctx, const Object *ob_eval, const ID *id_eval, const blender::float4x4 &obmat, const BVHTreeRayHit *hit, const bool is_in_front) |
Public Attributes | |
| DistProjectedAABBPrecalc | nearest_precalc |
| blender::Vector< blender::float4, MAX_CLIPPLANE_LEN+1 > | clip_planes |
| blender::float4x4 | pmat_local |
| blender::float4x4 | obmat_ |
| const bool | is_persp |
| bool | use_backface_culling |
| BVHTreeNearest | nearest_point |
Definition at line 119 of file transform_snap_object.hh.
| SnapData::SnapData | ( | SnapObjectContext * | sctx, |
| const blender::float4x4 & | obmat = blender::float4x4::identity() ) |
Definition at line 101 of file transform_snap_object.cc.
References copy_v3_fl3(), SnapObjectContext::dist_px_sq, BVHTreeNearest::dist_sq, dist_squared_to_projected_aabb_precalc(), BVHTreeNearest::index, SnapObjectContext::mval, nearest_point, nearest_precalc, BVHTreeNearest::no, RegionView3D::persmat, pmat_local, blender::MatBase< T, NumCol, NumRow, Alignment >::ptr(), SnapObjectContext::ret, SnapObjectContext::runtime, SnapObjectContext::rv3d, and SnapObjectContext::win_size.
| void SnapData::clip_planes_enable | ( | SnapObjectContext * | sctx, |
| const Object * | ob_eval, | ||
| bool | skip_occlusion_plane = false ) |
Definition at line 122 of file transform_snap_object.cc.
References clip_planes, SnapObjectContext::clip_planes, Object::dtx, SnapObjectContext::has_occlusion_plane, SnapObjectContext::has_occlusion_plane_in_front, OB_DRAW_IN_FRONT, obmat_, SnapObjectContext::occlusion_plane, SnapObjectContext::occlusion_plane_in_front, SnapObjectParams::occlusion_test, SnapObjectContext::params, SnapObjectContext::runtime, SNAP_OCCLUSION_AS_SEEM, and blender::math::transpose().
Referenced by snap_grid(), snap_object_center(), snap_polygon_mesh(), snapArmature(), snapCamera(), snapCurve(), and snapMesh().
Reimplemented in SnapData_Mesh.
Definition at line 159 of file transform_snap_object.hh.
Referenced by snap_edge_points_impl().
Reimplemented in SnapData_Mesh.
Definition at line 158 of file transform_snap_object.hh.
Referenced by cb_snap_edge(), and snap_edge_points_impl().
Reimplemented in SnapData_Mesh.
Definition at line 157 of file transform_snap_object.hh.
Referenced by cb_snap_vert(), and snap_edge_points_impl().
| void SnapData::register_result | ( | SnapObjectContext * | sctx, |
| const Object * | ob_eval, | ||
| const ID * | id_eval ) |
Definition at line 305 of file transform_snap_object.cc.
References nearest_point, obmat_, and register_result().
|
static |
Definition at line 279 of file transform_snap_object.cc.
References BLI_assert, BVHTreeNearest::co, copy_v3_v3(), SnapObjectContext::data, SnapObjectContext::dist_px_sq, BVHTreeNearest::dist_sq, BVHTreeNearest::index, SnapObjectContext::index, SnapObjectContext::loc, BVHTreeNearest::no, SnapObjectContext::no, blender::math::normalize(), SnapObjectContext::ob, SnapObjectContext::obmat, SnapObjectContext::ret, blender::math::transform_direction(), and blender::math::transform_point().
Referenced by nearest_world_mesh(), register_result(), snap_edge_points_mesh(), snap_grid(), snap_object_center(), snap_polygon_mesh(), snapArmature(), snapCamera(), snapCurve(), and snapMesh().
|
static |
Definition at line 310 of file transform_snap_object.cc.
References SnapObjectContext::data, SnapObjectContext::has_occlusion_plane_in_front, SnapObjectContext::index, SnapObjectContext::loc, SnapObjectContext::no, blender::math::normalize(), SnapObjectContext::ob, SnapObjectContext::obmat, occlusion_plane_create(), SnapObjectContext::occlusion_plane_in_front, SnapObjectContext::ray_depth_max, SnapObjectContext::ray_depth_max_in_front, SnapObjectContext::ray_dir, SnapObjectContext::ret, SnapObjectContext::runtime, blender::math::transform_direction(), and blender::math::transform_point().
Referenced by raycastMesh().
| bool SnapData::snap_boundbox | ( | const blender::float3 & | min, |
| const blender::float3 & | max ) |
Definition at line 143 of file transform_snap_object.cc.
References clip_planes, BVHTreeNearest::dist_sq, dist_squared_to_projected_aabb(), ISECT_AABB_PLANE_BEHIND_ANY, isect_aabb_planes_v3(), min, nearest_point, and nearest_precalc.
Referenced by snapArmature(), snapCurve(), and snapMesh().
| bool SnapData::snap_edge | ( | const blender::float3 & | va, |
| const blender::float3 & | vb, | ||
| int | edge_index = -1 ) |
Definition at line 184 of file transform_snap_object.cc.
References clip_planes, BVHTreeNearest::index, nearest_point, nearest_precalc, BVHTreeNearest::no, sub_v3_v3v3(), and test_projected_edge_dist().
Referenced by snapArmature().
| eSnapMode SnapData::snap_edge_points_impl | ( | SnapObjectContext * | sctx, |
| int | edge_index, | ||
| float | dist_px_sq_orig ) |
Definition at line 201 of file transform_snap_object.cc.
References copy_vert_no(), SnapObjectContext::curr_co, BVHTreeNearest::dist_sq, 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, BVHTreeNearest::no, obmat_, blender::MatBase< T, NumCol, NumRow, Alignment >::ptr(), range, DistProjectedAABBPrecalc::ray_origin, SnapObjectContext::runtime, SCE_SNAP_TO_EDGE, SCE_SNAP_TO_EDGE_ENDPOINT, SCE_SNAP_TO_EDGE_MIDPOINT, SCE_SNAP_TO_EDGE_PERPENDICULAR, snap_point(), SnapObjectContext::snap_to_flag, and sub_v3_v3v3().
Referenced by snap_edge_points_mesh().
| bool SnapData::snap_point | ( | const blender::float3 & | co, |
| int | index = -1 ) |
Definition at line 169 of file transform_snap_object.cc.
References clip_planes, BVHTreeNearest::index, nearest_point, nearest_precalc, and test_projected_vert_dist().
Referenced by snap_edge_points_impl(), snap_grid(), snap_object_center(), snapArmature(), snapCamera(), and snapCurve().
| blender::Vector<blender::float4, MAX_CLIPPLANE_LEN + 1> SnapData::clip_planes |
Definition at line 123 of file transform_snap_object.hh.
Referenced by clip_planes_enable(), snap_boundbox(), snap_edge(), snap_point(), snap_polygon_mesh(), and snapMesh().
| const bool SnapData::is_persp |
Definition at line 126 of file transform_snap_object.hh.
| BVHTreeNearest SnapData::nearest_point |
Definition at line 130 of file transform_snap_object.hh.
Referenced by register_result(), snap_boundbox(), snap_edge(), snap_edge_points_impl(), snap_edge_points_mesh(), snap_grid(), snap_point(), snap_polygon_mesh(), snapArmature(), SnapData(), and snapMesh().
| DistProjectedAABBPrecalc SnapData::nearest_precalc |
Definition at line 122 of file transform_snap_object.hh.
Referenced by snap_boundbox(), snap_edge(), snap_edge_points_impl(), snap_point(), snap_polygon_mesh(), and SnapData().
| blender::float4x4 SnapData::obmat_ |
Definition at line 125 of file transform_snap_object.hh.
Referenced by clip_planes_enable(), register_result(), and snap_edge_points_impl().
| blender::float4x4 SnapData::pmat_local |
Definition at line 124 of file transform_snap_object.hh.
Referenced by SnapData(), and snapMesh().
| bool SnapData::use_backface_culling |
Definition at line 127 of file transform_snap_object.hh.
Referenced by snapMesh().