pradeep-pyro / tinynurbs Goto Github PK
View Code? Open in Web Editor NEWC++ library for NURBS curves and surfaces
License: BSD 3-Clause "New" or "Revised" License
C++ library for NURBS curves and surfaces
License: BSD 3-Clause "New" or "Revised" License
Hi, thanks for the amazing project!
I have a NURBS surface and N control points. Now I want to evaluate a point P(u, v). I need the weight w and derivative wu, wuu, wv, wuv and wvv wrt to each control point. Does tinynurbs support this feature? Thanks.
Hi!
I got some problems on the precision issues while using it. When I create a 2D NURBS curve, I found that the precision of the NURBS expression is limited to the single precision. For example, if I create a unit circle with radius of 1.000000000000 the starting points may be shown as (1.000000002311, 0), even though I use the datatype. I wonder if it's an internal limitation, or I didn't use it correctly.
Thanks!
Hi,
Thanks a lot for this fantastic library! We are the devs of IFC.js, an open source project to allow anyone to create BIM software. We would like to know if it would be possible for us to use this library, as the license for IFC.js is MIT.
Thanks a lot in advance.
Cheers!
Hello Pardeep,
I think the code is very good and is what I need. Thanks for the effort. However, after compiling the project, only "unittests" and "ZERO_CHECK" were compiled (I didn't make any changes and only used CMake-gui to create a VS project). In particularly, I cannot find an .lib file to be added to my own project. Could you tell me how to generate the .lib file?
Regards,
Tong
Hello
Is it possible to define closed NURBS in U or V or both?
basisi.h, Line 73, function close() seems like it should use namespace: util::close()
Dear pradeep,
I tried to build tinynurbs using cmake, but after building it, tinynurbs doesn't include the glm dependency. I tried multiple times, enabling or disabling TINYNURBS_USE_OWN_GLM but to no avail. Why does this happen and how can i resolve this problem.
Kind regards,
Abdelkader
I’ve been trying to implement IfcBsplineSurface, IfcBsplineSurfaceWithKnots and IfcRationalBSplineSurfaceWithKnots using this library in c++ / emscripten / WabAssembly and I having some issues which are probably caused by me doing something wrong.
One thing is that axes direction don’t seem to match, and I’m not sure in which space TinyNURBS operate.
X right, y up, z to viewer ?
IFC allows defining custom coords, which additionally complicates things.
On the upside, tinynurbs perfectly matches the IfcAdvancdFace use case, and seems to work quite fast, solving a decades long problem entire BIM community was facing when rendering detailed toilet bowls and doorknobs in a browser.
There’s a huge community and even some bounties involved. See https://github.com/tomvandig/web-ifc for more details.
Hi there,
Happy to see this well written cpp NURBS library exists !
Although it's not featuring all major NURBS operations yet, I'm evaluating the opportunity to use it in a personal project.
First I would like to know if it would make sense I submit a modified version of tinynurbs allowing using an arbitrary vector type (for my use it would be boost::qvm vectors).
It would imply adding a VECTOR_T template parameter for most classes and functions, as well as writing vector back-end classes for vector interfaces that do not match with your implementation based on glm.
Any feedback from main contributors here is welcomed.
Best,
Flarkk
Hi @pradeep-pyro , many thanks for a well written NURBS implementation in modern C++!
I wonder if you could consider adding some helper methods around periodic curves and surfaces.
Hi ,
I installed and run your code but found that the obj files don't work.
I even tried the one you wrote on your README markdown file.
do you happen to know why? did the norm change? what viewer are you using?
Hi ~ Tinynurbs is a nice library ~
But I encountered a problem when I was using the following code.
findSpan will be stuck in an infinite loop.
vector<float> knots = {0, 1, 1.3, 2.1, 3.6, 4.0};
int x = tinynurbs::findSpan(2, knots, 2.1f);
Hi, props to the nice and fast library. I am setting up some testing of the NURBS curves before I sample them to points using tinynurbs and I ran into two issues with the knotMultiplicity function in check.h.
First, "i" should be used at line 263 instead of "index". Now it evaluates the same element in each iteration.
Then, the variable "mult" should be initialized to 1, since the loop finds the number of equalities among the knot values, but the actual number of equal points is "equalities+1".
T
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.