Blender
V3.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 522 of file intern/cycles/util/transform.h.
#define transform_direction_transposed_auto transform_direction_transposed |
Definition at line 523 of file intern/cycles/util/transform.h.
#define transform_point_auto transform_point |
Definition at line 521 of file intern/cycles/util/transform.h.
typedef struct DecomposedTransform DecomposedTransform |
typedef CCL_NAMESPACE_BEGIN struct Transform Transform |
ccl_device_inline Transform euler_to_transform | ( | const float3 | euler | ) |
Definition at line 164 of file intern/cycles/util/transform.h.
References cosf, sinf, sx, sy, t, float3::x, float3::y, and float3::z.
Referenced by svm_mapping(), and svm_node_vector_rotate().
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 intern/cycles/util/transform.h.
References Freestyle::a, usdtokens::b(), Freestyle::c, e, usdtokens::g(), l, and t.
Referenced by blender_camera_matrix(), convert_transform(), 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 191 of file intern/cycles/util/transform.h.
References blender::math::cross(), blender::math::dot(), make_float3, make_transform(), N, blender::math::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 293 of file intern/cycles/util/transform.h.
ccl_device_inline Transform operator* | ( | const Transform | a, |
const Transform | b | ||
) |
Definition at line 208 of file intern/cycles/util/transform.h.
References Freestyle::a, usdtokens::b(), blender::math::dot(), make_float4, and t.
ccl_device_inline bool operator== | ( | const DecomposedTransform & | A, |
const DecomposedTransform & | B | ||
) |
Definition at line 507 of file intern/cycles/util/transform.h.
ccl_device_inline bool operator== | ( | const Transform & | A, |
const Transform & | B | ||
) |
Definition at line 288 of file intern/cycles/util/transform.h.
ccl_device_inline void print_transform | ( | const char * | label, |
const Transform & | t | ||
) |
Definition at line 223 of file intern/cycles/util/transform.h.
References label, print_float4(), and t.
ccl_device_inline float4 quat_interpolate | ( | float4 | q1, |
float4 | q2, | ||
float | t | ||
) |
Definition at line 378 of file intern/cycles/util/transform.h.
References acosf, blender::math::clamp(), cosf, blender::math::dot(), blender::math::normalize(), q1, sinf, and t.
Referenced by transform_motion_array_interpolate().
ccl_device_inline Transform transform_clear_scale | ( | const Transform & | tfm | ) |
Definition at line 358 of file intern/cycles/util/transform.h.
References blender::math::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 428 of file intern/cycles/util/transform.h.
References blender::math::dot(), M_SQRT2_F, make_float3, make_float4, and q1.
Referenced by transform_motion_array_interpolate().
ccl_device_inline bool transform_decomposed_isfinite_safe | ( | ccl_private DecomposedTransform * | decomp | ) |
Definition at line 497 of file intern/cycles/util/transform.h.
References isfinite_safe().
Referenced by TEST().
ccl_device_inline float3 transform_direction | ( | ccl_private const Transform * | t, |
const float3 | a | ||
) |
Definition at line 94 of file intern/cycles/util/transform.h.
References Freestyle::a, usdtokens::b(), Freestyle::c, ccl_private, madd(), make_float3, t, w(), x, y, and z.
Referenced by Mesh::add_face_normals(), Mesh::apply_transform(), 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(), integrate_surface_ray_offset(), integrator_init_from_bake(), object_dir_transform(), object_inverse_dir_transform(), object_volume_density(), Mesh::pack_normals(), svm_mapping(), svm_node_vector_rotate(), svm_node_vector_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 intern/cycles/util/transform.h.
References Freestyle::a, blender::math::dot(), make_float3, t, x, y, and z.
Referenced by integrator_init_from_bake(), object_inverse_normal_transform(), object_normal_transform(), subsurface_disk(), svm_mapping(), and svm_node_vector_rotate().
ccl_device_inline Transform transform_empty | ( | ) |
Definition at line 369 of file intern/cycles/util/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 298 of file intern/cycles/util/transform.h.
References A, B, fabsf, threshold, x, and y.
Referenced by ShaderManager::init_xyz_transforms().
ccl_device_inline Transform transform_euler | ( | float3 | euler | ) |
Definition at line 276 of file intern/cycles/util/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 282 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 313 of file intern/cycles/util/transform.h.
References make_float3, and t.
Referenced by Hair::apply_transform(), PointCloud::apply_transform(), blender_camera_focal_distance(), HdCyclesLight::Sync(), transform_clear_scale(), transform_decompose(), transform_negative_scale(), and transform_uniform_scale().
ccl_device_inline Transform transform_identity | ( | ) |
Definition at line 283 of file intern/cycles/util/transform.h.
References transform_scale().
Referenced by Object::apply_transform(), blender_camera_init(), Camera::Camera(), Geometry::clear(), BVHUnaligned::compute_aligned_space(), HDCYCLES_NAMESPACE_OPEN_SCOPE::convertToCycles< Transform >(), Geometry::Geometry(), BVHNode::get_aligned_space(), VDBImageLoader::load_metadata(), NODE_DEFINE(), BVH2::refit_node(), xml_read_file(), and XMLReadState::XMLReadState().
ccl_device_inline Transform transform_inverse | ( | const Transform | tfm | ) |
Definition at line 409 of file intern/cycles/util/transform.h.
References system_cpu_support_avx2(), system_cpu_support_sse41(), transform_inverse_cpu_avx2(), transform_inverse_cpu_sse41(), 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(), ObjectManager::device_update_object_transform(), LightManager::device_update_points(), ShaderManager::init_xyz_transforms(), VDBImageLoader::load_metadata(), ObtainCacheParticleData(), transform_decompose(), and transform_transposed_inverse().
Definition at line 8 of file transform_avx2.cpp.
References transform_inverse_impl().
Referenced by transform_inverse().
Definition at line 8 of file transform_sse41.cpp.
References transform_inverse_impl().
Referenced by transform_inverse().
ccl_device_inline bool transform_isfinite_safe | ( | ccl_private Transform * | tfm | ) |
Definition at line 492 of file intern/cycles/util/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 468 of file intern/cycles/util/transform.h.
References Freestyle::a, usdtokens::b(), ccl_global, min, quat_interpolate(), t, time, 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 246 of file transform.cpp.
References blender::math::dot(), blender::math::is_zero(), make_float3, size(), transform_decompose(), DecomposedTransform::w, DecomposedTransform::x, x, y, 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 349 of file intern/cycles/util/transform.h.
References blender::math::cross(), blender::math::dot(), and transform_get_column().
Referenced by Object::apply_transform(), 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 62 of file intern/cycles/util/transform.h.
References Freestyle::a, usdtokens::b(), Freestyle::c, ccl_private, madd(), make_float3, t, w(), x, y, and z.
Referenced by Hair::apply_transform(), Mesh::apply_transform(), PointCloud::apply_transform(), PointCloud::Point::bounds_grow(), Hair::Curve::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(), BVHSpatialSplit::get_unaligned_point(), integrate_surface_ray_offset(), CCL_NAMESPACE_BEGIN::kernel_tex_image_interp_3d(), kernel_tex_image_interp_3d(), motion_triangle_point_from_uv(), object_inverse_position_transform(), object_position_transform(), ObtainCacheParticleData(), primitive_motion_vector(), BVHSpatialSplit::split_curve_primitive(), BVHSpatialSplit::split_point_primitive(), BVHSpatialSplit::split_triangle_primitive(), 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(), 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 251 of file intern/cycles/util/transform.h.
References angle(), Freestyle::c, cosf, make_transform(), blender::math::normalize(), sinf, t, float3::x, float3::y, and float3::z.
Referenced by TEST(), transform_euler(), and xml_read_transform().
ccl_device_inline Transform transform_scale | ( | float | x, |
float | y, | ||
float | z | ||
) |
Definition at line 246 of file intern/cycles/util/transform.h.
References make_float3, transform_scale(), x, y, and z.
ccl_device_inline Transform transform_scale | ( | float3 | s | ) |
Definition at line 241 of file intern/cycles/util/transform.h.
References make_transform(), float3::x, float3::y, and float3::z.
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(), HdCyclesLight::Sync(), HdCyclesGeometry< Base, CyclesBase >::Sync(), TEST(), transform_decompose(), transform_from_viewplane(), transform_identity(), transform_scale(), and xml_read_transform().
ccl_device_inline void transform_set_column | ( | Transform * | t, |
int | column, | ||
float3 | value | ||
) |
Definition at line 318 of file intern/cycles/util/transform.h.
References t, float3::x, float3::y, and float3::z.
Referenced by transform_clear_scale(), and transform_decompose().
Definition at line 118 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 236 of file intern/cycles/util/transform.h.
References make_float3, transform_translate(), x, y, and z.
ccl_device_inline Transform transform_translate | ( | float3 | t | ) |
Definition at line 231 of file intern/cycles/util/transform.h.
References make_transform(), and t.
Referenced by add_node(), TextureMapping::compute_transform(), create_mesh(), BlenderSmokeLoader::load_metadata(), VDBImageLoader::load_metadata(), projection_orthographic(), transform_from_viewplane(), transform_translate(), and xml_read_transform().
Definition at line 110 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 327 of file intern/cycles/util/transform.h.
References eps, fabsf, float4_to_float3(), len_squared(), sx, sy, transform_get_column(), Transform::x, Transform::y, and Transform::z.
Referenced by ObjectManager::apply_static_transforms().
ccl_device_inline Transform transform_zero | ( | ) |
Definition at line 202 of file intern/cycles/util/transform.h.
References zero_float4().
Referenced by SocketType::zero_default_value().