Changeset View
Changeset View
Standalone View
Standalone View
source/blender/io/gpencil/intern/gpencil_io_base.cc
| Show First 20 Lines • Show All 73 Lines • ▼ Show 20 Lines | if (cam_ob != nullptr) { | ||||
| BKE_camera_params_from_object(¶ms, cam_ob); | BKE_camera_params_from_object(¶ms, cam_ob); | ||||
| /* Compute matrix, view-plane, etc. */ | /* Compute matrix, view-plane, etc. */ | ||||
| RenderData *rd = &scene_->r; | RenderData *rd = &scene_->r; | ||||
| BKE_camera_params_compute_viewplane(¶ms, rd->xsch, rd->ysch, rd->xasp, rd->yasp); | BKE_camera_params_compute_viewplane(¶ms, rd->xsch, rd->ysch, rd->xasp, rd->yasp); | ||||
| BKE_camera_params_compute_matrix(¶ms); | BKE_camera_params_compute_matrix(¶ms); | ||||
| float viewmat[4][4]; | float viewmat[4][4]; | ||||
| invert_m4_m4(viewmat, cam_ob->obmat); | invert_m4_m4(viewmat, cam_ob->object_to_world); | ||||
| mul_m4_m4m4(persmat_, params.winmat, viewmat); | mul_m4_m4m4(persmat_, params.winmat, viewmat); | ||||
| } | } | ||||
| else { | else { | ||||
| unit_m4(persmat_); | unit_m4(persmat_); | ||||
| } | } | ||||
| winx_ = params_.region->winx; | winx_ = params_.region->winx; | ||||
| ▲ Show 20 Lines • Show All 56 Lines • ▼ Show 20 Lines | LISTBASE_FOREACH (Base *, base, BKE_view_layer_object_bases_get(view_layer)) { | ||||
| } | } | ||||
| if ((params_.select_mode == GP_EXPORT_SELECTED) && ((base->flag & BASE_SELECTED) == 0)) { | if ((params_.select_mode == GP_EXPORT_SELECTED) && ((base->flag & BASE_SELECTED) == 0)) { | ||||
| continue; | continue; | ||||
| } | } | ||||
| /* Save z-depth from view to sort from back to front. */ | /* Save z-depth from view to sort from back to front. */ | ||||
| if (is_camera_) { | if (is_camera_) { | ||||
| float camera_z = dot_v3v3(camera_z_axis, object->obmat[3]); | float camera_z = dot_v3v3(camera_z_axis, object->object_to_world[3]); | ||||
| ObjectZ obz = {camera_z, object}; | ObjectZ obz = {camera_z, object}; | ||||
| ob_list_.append(obz); | ob_list_.append(obz); | ||||
| } | } | ||||
| else { | else { | ||||
| float zdepth = 0; | float zdepth = 0; | ||||
| if (rv3d_) { | if (rv3d_) { | ||||
| if (rv3d_->is_persp) { | if (rv3d_->is_persp) { | ||||
| zdepth = ED_view3d_calc_zfac(rv3d_, object->obmat[3]); | zdepth = ED_view3d_calc_zfac(rv3d_, object->object_to_world[3]); | ||||
| } | } | ||||
| else { | else { | ||||
| zdepth = -dot_v3v3(rv3d_->viewinv[2], object->obmat[3]); | zdepth = -dot_v3v3(rv3d_->viewinv[2], object->object_to_world[3]); | ||||
| } | } | ||||
| ObjectZ obz = {zdepth * -1.0f, object}; | ObjectZ obz = {zdepth * -1.0f, object}; | ||||
| ob_list_.append(obz); | ob_list_.append(obz); | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| /* Sort list of objects from point of view. */ | /* Sort list of objects from point of view. */ | ||||
| std::sort(ob_list_.begin(), ob_list_.end(), [](const ObjectZ &obz1, const ObjectZ &obz2) { | std::sort(ob_list_.begin(), ob_list_.end(), [](const ObjectZ &obz1, const ObjectZ &obz2) { | ||||
| ▲ Show 20 Lines • Show All 199 Lines • Show Last 20 Lines | |||||