|
Blender V4.3
|
#include <string.h>#include "util/math.h"#include "util/types.h"#include "util/system.h"#include "util/transform_inverse.h"Go to the source code of this file.
Classes | |
| struct | Transform |
| struct | DecomposedTransform |
Macros | |
| #define | transform_point_auto transform_point |
| #define | transform_direction_auto transform_direction |
| #define | transform_direction_transposed_auto transform_direction_transposed |
Typedefs | |
| typedef CCL_NAMESPACE_BEGIN struct Transform | Transform |
| typedef struct DecomposedTransform | DecomposedTransform |
| #define transform_direction_auto transform_direction |
Definition at line 536 of file transform.h.
Referenced by object_dir_transform(), and object_inverse_dir_transform().
| #define transform_direction_transposed_auto transform_direction_transposed |
Definition at line 537 of file transform.h.
Referenced by object_inverse_normal_transform(), and object_normal_transform().
| #define transform_point_auto transform_point |
Definition at line 535 of file transform.h.
Referenced by integrator_init_from_bake(), object_inverse_position_transform(), and object_position_transform().
| typedef struct DecomposedTransform DecomposedTransform |
| typedef CCL_NAMESPACE_BEGIN struct Transform Transform |
| ccl_device_inline Transform euler_to_transform | ( | const float3 | euler | ) |
Definition at line 175 of file transform.h.
References cosf, sinf, float3::x, Transform::x, float3::y, Transform::y, float3::z, and Transform::z.
Referenced by svm_mapping(), and svm_node_vector_rotate().
| ccl_device_inline Transform make_transform | ( | const float3 | x, |
| const float3 | y, | ||
| const float3 | z ) |
Definition at line 164 of file transform.h.
References float3_to_float4(), Transform::x, Transform::y, Transform::z, and z().
| ccl_device_inline Transform make_transform | ( | float | a, |
| float | b, | ||
| float | c, | ||
| float | d, | ||
| float | e, | ||
| float | f, | ||
| float | g, | ||
| float | h, | ||
| float | i, | ||
| float | j, | ||
| float | k, | ||
| float | l ) |
Definition at line 133 of file transform.h.
References b, e, l, Transform::x, Transform::y, and Transform::z.
Referenced by area_light_valid_ray_segment(), blender_camera_matrix(), convert_transform(), convert_transform(), HDCYCLES_NAMESPACE_OPEN_SCOPE::convertMatrixToCycles(), HDCYCLES_NAMESPACE_OPEN_SCOPE::convertMatrixToCycles(), ShaderManager::init_xyz_transforms(), make_transform_frame(), transform_empty(), transform_rotate(), transform_scale(), and transform_translate().
| ccl_device_inline Transform make_transform_frame | ( | float3 | N | ) |
Definition at line 202 of file transform.h.
References cross(), dot(), make_float3(), make_transform(), N, normalize(), float3::x, float3::y, and float3::z.
Referenced by BVHUnaligned::compute_aligned_space().
| ccl_device_inline bool operator!= | ( | const Transform & | A, |
| const Transform & | B ) |
Definition at line 306 of file transform.h.
References B.
| ccl_device_inline Transform operator* | ( | const Transform | a, |
| const Transform | b ) |
Definition at line 212 of file transform.h.
References b, dot(), make_float4(), Transform::x, Transform::y, and Transform::z.
| ccl_device_inline bool operator== | ( | const DecomposedTransform & | A, |
| const DecomposedTransform & | B ) |
Definition at line 521 of file transform.h.
References B.
| ccl_device_inline bool operator== | ( | const Transform & | A, |
| const Transform & | B ) |
Definition at line 301 of file transform.h.
References B.
| ccl_device_inline void print_transform | ( | const char * | label, |
| const Transform & | t ) |
Definition at line 236 of file transform.h.
References label, print_float4(), printf, Transform::x, Transform::y, and Transform::z.
| ccl_device_inline float4 quat_interpolate | ( | float4 | q1, |
| float4 | q2, | ||
| float | t ) |
Definition at line 392 of file transform.h.
References acosf, clamp(), cosf, dot(), normalize(), q1, and sinf.
Referenced by transform_motion_array_interpolate().
| ccl_device_inline Transform transform_clear_scale | ( | const Transform & | tfm | ) |
Definition at line 372 of file transform.h.
References normalize(), transform_get_column(), and transform_set_column().
Referenced by blender_camera_focal_distance(), and blender_camera_matrix().
| ccl_device_inline void transform_compose | ( | ccl_private Transform * | tfm, |
| ccl_private const DecomposedTransform * | decomp ) |
Definition at line 442 of file transform.h.
References dot(), make_float3(), make_float4(), and q1.
Referenced by transform_motion_array_interpolate().
| ccl_device_inline bool transform_decomposed_isfinite_safe | ( | ccl_private DecomposedTransform * | decomp | ) |
| ccl_device_inline float3 transform_direction | ( | ccl_private const Transform * | t, |
| const float3 | a ) |
Definition at line 94 of file transform.h.
References b, ccl_private, madd(), make_float3(), w(), x, y, and z().
Referenced by Mesh::add_face_normals(), Mesh::apply_transform(), area_light_valid_ray_segment(), bvh_instance_push(), bvh_unaligned_node_intersect_child(), camera_sample_orthographic(), camera_sample_panorama(), camera_sample_perspective(), camera_world_to_ndc(), Object::compute_volume_step_size(), LightManager::device_update_background(), ShaderManager::init_xyz_transforms(), integrate_surface_ray_offset(), integrator_init_from_bake(), light_tree_to_local_space(), object_dir_transform(), object_inverse_dir_transform(), object_volume_density(), osl_transformn_dvmdv(), osl_transformn_vmv(), osl_transformv_dvmdv(), osl_transformv_vmv(), Mesh::pack_normals(), point_light_mnee_sample_update(), point_light_sample(), point_light_sample_from_intersection(), spot_light_to_local(), spot_light_valid_ray_segment(), svm_mapping(), svm_node_vector_rotate(), svm_node_vector_transform(), LightTreeMeasure::transform(), and Camera::world_to_raster_size().
| ccl_device_inline float3 transform_direction_transposed | ( | ccl_private const Transform * | t, |
| const float3 | a ) |
Definition at line 123 of file transform.h.
References dot(), make_float3(), and z().
Referenced by integrator_init_from_bake(), light_tree_to_local_space(), object_inverse_normal_transform(), object_normal_transform(), svm_mapping(), svm_node_vector_rotate(), and svm_node_vector_transform().
| ccl_device_inline Transform transform_empty | ( | ) |
Definition at line 383 of file transform.h.
References make_transform().
Referenced by Object::update_motion().
| ccl_device_inline bool transform_equal_threshold | ( | const Transform & | A, |
| const Transform & | B, | ||
| const float | threshold ) |
Definition at line 311 of file transform.h.
Referenced by ShaderManager::init_xyz_transforms().
| ccl_device_inline Transform transform_euler | ( | float3 | euler | ) |
Definition at line 289 of file transform.h.
References make_float3(), transform_rotate(), float3::x, float3::y, and float3::z.
Referenced by TextureMapping::compute_transform().
| Transform transform_from_viewplane | ( | BoundBox2D & | viewplane | ) |
Definition at line 291 of file transform.cpp.
References BoundBox2D::bottom, BoundBox2D::left, BoundBox2D::right, BoundBox2D::top, transform_scale(), and transform_translate().
| ccl_device_inline float3 transform_get_column | ( | const Transform * | t, |
| int | column ) |
Definition at line 326 of file transform.h.
References make_float3(), Transform::x, Transform::y, and Transform::z.
Referenced by Hair::apply_transform(), PointCloud::apply_transform(), blender_camera_focal_distance(), Light::get_axisu(), Light::get_axisv(), Light::get_co(), Light::get_dir(), transform_clear_scale(), transform_decompose(), transform_negative_scale(), and transform_uniform_scale().
| ccl_device_inline Transform transform_identity | ( | ) |
Definition at line 296 of file transform.h.
References transform_scale().
Referenced by Object::apply_transform(), blender_camera_init(), Camera::Camera(), Geometry::clear(), BVHUnaligned::compute_aligned_space(), BVHUnaligned::compute_aligned_space(), BVHUnaligned::compute_aligned_space(), HDCYCLES_NAMESPACE_OPEN_SCOPE::convertToCycles< Transform >(), Geometry::Geometry(), BVHNode::get_aligned_space(), VDBImageLoader::load_metadata(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), NODE_DEFINE(), BVH2::refit_node(), xml_read_file(), and XMLReadState::XMLReadState().
| ccl_device_inline Transform transform_inverse | ( | const Transform | tfm | ) |
Definition at line 423 of file transform.h.
References system_cpu_support_avx2(), system_cpu_support_sse42(), transform_inverse_cpu_avx2(), transform_inverse_cpu_sse42(), and transform_inverse_impl().
Referenced by Mesh::add_face_normals(), add_node(), blender_camera_from_view(), TextureMapping::compute_transform(), Object::compute_volume_step_size(), LightManager::device_update_background(), LightManager::device_update_lights(), ObjectManager::device_update_object_transform(), ShaderManager::init_xyz_transforms(), VDBImageLoader::load_metadata(), object_fetch_transform_motion_test(), ObtainCacheParticleData(), osl_div_mfm(), osl_div_mmm(), shader_setup_object_transforms(), transform_decompose(), and transform_transposed_inverse().
Definition at line 9 of file transform_avx2.cpp.
References transform_inverse_impl().
Referenced by transform_inverse().
Definition at line 9 of file transform_sse42.cpp.
References transform_inverse_impl().
Referenced by transform_inverse().
| ccl_device_inline bool transform_isfinite_safe | ( | ccl_private Transform * | tfm | ) |
Definition at line 506 of file transform.h.
References isfinite_safe().
| ccl_device void transform_motion_array_interpolate | ( | ccl_private Transform * | tfm, |
| ccl_global const DecomposedTransform * | motion, | ||
| uint | numsteps, | ||
| float | time ) |
Definition at line 482 of file transform.h.
References b, ccl_global, min, quat_interpolate(), transform_compose(), DecomposedTransform::w, DecomposedTransform::x, DecomposedTransform::y, and DecomposedTransform::z.
Referenced by camera_sample_orthographic(), camera_sample_panorama(), camera_sample_perspective(), and Object::compute_bounds().
| void transform_motion_decompose | ( | DecomposedTransform * | decomp, |
| const Transform * | motion, | ||
| size_t | size ) |
Definition at line 254 of file transform.cpp.
References dot(), is_zero(), make_float3(), size(), transform_decompose(), DecomposedTransform::w, DecomposedTransform::x, and DecomposedTransform::z.
Referenced by Object::compute_bounds(), ObjectManager::device_update_object_transform(), and TEST().
| ccl_device_inline bool transform_negative_scale | ( | const Transform & | tfm | ) |
Definition at line 363 of file transform.h.
References cross(), dot(), and transform_get_column().
Referenced by Object::apply_transform(), ObjectManager::device_update_object_transform(), LightTreeEmitter::LightTreeEmitter(), and transform_decompose().
| CCL_NAMESPACE_END CCL_NAMESPACE_BEGIN ccl_device_inline float3 transform_point | ( | ccl_private const Transform * | t, |
| const float3 | a ) |
Definition at line 63 of file transform.h.
References b, ccl_private, madd(), make_float3(), w(), x, y, and z().
Referenced by Hair::apply_transform(), Mesh::apply_transform(), PointCloud::apply_transform(), area_light_valid_ray_segment(), Hair::Curve::bounds_grow(), PointCloud::Point::bounds_grow(), bvh_instance_push(), bvh_unaligned_node_intersect_child(), camera_sample_orthographic(), camera_sample_panorama(), camera_sample_perspective(), camera_world_to_ndc(), camera_z_depth(), LightManager::device_update_distribution(), ArmatureBoneDrawStrategyWire::draw_bone(), BVHSpatialSplit::get_unaligned_point(), integrate_surface_ray_offset(), CCL_NAMESPACE_BEGIN::kernel_tex_image_interp_3d(), kernel_tex_image_interp_3d(), kernel_tex_image_interp_3d(), light_tree_to_local_space(), LightTreeEmitter::LightTreeEmitter(), motion_triangle_point_from_uv(), object_inverse_position_transform(), object_position_transform(), ObtainCacheParticleData(), osl_transform_dvmdv(), osl_transform_vmv(), primitive_motion_vector(), blender::eevee::IrradianceBake::raylists_build(), blender::nodes::node_geo_rotate_instances_cc::rotate_instances(), BVHSpatialSplit::split_curve_primitive(), BVHSpatialSplit::split_point_primitive(), BVHSpatialSplit::split_triangle_primitive(), spot_light_valid_ray_segment(), blender::eevee::IrradianceBake::surfel_raster_views_sync(), blender::eevee::IrradianceBake::surfels_create(), svm_node_camera(), svm_node_tex_coord(), svm_node_tex_coord_bump_dx(), svm_node_tex_coord_bump_dy(), svm_node_tex_voxel(), svm_node_texture_mapping(), svm_node_vector_transform(), BlenderObjectCulling::test(), blender::math::to_quaternion_legacy(), BoundBox::transformed(), triangle_point_from_uv(), triangle_world_space_vertices(), and Camera::world_to_raster_size().
| ccl_device_inline Transform transform_rotate | ( | float | angle, |
| float3 | axis ) |
Definition at line 264 of file transform.h.
References cosf, make_transform(), normalize(), and sinf.
Referenced by TEST(), transform_euler(), and xml_read_transform().
| ccl_device_inline Transform transform_scale | ( | float | x, |
| float | y, | ||
| float | z ) |
Definition at line 259 of file transform.h.
References make_float3(), transform_scale(), and z().
| ccl_device_inline Transform transform_scale | ( | float3 | s | ) |
Definition at line 254 of file transform.h.
References make_transform().
Referenced by add_node(), blender_camera_matrix(), BVHUnaligned::compute_node_transform(), TextureMapping::compute_transform(), create_mesh(), BlenderSmokeLoader::load_metadata(), VDBImageLoader::load_metadata(), projection_orthographic(), projection_perspective(), HdCyclesGeometry< Base, CyclesBase >::Sync(), HdCyclesLight::Sync(), TEST(), transform_decompose(), transform_from_viewplane(), transform_identity(), transform_scale(), blender::ed::view3d::geometry_nodes_gizmos::DialGizmo::update_transform(), and xml_read_transform().
| ccl_device_inline void transform_set_column | ( | Transform * | t, |
| int | column, | ||
| float3 | value ) |
Definition at line 331 of file transform.h.
References Transform::x, Transform::y, and Transform::z.
Referenced by transform_clear_scale(), and transform_decompose().
| float4 transform_to_quat | ( | const Transform & | tfm | ) |
Definition at line 123 of file transform.cpp.
References double(), float, sqrt(), and w().
Referenced by transform_decompose().
| ccl_device_inline Transform transform_translate | ( | float | x, |
| float | y, | ||
| float | z ) |
Definition at line 249 of file transform.h.
References make_float3(), transform_translate(), and z().
| ccl_device_inline Transform transform_translate | ( | float3 | t | ) |
Definition at line 244 of file transform.h.
References make_transform(), float3::x, float3::y, and float3::z.
Referenced by add_node(), TextureMapping::compute_transform(), create_mesh(), BlenderSmokeLoader::load_metadata(), VDBImageLoader::load_metadata(), transform_from_viewplane(), transform_translate(), and xml_read_transform().
Definition at line 115 of file transform.cpp.
References projection_to_transform(), projection_transpose(), and transform_inverse().
Referenced by Mesh::apply_transform(), TextureMapping::compute_transform(), and transform_decompose().
| ccl_device_inline bool transform_uniform_scale | ( | const Transform & | tfm, |
| float & | scale ) |
Definition at line 340 of file transform.h.
References eps, fabsf, float4_to_float3(), len_squared(), transform_get_column(), Transform::x, Transform::y, and Transform::z.
Referenced by ObjectManager::apply_static_transforms(), and LightTreeMeasure::transform().
| ccl_device_inline Transform transform_zero | ( | ) |
Definition at line 230 of file transform.h.
References zero_float4().
Referenced by SocketType::zero_default_value().