diegoarjz / pagoda Goto Github PK
View Code? Open in Web Editor NEWA Graph-Based Procedural Modelling Library
Home Page: https://diegoarjz.github.io/pagoda/
License: MIT License
A Graph-Based Procedural Modelling Library
Home Page: https://diegoarjz.github.io/pagoda/
License: MIT License
Exceptions are classes which are only used in a single cpp file. In that case, they should be declared and implemented in the cpp file.
See commit 402d669 for an example.
Variadic arguments in macros don't seem to be very portable and are causing travis builds to fail for gcc.
The split operation partitions geometries along one scope axis into multiple geometries.
Currently profiling and assertions are always enabled, unnecessarily slowing down the code. This should be disabled by default at least for release builds. Cmake should allow enabling this.
Implement an operation to project texture coordinates to vertices based on the scope.
Parameters:
The Pitchfork Layout model seems a good fit for this project.
Examples are:
Some matrix arithmetics have been implemented but don't have unit tests associated.
Either from command line, from a file or both
The following regressions tests are failing in Ubuntu. All involve plane clipping.
RegressionTestCase.clip_geometry
RegressionTestCase.repeat_split
RegressionTestCase.split
The repeat split operation performs multiple splits of the same size along a scope axis.
This should be done as described in Pagoda's Project Layout documentation
The extract faces operation splits a geometry into its different faces.
The procedural graph scheduler is not executing the nodes in a correct order.
So far the breadth first approach has worked because there was a pattern in the way nodes were linked.
E.g.:
op1 -> out_interface1 -> in_interface1 -> op2
which balanced the nodes and they were executed correctly.
With the ParameterNode things like the following can happen, where op2 can be executed before any procedural object gets there.
par -> op2
op1 -> out_interface1 -> in_interface1 -> op2
The current graph reader implementation is made up of remnants of first experiments with selscript and doesn’t support run time expressions.
Execution of expressions is possible through selscript.
In at least one Kubuntu environment, there have been linking issues when building the unit tests:
/usr/bin/ld: ../../libgtest.a(gtest-all.cc.o): in function `testing::internal::ThreadLocal<testing::TestPartResultReporterInterface*>::~ThreadLocal()':
gtest-all.cc:(.text._ZN7testing8internal11ThreadLocalIPNS_31TestPartResultReporterInterfaceEED2Ev[_ZN7testing8internal11ThreadLocalIPNS_31TestPartResultReporterInterfaceEED5Ev]+0x24): undefined reference to `pthread_getspecific'
The parameter node should allow defining new parameters.
The node should also allow pushing the parameters into its output nodes, overwriting parameters with the same name
This way it is possible to easily define graph level parameters.
The router node allows to filter and route incoming procedural objects to different outgoing nodes.
Obj extracted from the banner regression test:
v 8.57143 0.5 0
n 0 0 1
v 8.57143 -2 0
n 0 0 1
v 10.7143 0.5 0
n 0 0 0
v 10.7143 -2 0
The way the code is structured around in math lib creates a lot of circular dependencies. This makes it harder to use.
Should reimplement the triangulation with an algorithm that supports concave polygons.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.