Page MenuHomePhabricator

Geometry Refactor
ClosedPublic

Authored by memateo on Sep 16 2020, 10:24 PM.

Details

Summary

Refactor the geometry classes so they use the Eigen library

Test Plan

Rewrite test classes

Diff Detail

Repository
rA Anari
Lint
Lint Not Applicable

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Build is green

Building Anari on mpm-bionic-00081ratp3161 as build 202.

See https://jenkins.mousepawmedia.net:8449/job/anari_build/202/ for more details.

Build is green

Building Anari on mpm-bionic-00081rrr31foc as build 203.
Running test suite A-sB03.

See https://jenkins.mousepawmedia.net:8449/job/anari_build/203/ for more details.

Build is green

Building Anari on mpm-bionic-00081s93md79d as build 204.
Running test suite A-sB01.

See https://jenkins.mousepawmedia.net:8449/job/anari_build/204/ for more details.

Restricted Application completed remote builds in Restricted Buildable.Sep 16 2020, 10:26 PM
  • Merge branch 'devel' of ssh://phabricator.mousepawmedia.net:2222/source/anari into GeometryRefactor
  • Added #include

Build is green

Building Anari on mpm-bionic-000a8ce8v3wnr as build 208.

See https://jenkins.mousepawmedia.net:8449/job/anari_build/208/ for more details.

Build is green

Building Anari on mpm-bionic-000a8d2k60rz8 as build 209.
Running test suite A-sB03.

See https://jenkins.mousepawmedia.net:8449/job/anari_build/209/ for more details.

Build is green

Building Anari on mpm-bionic-000a8dln8vg0a as build 210.
Running test suite A-sB01.

See https://jenkins.mousepawmedia.net:8449/job/anari_build/210/ for more details.

Restricted Application completed remote builds in Restricted Buildable.Sep 19 2020, 12:02 PM

Will definitely need to plan out what changes need to occur in order to include the Eigen library to geometry.hpp and also need to see what needs to be cut out. Maybe a planning session @mahussain?

  • Refactored geometry.hpp and geometry_tests.hpp

Build has FAILED

Building Anari on mpm-bionic-000c02yc0rcd4 as build 211.

Link to build: https://jenkins.mousepawmedia.net:8449/job/anari_build/211/
See console output for more information: https://jenkins.mousepawmedia.net:8449/job/anari_build/211/console

Restricted Application failed remote builds in Restricted Buildable!Sep 21 2020, 1:57 PM

Build has FAILED

Building Anari on mpm-bionic-000c03i1wc4tp as build 212.

Link to build: https://jenkins.mousepawmedia.net:8449/job/anari_build/212/
See console output for more information: https://jenkins.mousepawmedia.net:8449/job/anari_build/212/console

Build has FAILED

Building Anari on mpm-bionic-000c03tqqcbuk as build 213.

Link to build: https://jenkins.mousepawmedia.net:8449/job/anari_build/213/
See console output for more information: https://jenkins.mousepawmedia.net:8449/job/anari_build/213/console

Build has FAILED

Building Anari on mpm-bionic-000c0451hmp5n as build 214.

Link to build: https://jenkins.mousepawmedia.net:8449/job/anari_build/214/
See console output for more information: https://jenkins.mousepawmedia.net:8449/job/anari_build/214/console

Restricted Application failed remote builds in Restricted Buildable!Sep 21 2020, 1:58 PM

Build has FAILED

Building Anari on mpm-bionic-000c04ggxln6b as build 215.

Link to build: https://jenkins.mousepawmedia.net:8449/job/anari_build/215/
See console output for more information: https://jenkins.mousepawmedia.net:8449/job/anari_build/215/console

Build has FAILED

Building Anari on mpm-bionic-000c04thdw8eu as build 216.

Link to build: https://jenkins.mousepawmedia.net:8449/job/anari_build/216/
See console output for more information: https://jenkins.mousepawmedia.net:8449/job/anari_build/216/console

  • Fixed parentheses issue
  • Changed Vector4d -> Eigen::Vector4d
Restricted Application failed remote builds in Restricted Buildable!Sep 28 2020, 11:29 AM

Build has FAILED

Building Anari on mpm-bionic-0005rhq8klrip as build 217.

Link to build: https://jenkins.mousepawmedia.net:8449/job/anari_build/217/
See console output for more information: https://jenkins.mousepawmedia.net:8449/job/anari_build/217/console

Build has FAILED

Building Anari on mpm-bionic-0005rikmew89q as build 218.

Link to build: https://jenkins.mousepawmedia.net:8449/job/anari_build/218/
See console output for more information: https://jenkins.mousepawmedia.net:8449/job/anari_build/218/console

Build has FAILED

Building Anari on mpm-bionic-0005riwlm0vj6 as build 219.

Link to build: https://jenkins.mousepawmedia.net:8449/job/anari_build/219/
See console output for more information: https://jenkins.mousepawmedia.net:8449/job/anari_build/219/console

  • Minor edits to test files

Build has FAILED

Building Anari on mpm-bionic-0009leb1bceka as build 220.

Link to build: https://jenkins.mousepawmedia.net:8449/job/anari_build/220/
See console output for more information: https://jenkins.mousepawmedia.net:8449/job/anari_build/220/console

Restricted Application failed remote builds in Restricted Buildable!Oct 2 2020, 11:33 PM

Build has FAILED

Building Anari on mpm-bionic-0009let4dutpw as build 221.

Link to build: https://jenkins.mousepawmedia.net:8449/job/anari_build/221/
See console output for more information: https://jenkins.mousepawmedia.net:8449/job/anari_build/221/console

Build has FAILED

Building Anari on mpm-bionic-0009lf5h0yifh as build 222.

Link to build: https://jenkins.mousepawmedia.net:8449/job/anari_build/222/
See console output for more information: https://jenkins.mousepawmedia.net:8449/job/anari_build/222/console

Build has FAILED

Building Anari on mpm-bionic-0009lhtdg2zw2 as build 223.

Link to build: https://jenkins.mousepawmedia.net:8449/job/anari_build/223/
See console output for more information: https://jenkins.mousepawmedia.net:8449/job/anari_build/223/console

Restricted Application failed remote builds in Restricted Buildable!Oct 2 2020, 11:37 PM

Build has FAILED

Building Anari on mpm-bionic-0009li5vz2zoy as build 224.

Link to build: https://jenkins.mousepawmedia.net:8449/job/anari_build/224/
See console output for more information: https://jenkins.mousepawmedia.net:8449/job/anari_build/224/console

Build has FAILED

Building Anari on mpm-bionic-0009lii8h6now as build 225.

Link to build: https://jenkins.mousepawmedia.net:8449/job/anari_build/225/
See console output for more information: https://jenkins.mousepawmedia.net:8449/job/anari_build/225/console

ardunster added inline comments.
anari-source/include/anari/geometry_tests.hpp
82–99

Some of your build errors are because startVector and endVector are inside a limited scope, and they're called outside of it. Looking at it, it looks like this test was just to verify if the copy and the original curv object were the same (I can't remember why I didn't think so in our pair session), probably it would work if the second half of each line called copy instead?

120–128

These are just calling the wrong variable, probably a copypaste error. But I'm not sure why the test is ASSERT EQUAL if all it's trying to do is check if the subscript works. this may or may not produce the intended behavior.

  • Refactored build errors in D342

Thanks Anna, your changes seemed to help a lot!

Build is green

Building Anari on mpm-bionic-000cpkgtlq8q7 as build 227.

See https://jenkins.mousepawmedia.net:8449/job/anari_build/227/ for more details.

Build is green

Building Anari on mpm-bionic-000cpl2ht7jsd as build 228.
Running test suite A-sB03.

See https://jenkins.mousepawmedia.net:8449/job/anari_build/228/ for more details.

Build is green

Building Anari on mpm-bionic-000cplkng02yv as build 229.
Running test suite A-sB01.

See https://jenkins.mousepawmedia.net:8449/job/anari_build/229/ for more details.

Restricted Application completed remote builds in Restricted Buildable.Oct 6 2020, 3:28 PM
  • Refactored Curve copy variable name

Build is green

Building Anari on mpm-bionic-000cprhhcygjl as build 230.

See https://jenkins.mousepawmedia.net:8449/job/anari_build/230/ for more details.

Build is green

Building Anari on mpm-bionic-000cps04xl3ei as build 231.
Running test suite A-sB03.

See https://jenkins.mousepawmedia.net:8449/job/anari_build/231/ for more details.

Build is green

Building Anari on mpm-bionic-000cpsib9wcoi as build 232.
Running test suite A-sB01.

See https://jenkins.mousepawmedia.net:8449/job/anari_build/232/ for more details.

Restricted Application completed remote builds in Restricted Buildable.Oct 6 2020, 3:37 PM

Yeah so basically all of my build errors were because of incorrect variable names :/

wdede added inline comments.
anari-source/include/anari/geometry_tests.hpp
90–98

Something about this is bugging me for some reason, I might be a bit confused by my Python notes but I want to make sure that this is the safest way to initialize or create a copy of the curv object here. I will research that and get back to you!

Yeah so basically all of my build errors were because of incorrect variable names :/

Code blindness in a nutshell. Happens to the best!

anari-source/include/anari/geometry_tests.hpp
90–98

Ahh, nope, it's not. Good catch, @wdede.

As it stands, this code will call the default constructor, followed by the copy assignment operator, on Curve. That is, it's effectively...

Curve curv_copy();  // calls Curve::Curve() and allocates on stack
curv_copy = curve;  // calls Curve::operator=(const Curve&)

The better way to do this would be to use the copy constructor instead, like this:

Curve curv_copy(curve);  // calls Curve::Curve(const Curve&) and allocates on stack
anari-source/include/anari/geometry_tests.hpp
90–98

Thanks for the input @jcmcdonald, but I still don't fully get it. If we use Curve curv_copy(curve); the object curv is no longer needed, right??

anari-source/include/anari/geometry_tests.hpp
90–98

In this context, he's testing the copy constructor, so it's reasonable. He's testing the values of curv_copy against those in curv.

In D342#11701, @gacmix wrote:

Thanks Anna, your changes seemed to help a lot!

Glad I could help! :) It's mostly stuff I missed while we were doing the pair programming, too..... although I know you had somewhere to be right afterward so that's probably a factor.

gacmix marked 6 inline comments as done.
  • Fixed copy constructor test

Build is green

Building Anari on mpm-bionic-0002uxd776iy8 as build 234.
Running test suite A-sB03.

See https://jenkins.mousepawmedia.net:8449/job/anari_build/234/ for more details.

Build is green

Building Anari on mpm-bionic-0002uy6roo3q3 as build 235.

See https://jenkins.mousepawmedia.net:8449/job/anari_build/235/ for more details.

Build is green

Building Anari on mpm-bionic-0002uyp7hb7ap as build 236.
Running test suite A-sB01.

See https://jenkins.mousepawmedia.net:8449/job/anari_build/236/ for more details.

Restricted Application completed remote builds in Restricted Buildable.Oct 11 2020, 10:06 PM

I may need to refactor Transformation.hpp so that it can transform 4x1 Vectors

To the best of my understanding of what's intended here (from the pair session I had with Graham and the couple times I have reviewed this code) it looks good, although I am not really familiar with how Eigen works/stores data so if there's an error there I don't think I would catch it. I'm going to accept this, I assume someone can still take ownership and land it?

This revision is now accepted and ready to land.Nov 2 2020, 2:07 PM

@memateo You are welcome to Commandeer and land this.

memateo edited reviewers, added: gacmix; removed: memateo.

TODO: Land

memateo mentioned this in Unknown Object (Ponder Question).Nov 4 2020, 6:03 PM
memateo mentioned this in Unknown Object (Ponder Answer).Nov 4 2020, 6:10 PM
This revision was automatically updated to reflect the committed changes.