New SDL app : LaserBoy Multiplatform

Check it out!

http://akrobiz.com/laserboy/code/LaserBoy_04_27_2008.zip

Let me know what you think!

Take care. James. :o)–
View this message in context: http://www.nabble.com/New-SDL-app-%3A-LaserBoy-Multiplatform-tp16930357p16930357.html
Sent from the SDL mailing list archive at Nabble.com.

Soon as I get a chance.

Thanks,
Jim SmtihOn Sun, 2008-04-27 at 23:55 -0700, another james wrote:

Check it out!

http://akrobiz.com/laserboy/code/LaserBoy_04_27_2008.zip

Let me know what you think!

Take care. James. :o)

no linux makefile and i’m busy at CBA.com :wink:

see how the games scene is still a little bit sexist :wink:

laser/boy/

http://www.cloudsprinter.com/software/crazeeman/

Quoting James Smith :> Soon as I get a chance.

Thanks,
Jim Smtih
On Sun, 2008-04-27 at 23:55 -0700, another james wrote:

Check it out!

http://akrobiz.com/laserboy/code/LaserBoy_04_27_2008.zip

Let me know what you think!

Take care. James. :o)


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

e-mail provided by Moose Internet Services
http://www.moose.co.uk/

Quoting another james :

Check it out!

http://akrobiz.com/laserboy/code/LaserBoy_04_27_2008.zip

Let me know what you think!

Take care. James. :o)

ok, so i felt guilty about not trying your stuff and being incredibly lazy :wink:

(debian linux btw)

for a start i didnt actually have g++ installed ;))

but i changed the makefile libs line to

LIBS =sdl-config --libs

and it compiled fine, it may have compiled as it was, not sure tho

anyway, it compiled, ran, and i have no clue what is actually going on
( in your
sdl project and generally ), but i’m sure its great :wink:

bye!

neil.

Just downloaded it and started browsing the content of the zipfile, and here
are a few things I noticed:

  1. It includes unnecessary stuff, in particular win32 executables and empty
    directories.
  2. BMP_FUNCTIONS: you must not use names containing two consecutive
    underscores or beginning with an underscore followed by an uppercase. Those
    are simply reserved and IMHO they don’t add anything anyway.
  3. ‘extern’ doesn’t have any meaning for function declarations.
  4. Functions must not be followed by a trailing semicolon after the closing
    curly brackets. Inside a function, it is called an empty statement, but at
    namespace scope (outside a function), empty statements are not allowed. Note
    that they are actually allowed after inline memberfunction definitions,
    though they are neither required nor do they make sense there.

Other than that, I’ll try to compile it on a PPC platform, so I’ll be able to
tell you if it’s endian-clean code later.

cheers

UliOn Monday 28 April 2008 08:55:35 another james wrote:

Check it out!

http://akrobiz.com/laserboy/code/LaserBoy_04_27_2008.zip

Let me know what you think!

no linux makefile and i’m busy at CBA.com :wink:

Look again, my friend! I spent quite a while with this. I used Dev-C++ in
Windows to do the editing and the program’s interface to update the libs to
include the SDL stuff (for Windows).

I also have a Fedora 8 machine here with SDL installed from RPM. I copied
Makefile.win to Makefile and edited it to work in Linux. Just go into the
src directory and make it. It will be in the parent directory. If you want
to make the app window anything other than 640x480, pass x and y as
arguments. I have also found that if the frame buffer is built into the
kernel, it will run from the console at expected resolutions. NEATO!

James. :o)–
View this message in context: http://www.nabble.com/New-SDL-app-%3A-LaserBoy-Multiplatform-tp16930357p16945598.html
Sent from the SDL mailing list archive at Nabble.com.

LaserBoy is something I’ve been working on for several years. It was
originally designed on top of my Linux frame buffer API, ezfb.

It is a laser vector art workstation. It can read, make, write 3D vector art
according to The International Laser Display Association’s ILDA file format.
It can also import, export DXF, export bitmap and LaserBoy compatible C++
and ASCII palette tables. But, the most important thing that it does is make
waves! It can turn your own laser vector art creation into a multi channel
wave file, that, when played, produces the signals that control the laser to
project your show in full 24 bit color!

James. :o)–
View this message in context: http://www.nabble.com/New-SDL-app-%3A-LaserBoy-Multiplatform-tp16930357p16945906.html
Sent from the SDL mailing list archive at Nabble.com.

Try this one!

http://akrobiz.com/laserboy/code/LaserBoy_04_28_2008.zip

I got rid of the extra semicolons and extern declarations. I knew that was
weird when I put them in there. I was having trouble getting what used to be
Linux only code to compile in Dev-C++. Anyway… It works now in all flavors
of Windows and Linux.

James. :o)–
View this message in context: http://www.nabble.com/New-SDL-app-%3A-LaserBoy-Multiplatform-tp16930357p16951861.html
Sent from the SDL mailing list archive at Nabble.com.

I just changed the makefile:

-CXXFLAGS = -O3 -pg -g3
+CXXFLAGS = -O3 -pg -g3 -W -Wextra

and then started compiling. Apart from a few warnings that may or may not
indicate broken code, there is one that is really serious:

ez_ilda_frame_set.cpp: In member function ?int
ez_ilda_frame_set::from_dxf_directory(std::string, bool)?:
ez_ilda_frame_set.cpp:329: warning: comparison is always false due to
limited range of data type

This comes from code like this:

char c;

c = getc(…);
if(c==EOF)

The problem is that ‘c’ must be an ‘int’ for things like that to work. It
might work correctly on your system if ‘char’ is signed there like ‘int’, but
on my system ‘char’ is unsigned (C/C++ say it’s implementation defined
if ‘char’ is signed or unsigned).

Another thing you do a few times is that you are deriving from a vector but
you are not using vector’s copy constructor in order to implement that class’
copy constructor. Seems like a waste of typing to me.

Anyway, your program seems to do what it is supposed to do. I can switch
between the different layouts and they all seem to render correctly.

BTW: In fact I’m rather impressed by the electronics and the photos you made
with the laser connected to it. Is there some more documentation available?
In particular I wonder how the timing is determined. I actually even have a
professional interest (working for http://www.satorlaser.com), though our
aims there (marking on surfaces) are a bit different to what you are doing.

cheers from Hamburg

UliOn Monday 28 April 2008 08:55:35 another james wrote:

Check it out!

http://akrobiz.com/laserboy/code/LaserBoy_04_27_2008.zip

Let me know what you think!

-CXXFLAGS = -O3 -pg -g3
+CXXFLAGS = -O3 -pg -g3 -W -Wextra

OK. I’ll try this too.

ez_ilda_frame_set.cpp: In member function ?int
ez_ilda_frame_set::from_dxf_directory(std::string, bool)?:
ez_ilda_frame_set.cpp:329: warning: comparison is always
false due to limited range of data type

YIKES! This is some of that “Linux only” code that I forgot to fix! Thank
you for pointing this out.

BTW: In fact I’m rather impressed by the electronics
and the photos you made
with the laser connected to it.

THANKS! That means a lot to me!

Is there some more documentation available?
In particular I wonder how the timing is determined. I actually
even have a professional interest
(working for http://www.satorlaser.com),
though our aims there (marking on surfaces) are a
bit different to what you are doing.

I agree! Any documentation would be very nice! I’m just so into writing the
code that I never get around to that, unless I’m blogging about it like I am
now.

This system is designed to drive scanning galvanometers. As you probably
know, these things have mass and need to accelerate and decelerate to move
and this takes time. LaserBoy knows how to put the galvos where they need to
be at every sample of the wave. It adds points along straight lines (span)
to ensure that the galvos are never expected to move more than a maximum
distance (you set) per sample and it adds points to allow the galvos to stop
when they are required to change direction (dwell). It’s not really all that
different than what you want to do. Marking is just a much faster sample
rate and a much hotter laser!

You might find some more information about LaserBoy here:
http://www.photonlexicon.com/forums/

cheers from Hamburg
Uli

Cheers from Akron, Ohio USA
James. :o)–
View this message in context: http://www.nabble.com/New-SDL-app-%3A-LaserBoy-Multiplatform-tp16930357p16967174.html
Sent from the SDL mailing list archive at Nabble.com.

New release.

http://akrobiz.com/laserboy/code/LaserBoy_04_30_2008.zip

Take care. James. :o)–
View this message in context: http://www.nabble.com/New-SDL-app-%3A-LaserBoy-Multiplatform-tp16930357p16975495.html
Sent from the SDL mailing list archive at Nabble.com.

Well…
Anything new to report?
Comments, questions?

James. :o)–
View this message in context: http://www.nabble.com/New-SDL-app-%3A-LaserBoy-Multiplatform-tp16930357p16993347.html
Sent from the SDL mailing list archive at Nabble.com.

Cleaned up a bit more.

http://akrobiz.com/laserboy/code/LaserBoy_04_30_2008_v2.zip

James. :o)–
View this message in context: http://www.nabble.com/New-SDL-app-%3A-LaserBoy-Multiplatform-tp16930357p17024937.html
Sent from the SDL mailing list archive at Nabble.com.

…and another one…

……

http://akrobiz.com/laserboy/code/LaserBoy_05_03_2008.zip

Please give me some feedback. It’s what I live for.–
View this message in context: http://www.nabble.com/New-SDL-app-%3A-LaserBoy-Multiplatform-tp16930357p17043367.html
Sent from the SDL mailing list archive at Nabble.com.