Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Vazquez <blendergit@gmail.com>2021-07-03 13:31:10 +0300
committerAntonio Vazquez <blendergit@gmail.com>2021-07-03 13:32:44 +0300
commit05f970847e12ce30e8c4c624677d94ae239ce2bc (patch)
treeb1ee5475e08fcaa887fe320ce4da67eb5081a435
parent2d146b61d8583ec7169c5c04263d475a542b06ce (diff)
GPencil: Fix unreported PDF export offset
When exporting a PDF, the image was displaced towards top right a few pixels. Also removed is_orthographic variable because is not needed now.
-rw-r--r--source/blender/io/gpencil/intern/gpencil_io_base.cc23
-rw-r--r--source/blender/io/gpencil/intern/gpencil_io_base.hh4
2 files changed, 6 insertions, 21 deletions
diff --git a/source/blender/io/gpencil/intern/gpencil_io_base.cc b/source/blender/io/gpencil/intern/gpencil_io_base.cc
index 6c369382e0d..294f6bfccb7 100644
--- a/source/blender/io/gpencil/intern/gpencil_io_base.cc
+++ b/source/blender/io/gpencil/intern/gpencil_io_base.cc
@@ -100,11 +100,9 @@ void GpencilIO::prepare_camera_params(Scene *scene, const GpencilIOParams *ipara
invert_m4_m4(viewmat, cam_ob->obmat);
mul_m4_m4m4(persmat_, params.winmat, viewmat);
- is_ortho_ = params.is_ortho;
}
else {
unit_m4(persmat_);
- is_ortho_ = false;
}
winx_ = params_.region->winx;
@@ -129,7 +127,6 @@ void GpencilIO::prepare_camera_params(Scene *scene, const GpencilIOParams *ipara
}
else {
is_camera_ = false;
- is_ortho_ = false;
/* Calc selected object boundbox. Need set initial value to some variables. */
camera_ratio_ = 1.0f;
offset_.x = 0.0f;
@@ -248,19 +245,14 @@ bool GpencilIO::gpencil_3D_point_to_screen_space(const float3 co, float2 &r_co)
}
/** Convert to render space. */
-float2 GpencilIO::gpencil_3D_point_to_render_space(const float3 co, const bool is_ortho)
+float2 GpencilIO::gpencil_3D_point_to_render_space(const float3 co)
{
float3 parent_co = diff_mat_ * co;
- mul_m4_v3(persmat_, parent_co);
-
- if (!is_ortho) {
- parent_co.x = parent_co.x / max_ff(FLT_MIN, parent_co.z);
- parent_co.y = parent_co.y / max_ff(FLT_MIN, parent_co.z);
- }
float2 r_co;
- r_co.x = (parent_co.x + 1.0f) / 2.0f * (float)render_x_;
- r_co.y = (parent_co.y + 1.0f) / 2.0f * (float)render_y_;
+ mul_v2_project_m4_v3(&r_co.x, persmat_, &parent_co.x);
+ r_co.x = (r_co.x + 1.0f) / 2.0f * (float)render_x_;
+ r_co.y = (r_co.y + 1.0f) / 2.0f * (float)render_y_;
/* Invert X axis. */
if (invert_axis_[0]) {
@@ -279,7 +271,7 @@ float2 GpencilIO::gpencil_3D_point_to_2D(const float3 co)
{
const bool is_camera = (bool)(rv3d_->persp == RV3D_CAMOB);
if (is_camera) {
- return gpencil_3D_point_to_render_space(co, is_orthographic());
+ return gpencil_3D_point_to_render_space(co);
}
float2 result;
gpencil_3D_point_to_screen_space(co, result);
@@ -346,11 +338,6 @@ bool GpencilIO::is_camera_mode()
return is_camera_;
}
-bool GpencilIO::is_orthographic()
-{
- return is_ortho_;
-}
-
/* Calculate selected strokes boundbox. */
void GpencilIO::selected_objects_boundbox_calc()
{
diff --git a/source/blender/io/gpencil/intern/gpencil_io_base.hh b/source/blender/io/gpencil/intern/gpencil_io_base.hh
index c3c6f1156bb..c8d85d08f7b 100644
--- a/source/blender/io/gpencil/intern/gpencil_io_base.hh
+++ b/source/blender/io/gpencil/intern/gpencil_io_base.hh
@@ -88,14 +88,13 @@ class GpencilIO {
/* Geometry functions. */
bool gpencil_3D_point_to_screen_space(const float3 co, float2 &r_co);
- float2 gpencil_3D_point_to_render_space(const float3 co, const bool is_ortho);
+ float2 gpencil_3D_point_to_render_space(const float3 co);
float2 gpencil_3D_point_to_2D(const float3 co);
float stroke_point_radius_get(struct bGPDlayer *gpl, struct bGPDstroke *gps);
void create_object_list();
bool is_camera_mode();
- bool is_orthographic();
float stroke_average_opacity_get();
@@ -109,7 +108,6 @@ class GpencilIO {
private:
float avg_opacity_;
bool is_camera_;
- bool is_ortho_;
rctf select_boundbox_;
/* Camera matrix. */