Cycles: Make transform from viewplane a generic utility function

This commit is contained in:
Sergey Sharybin 2015-04-10 15:52:40 +05:00
parent 237c53fbf1
commit e073562f80
4 changed files with 17 additions and 14 deletions

View File

@ -409,15 +409,4 @@ BoundBox Camera::viewplane_bounds_get()
return bounds;
}
Transform Camera::transform_from_viewplane(BoundBox2D &viewplane)
{
return
transform_scale(1.0f / (viewplane.right - viewplane.left),
1.0f / (viewplane.top - viewplane.bottom),
1.0f) *
transform_translate(-viewplane.left,
-viewplane.bottom,
0.0f);
}
CCL_NAMESPACE_END

View File

@ -125,7 +125,6 @@ public:
BoundBox viewplane_bounds_get();
float3 transform_raster_to_world(float raster_x, float raster_y);
Transform transform_from_viewplane(BoundBox2D &viewplane);
};
CCL_NAMESPACE_END

View File

@ -46,9 +46,11 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "util_math.h"
#include "util_transform.h"
#include "util_boundbox.h"
#include "util_math.h"
CCL_NAMESPACE_BEGIN
/* Transform Inverse */
@ -271,5 +273,15 @@ void transform_motion_decompose(DecompMotionTransform *decomp, const MotionTrans
decomp->post_y = post.y;
}
CCL_NAMESPACE_END
Transform transform_from_viewplane(BoundBox2D& viewplane)
{
return
transform_scale(1.0f / (viewplane.right - viewplane.left),
1.0f / (viewplane.top - viewplane.bottom),
1.0f) *
transform_translate(-viewplane.left,
-viewplane.bottom,
0.0f);
}
CCL_NAMESPACE_END

View File

@ -449,6 +449,8 @@ ccl_device void transform_motion_interpolate(Transform *tfm, const DecompMotionT
#ifndef __KERNEL_GPU__
class BoundBox2D;
ccl_device_inline bool operator==(const MotionTransform& A, const MotionTransform& B)
{
return (A.pre == B.pre && A.post == B.post);
@ -456,6 +458,7 @@ ccl_device_inline bool operator==(const MotionTransform& A, const MotionTransfor
float4 transform_to_quat(const Transform& tfm);
void transform_motion_decompose(DecompMotionTransform *decomp, const MotionTransform *motion, const Transform *mid);
Transform transform_from_viewplane(BoundBox2D& viewplane);
#endif