René's URL Explorer Experiment


Title: Implement full 3D box clipping by QuLogic · Pull Request #30553 · matplotlib/matplotlib · GitHub

Open Graph Title: Implement full 3D box clipping by QuLogic · Pull Request #30553 · matplotlib/matplotlib

X Title: Implement full 3D box clipping by QuLogic · Pull Request #30553 · matplotlib/matplotlib

Description: PR summary Based on @scottshambaugh's comment, I took the existing 2D clipping algorithm and extended it to 3D. That turned out to be quite straightforward as it already worked on each direction independently. Most of the work was actually with regards to the plumbing to get things in and out. Then I implemented it for Poly3DCollection and Patch3D. There are still a few things to finish this: Poly3DCollection supports masking on the input, both from the original input and also to allow combining ragged input into a single array for quicker processing. I have not tested either, and don't expect them to work properly. The 2D code drops any empty polygons after clipping. In 3D, this breaks depth shading since the order is broken. Instead of trying to track this change through clipping, it's probably easiest just to keep the empty polygons, but I have not tested it out. This is still under the axlim_clip flag; I don't know if we just want to enable this all the time and/or deprecate that option. Probably could warrant an API/what's new note. Using the example from #8902 without clipping, the bars are quite misleading, as it seems like they are in a completely different spot initially compared to when looking at them edgewise. Screencast.From.2025-09-12.05-24-46.mp4 whereas with clipping here, we get something that isn't so weird: Screencast.From.2025-09-12.05-25-33.mp4 This is based on #30208. PR checklist "closes #0000" is in the body of the PR description to link the related issue new and changed code is tested Plotting related features are demonstrated in an example New Features and API Changes are noted with a directive and release note Documentation complies with general and docstring guidelines

Open Graph Description: PR summary Based on @scottshambaugh's comment, I took the existing 2D clipping algorithm and extended it to 3D. That turned out to be quite straightforward as it already worked on each directio...

X Description: PR summary Based on @scottshambaugh's comment, I took the existing 2D clipping algorithm and extended it to 3D. That turned out to be quite straightforward as it already worked on each dire...

Opengraph URL: https://github.com/matplotlib/matplotlib/pull/30553

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:1eacd249-c730-7153-c6eb-b99710ed454a
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idAFC0:22C726:F173A8:141A065:6A51BE9E
html-safe-noncef60ddeada100c078faf7c3a2340a385d47ea87975e70a900c9c338b129df8393
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBRkMwOjIyQzcyNjpGMTczQTg6MTQxQTA2NTo2QTUxQkU5RSIsInZpc2l0b3JfaWQiOiI4MzIyNDU5MTYxNzU4NjQ1OTE4IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmac4a71fb5e184585bf37cc7a2a6c23fa72cf6a4e7faf36c52cbe14c85d1bd3a0b1
hovercard-subject-tagpull_request:2824128730
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/matplotlib/matplotlib/pull/30553/files
twitter:imagehttps://avatars.githubusercontent.com/u/302469?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/302469?s=400&v=4
og:image:altPR summary Based on @scottshambaugh's comment, I took the existing 2D clipping algorithm and extended it to 3D. That turned out to be quite straightforward as it already worked on each directio...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Noneb9a586c06a05a7a86fc7e3f4dbd03e42f6869085879aa184aa6369456dbd50fb
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/matplotlib/matplotlib git https://github.com/matplotlib/matplotlib.git
octolytics-dimension-user_id215947
octolytics-dimension-user_loginmatplotlib
octolytics-dimension-repository_id1385122
octolytics-dimension-repository_nwomatplotlib/matplotlib
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id1385122
octolytics-dimension-repository_network_root_nwomatplotlib/matplotlib
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release7aed05249554b889eb33d002851a973eebcc7e91
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/matplotlib/matplotlib/pull/30553/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmatplotlib%2Fmatplotlib%2Fpull%2F30553%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmatplotlib%2Fmatplotlib%2Fpull%2F30553%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=matplotlib%2Fmatplotlib
Reloadhttps://github.com/matplotlib/matplotlib/pull/30553/files
Reloadhttps://github.com/matplotlib/matplotlib/pull/30553/files
Reloadhttps://github.com/matplotlib/matplotlib/pull/30553/files
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/30553/files
matplotlib https://github.com/matplotlib
matplotlibhttps://github.com/matplotlib/matplotlib
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/30553/files
Notifications https://github.com/login?return_to=%2Fmatplotlib%2Fmatplotlib
Fork 8.4k https://github.com/login?return_to=%2Fmatplotlib%2Fmatplotlib
Star 23k https://github.com/login?return_to=%2Fmatplotlib%2Fmatplotlib
Code https://github.com/matplotlib/matplotlib
Issues 1.1k https://github.com/matplotlib/matplotlib/issues
Pull requests 409 https://github.com/matplotlib/matplotlib/pulls
Actions https://github.com/matplotlib/matplotlib/actions
Projects https://github.com/matplotlib/matplotlib/projects
Wiki https://github.com/matplotlib/matplotlib/wiki
Security and quality 0 https://github.com/matplotlib/matplotlib/security
Insights https://github.com/matplotlib/matplotlib/pulse
Code https://github.com/matplotlib/matplotlib
Issues https://github.com/matplotlib/matplotlib/issues
Pull requests https://github.com/matplotlib/matplotlib/pulls
Actions https://github.com/matplotlib/matplotlib/actions
Projects https://github.com/matplotlib/matplotlib/projects
Wiki https://github.com/matplotlib/matplotlib/wiki
Security and quality https://github.com/matplotlib/matplotlib/security
Insights https://github.com/matplotlib/matplotlib/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fmatplotlib%2Fmatplotlib%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fmatplotlib%2Fmatplotlib%2Fissues%2Fnew%2Fchoose
QuLogichttps://github.com/QuLogic
matplotlib:mainhttps://github.com/matplotlib/matplotlib/tree/main
QuLogic:clip3dhttps://github.com/QuLogic/matplotlib/tree/clip3d
Conversation 3 https://github.com/matplotlib/matplotlib/pull/30553
Commits 8 https://github.com/matplotlib/matplotlib/pull/30553/commits
Checks 42 https://github.com/matplotlib/matplotlib/pull/30553/checks
Files changed 3 https://github.com/matplotlib/matplotlib/pull/30553/files
Implement full 3D box clipping https://github.com/matplotlib/matplotlib/pull/30553/files#top
Show all changes 8 commits https://github.com/matplotlib/matplotlib/pull/30553/files
2bdc786 Make path-to-string conversion a little safer QuLogic Jun 24, 2025 https://github.com/matplotlib/matplotlib/pull/30553/commits/2bdc7860c1a945abc4e9061e3149c7510c11c306
6d5dd9a Make path clipping a bit safer QuLogic Jun 24, 2025 https://github.com/matplotlib/matplotlib/pull/30553/commits/6d5dd9a5947058644603fafd2d67bc952ec41db8
5ba391b MNT: Fix type of _finalize_polygon::closed_only QuLogic Sep 9, 2025 https://github.com/matplotlib/matplotlib/pull/30553/commits/5ba391b8723753b06a55a6e507309445e79accb8
3f920bf path: Simplify extent_limits implementation a bit QuLogic Sep 9, 2025 https://github.com/matplotlib/matplotlib/pull/30553/commits/3f920bf45785fc7a854b82f19ec0fa774dd2f2da
b64f3d7 path: Simplify parts of clip_path_to_rect QuLogic Sep 9, 2025 https://github.com/matplotlib/matplotlib/pull/30553/commits/b64f3d74f413508ca2cb7babd23f7c7081ac24d8
a55ad73 Implement a 3D version of the clipping algorithm QuLogic Sep 11, 2025 https://github.com/matplotlib/matplotlib/pull/30553/commits/a55ad731bc48d73c1b63259663dc9ba983756831
341809c Implement full clipping for Poly3DCollection QuLogic Sep 12, 2025 https://github.com/matplotlib/matplotlib/pull/30553/commits/341809c267c0f81f3b58e94ea9176eabf80c0021
2fda01e Implement full clipping for Patch3D QuLogic Sep 12, 2025 https://github.com/matplotlib/matplotlib/pull/30553/commits/2fda01ea80e9a4d1bea407aaae1c8908e787e178
Clear filters https://github.com/matplotlib/matplotlib/pull/30553/files
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/30553/files
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/30553/files
art3d.py https://github.com/matplotlib/matplotlib/pull/30553/files#diff-21a889bd7f4e011757170a6a94b732dc543121b7580141ea5f9e82132c5f1c9f
_path.h https://github.com/matplotlib/matplotlib/pull/30553/files#diff-931be8ebdb0ed3f78bed41ba81a2a2c6ceb3855f9233f1cb4da7f18380bc5faf
_path_wrapper.cpp https://github.com/matplotlib/matplotlib/pull/30553/files#diff-b6d0712456c5c3ce95247bd16291995647306f95f868bf785881d89169b70673
lib/mpl_toolkits/mplot3d/art3d.pyhttps://github.com/matplotlib/matplotlib/pull/30553/files#diff-21a889bd7f4e011757170a6a94b732dc543121b7580141ea5f9e82132c5f1c9f
View file https://github.com/matplotlib/matplotlib/blob/2fda01ea80e9a4d1bea407aaae1c8908e787e178/lib/mpl_toolkits/mplot3d/art3d.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/matplotlib/matplotlib/pull/30553/{{ revealButtonHref }}
https://github.com/matplotlib/matplotlib/pull/30553/files#diff-21a889bd7f4e011757170a6a94b732dc543121b7580141ea5f9e82132c5f1c9f
https://github.com/matplotlib/matplotlib/pull/30553/files#diff-21a889bd7f4e011757170a6a94b732dc543121b7580141ea5f9e82132c5f1c9f
https://github.com/matplotlib/matplotlib/pull/30553/files#diff-21a889bd7f4e011757170a6a94b732dc543121b7580141ea5f9e82132c5f1c9f
https://github.com/matplotlib/matplotlib/pull/30553/files#diff-21a889bd7f4e011757170a6a94b732dc543121b7580141ea5f9e82132c5f1c9f
https://github.com/matplotlib/matplotlib/pull/30553/files#diff-21a889bd7f4e011757170a6a94b732dc543121b7580141ea5f9e82132c5f1c9f
https://github.com/matplotlib/matplotlib/pull/30553/files#diff-21a889bd7f4e011757170a6a94b732dc543121b7580141ea5f9e82132c5f1c9f
https://github.com/matplotlib/matplotlib/pull/30553/files#diff-21a889bd7f4e011757170a6a94b732dc543121b7580141ea5f9e82132c5f1c9f
https://github.com/matplotlib/matplotlib/pull/30553/files#diff-21a889bd7f4e011757170a6a94b732dc543121b7580141ea5f9e82132c5f1c9f
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/30553/files
Please reload this pagehttps://github.com/matplotlib/matplotlib/pull/30553/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.