Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fullbox #4305

Merged
merged 84 commits into from
Dec 16, 2024
Merged

Fullbox #4305

merged 84 commits into from
Dec 16, 2024

Conversation

lukashappe
Copy link
Contributor

Description

Implemented option to close an Axis3's outline box. When the new field fullbox = true for an Axis3-object the 3 remaining spines of the box are created in front of what is inside the space.

Example:

using GLMakie
using FileIO

fig = Figure()
brain = load(assetpath("brain.stl"))
ax = Axis3(fig[1, 1], fullbox=true)

mesh!(ax, brain, color = :gray80)

fig

example

Fixes #2349

Add option to close an Axis3's outline box

Type of change

Delete options that do not apply:

  • New feature (non-breaking change which adds functionality)

Framelines is drawn.
Added fields xspinecolor_4, yspinecolor_4 and
zspinecolor_4 to control the color of the 4th line
when the fullbox is drawn.
to_topscene_small_z_2d.
Createted function  to_topscene_big_z_2d to
project points into parent space with a big z value
Added variable fraimpoints_fullbox replicating
the functionality of assining to framepoints_main
using p7 and p8 and the function to_topscene_big_z_2d.
Added an if statement to add the front lines of the fullbox
if the field fullbox od Axis3 is true.
visibility by ax.fullbox && attr(:spinesvisible).
@lukashappe
Copy link
Contributor Author

Another question:

When set_theme!(theme_minimal()) and fullbox = true are applied together (I mean, it doesn't really make sense to do so?!), what is the desired behavior?

At the moment, the Result would be like this:

example1

@jkrumbiegel
Copy link
Member

The theme should set these new spines to invisible also.

Maybe fullbox is not the best name either because it doesn't say anything about the other spines, what about front_spines or so?

@jkrumbiegel
Copy link
Member

Hm now that I think about it, do we really need the separate Boolean keyword? Maybe it's enough to just have these three new visible attributes, and they're just false in all default themes.

@lukashappe
Copy link
Contributor Author

Hm now that I think about it, do we really need the separate Boolean keyword? Maybe it's enough to just have these three new visible attributes, and they're just false in all default themes.

I see the point. Would you suggest creating a theme (called full_box for example?!) to set all spines visible then?

@jkrumbiegel
Copy link
Member

jkrumbiegel commented Sep 4, 2024

I don't think a theme is warranted for three values, if people like their plots this way they're going to call set_theme! or so once, it's not something you're likely to do manually on every plot.

ffreyer and others added 14 commits October 14, 2024 16:00
* get Makie to compile

* get GLMakie to compile

* fix  nromal rename, meshscatter

* fix pointtype in mesh conversion

* avoid matrix in vector rotation

* fix more tests

* update GeometryBasics functions/interface

* fix voronoiplot clipping

* update CairoMakie

* update RPRMakie

* prepare WGLMakie

* Update CI to use the GeometryBasics refactor branch (MakieOrg#4326)

* Update ci.yml

* Update Docs.yml

* Update reference_tests.yml

* add MeshIO branch

---------

Co-authored-by: ffreyer <[email protected]>

* update _faces

* normals -> normal

* add ShaderAbstractions to ci

* update docs, normals deprecation

* fix branch names

* fix catmesh getting normals regenerated

* update for ShaderAbstractions

* handle voxel clipping in CairoMakie like in GLMakie

* fix another two "normals"

* add dev branches for RPRMakie CI

* fix missing kwarg name in conversion

* update for FaceViews

* add example for per-face colors and normals

* improve typing

* fix Sampler, allow mipmap via Sampler

* try to fix benchmarks

* add to correct env

* remove from master project

* fix docs

* fix Rect decomposition

* fix poly converts

* fix typo

* improve precompilation by avoiding constprop and more direct icon loading via PNGFiles

* fix CairoMakie precompile

* fix old syntax

* fix ambient light

* add temp dependencies to relocatbility test

* bump RPR to required version

* update changelog

* fix test

* fix other branch in ray cast test

* fix relocatability ci

* fix rpr and relocatability

---------

Co-authored-by: Anshul Singhvi <[email protected]>
Co-authored-by: SimonDanisch <[email protected]>
ffreyer and others added 15 commits November 28, 2024 21:48
* add transform_marker attribute

* add refimg test

* update changelog

* allow mesh with no normals in mesh3d path

* cleanup mesh3d transformation pipeline

* add test

* apply f32c.scale to meshscatter vertices in GLMakie, WGLMakie

* fix WGLMakie

* tweak test to include significant float32convert scaling

* fix voxels

* remove f32c + transform func tests

(doesn't check what its supposed to)

* fix wrong order for f32convert and model

* fix double translation with transform_marker = true

* fix unwanted model application with transform_marker = false

* make limits static in test

* test model + transform_marker with f32c and transform func

* update and test boundingbox with transform_marker

* Makie.rotate!

* remove initial refimg test

* update changelog

* fix missing newline

* fix deprecated normals
* zoom prototype

* add zooming as an Interaction

* add limit reset

* add translation

* make translation more accurate

* add docstrings

* fix x/y/z reversed

* update changelog [skip ci]

* move code to the right places

* fix corrupted gl state

* fix CairoMakie text - clip planes interaction

* remove comment

* reuse and conform to existing infrastructure

* add docs for Axis3 interactions

* add unit tests & fix zoom coordinate system

* do plot picking ray cast as part of :cursor zoom

* remove old code

* match zoom direction with Axis, LScene

* update tests

* add viewmode = :free

* tweak refimg to include perspectiveness and be less wide

* fix some test failures

* revert change to decorations

* fix backend dependency of new refimg

* fix var name in new test

* avoid rendering issues from too small near

* skip irrelevant code for viewmode = :free

* fix aspect problems with translations

* cleanup some stuff

* reuse in-axis translations for viewmode = :free

* add center-on-cursor interaction

* fix limit reset not resetting targetlimits

* fix position_on_plot error for 2D meshes

* move framelines to 3D scene to avoid line inversion issue

Which comes from just doing xyz/w in inversions. This is not valid if w <= 0, at least with perspective projection

* use Float64

* bandaid fix for render order

* Change LimitReset to more closely match Axis

* update docs

* fix offset between ticks and grid/frame

* fix test error

* add test for project(scene, point)

* add option to clip decorations (default on)

* use viewport for clipping

* don't clip decorations by default because it clips titles and too much of labels/tick labels

* make test more robust

---------

Co-authored-by: Simon <[email protected]>
* Fix Float32 constraints in poly pipeline

Also fix dimensionality constraints

* changelog

* Update poly.jl

* Update poly.jl

---------

Co-authored-by: Simon <[email protected]>
@ffreyer ffreyer changed the base branch from master to breaking-0.22 December 12, 2024 18:56
@SimonDanisch SimonDanisch deleted the branch MakieOrg:master December 13, 2024 10:23
@SimonDanisch SimonDanisch reopened this Dec 13, 2024
@SimonDanisch SimonDanisch changed the base branch from breaking-0.22 to master December 13, 2024 11:37
@ffreyer ffreyer merged commit 44ed219 into MakieOrg:master Dec 16, 2024
19 of 20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Merged
Development

Successfully merging this pull request may close these issues.

Add option to close an Axis3's outline box
6 participants