Login  Register

Re: HOWTO: Compiling LibreCAD with Visual Studio 2003 (and Qt 4.3.1 ...)

Posted by dxli on Dec 30, 2011; 2:33am
URL: https://forum.librecad.org/HOWTO-Compiling-LibreCAD-with-Visual-Studio-2003-and-Qt-4-3-1-tp5108768p5109094.html


-  I have cloned the LibreCAD/LibreCAD Git, made a local working copy at home and comitted changes back to my clode Git - so far this seems all right.

- As I understand, I can issue a "push request", so that the powers that be can incorporate my changes to the "master" repository - is this right?
 
for help on pull request at github,

http://help.github.com/send-pull-requests/

by clicking on "You are asking blahblah to pull # commits into blahblah from blahblah", you can also send pull request to my repository: https://github.com/dxli/LibreCAD


- How can I update changes that occur in LibreCAD/LibreCAD into my repository tin-pot/LibreCAD? Do I initiate this explicitly ("pull")? How are changes merged? How are conflicts going to be resolved (in SVN parlance)?
I found it's easier for me to keep another remote:

Let's say I have my local repository /home/dli/github/LibreCAD cloned from my repository: https://github.com/dxli/LibreCAD

$ cd /home/dli/github
$ git clone [hidden email]:dxli/LibreCAD.git
$ cd /home/dli/github/LibreCAD

Now add a remote "upstream" to it

$ git remote add upstream [hidden email]:LibreCAD/LibreCAD.git
( the LibreCAD/LibreCAD is added as remote named "upstream" )
$ git fetch --all
( the fetches remote refs to local, you only need to run it once here, most likely)
$ git checkout -f -b LC upstream/master
( this checks out the master branch of upstream to a local branch named LC )
$ git checkout master
$ git merge LC

Later on, you simply run the following to merge upstream changes,

$ git checkout LC
$ git pull
$ git checkout master
$ git merge LC


On another topic, I stumbled across the usage of isnormal() in rs_arc.cpp, rs_ellipse.cpp, rs_modification.cpp: is the intent really to exclude denormals (and of course zero, INFs and NANs) or is it meant to check if a value is finite and nonzero, maybe with a lower bound on magnitude? And if so, are infinities purposefully used in LibreCAD?

std::isnormal() is used to verify the number is not zero (of cause, not NAN/INF). We use it to tell the difference between ellipse arc and whole ellipses. For example, an ellipse arc has start/end angles, if both are set to be exactly zero ( isnormal() = false), we treat the ellipse arc as an whole ellipse. This is different from an whole range arc, because an arc from 0 to 2 Pi will still have a start/end point, while a whole ellipse has no start/end point.

I suppose std::isnormal() is C++ standard, we just have to figure out how to use it in windows.

Thanks and happy holidays!

--
Dongxu Li, Ph.D.