[brlcad-commits] SF.net SVN: brlcad:[44170] geomcore/trunk/src/interfaces/java/src/org/ brlcad/geometryservice/net/GSConnection.java
Revision: 44170 http://brlcad.svn.sourceforge.net/brlcad/?rev=44170view=rev Author: davidloman Date: 2011-04-04 10:47:33 + (Mon, 04 Apr 2011) Log Message: --- GSConnection need not extend Thread. Limits implementation and restricts the end user's design. Modified Paths: -- geomcore/trunk/src/interfaces/java/src/org/brlcad/geometryservice/net/GSConnection.java Modified: geomcore/trunk/src/interfaces/java/src/org/brlcad/geometryservice/net/GSConnection.java === --- geomcore/trunk/src/interfaces/java/src/org/brlcad/geometryservice/net/GSConnection.java 2011-04-01 21:58:50 UTC (rev 44169) +++ geomcore/trunk/src/interfaces/java/src/org/brlcad/geometryservice/net/GSConnection.java 2011-04-04 10:47:33 UTC (rev 44170) @@ -27,11 +27,14 @@ import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket; +import java.net.SocketException; +import java.net.SocketTimeoutException; import java.nio.BufferOverflowException; import java.nio.BufferUnderflowException; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.UUID; +import java.util.concurrent.atomic.AtomicBoolean; import org.brlcad.geometryservice.GSStatics; import org.brlcad.geometryservice.GeometryServiceException; @@ -40,7 +43,7 @@ import org.brlcad.geometryservice.net.msg.RemoteNodeNameSetMsg; import org.brlcad.geometryservice.net.msg.SessionInfoMsg; -public class GSConnection { +public class GSConnection extends Thread { public static final int CONN_INITIAL_READBUF_SIZE = 1024 * 1024; @@ -48,6 +51,9 @@ public static final long MAX_HANDSHAKE_WAIT_TIME_MS = 1000 * 5; + private AtomicBoolean recvRunStatus = new AtomicBoolean(false); + private AtomicBoolean recvRunCmd = new AtomicBoolean(false); + /** * Static method that will connect to the provided addy:port and attempt to * log in. @@ -65,7 +71,8 @@ /* Validate args */ if (addy == null || port 1) - throw new GeometryServiceException(NULL address or port value is 1); + throw new GeometryServiceException( + NULL address or port value is 1); if (uname == null || uname.length() 1) throw new GeometryServiceException(NULL or zero length uname); if (passwd == null || passwd.length() 1) @@ -84,11 +91,12 @@ if (!GSConnection.authenticate(conn, uname, passwd)) { throw new GeometryServiceException(Authentication Failed.); } - + return conn; } - private static AbstractNetMsg waitForMsg(GSConnection conn) throws GeometryServiceException { + private static AbstractNetMsg waitForMsg(GSConnection conn) + throws GeometryServiceException { AbstractNetMsg newMsg = null; int totalRead = 0; long startTime = System.currentTimeMillis(); @@ -101,18 +109,22 @@ if (totalRead == 0) { if ((System.currentTimeMillis() - startTime) = MAX_HANDSHAKE_WAIT_TIME_MS) - throw new GeometryServiceException(Timeout on handshake. Waited + MAX_HANDSHAKE_WAIT_TIME_MS + ms.); + throw new GeometryServiceException( + Timeout on handshake. Waited + + MAX_HANDSHAKE_WAIT_TIME_MS + ms.); try { Thread.sleep(15); } catch (InterruptedException e) { - throw new GeometryServiceException(Thread Interruption); + throw new GeometryServiceException( + Thread Interruption); } continue; } if (totalRead 0) - throw new GeometryServiceException(Socket closed before handshake complete.); + throw new GeometryServiceException( + Socket closed before handshake complete.); } // End while (totalRead 1) { @@ -127,7 +139,8 @@ } - private static final boolean handshake(GSConnection conn, String uname) throws GeometryServiceException { + private static final boolean
[brlcad-commits] SF.net SVN: brlcad:[44171] geomcore/trunk/src/interfaces/java/test/org/ brlcad/geometryservice
Revision: 44171 http://brlcad.svn.sourceforge.net/brlcad/?rev=44171view=rev Author: davidloman Date: 2011-04-04 10:51:42 + (Mon, 04 Apr 2011) Log Message: --- Add in some tests and research. These were created some time ago but were never committed. Added Paths: --- geomcore/trunk/src/interfaces/java/test/org/brlcad/geometryservice/LoginTest.java geomcore/trunk/src/interfaces/java/test/org/brlcad/geometryservice/SerialTest.java geomcore/trunk/src/interfaces/java/test/org/brlcad/geometryservice/UUIDSerialResearch.java Added: geomcore/trunk/src/interfaces/java/test/org/brlcad/geometryservice/LoginTest.java === --- geomcore/trunk/src/interfaces/java/test/org/brlcad/geometryservice/LoginTest.java (rev 0) +++ geomcore/trunk/src/interfaces/java/test/org/brlcad/geometryservice/LoginTest.java 2011-04-04 10:51:42 UTC (rev 44171) @@ -0,0 +1,49 @@ +/* + * BRL-CAD + * + * Copyright (c) 2011 United States Government as represented by + * the U.S. Army Research Laboratory. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this file; see the file named COPYING for more + * information. + */ +/** @file LoginTest.java + * + */ +package org.brlcad.geometryservice; + +import java.net.InetAddress; +import java.net.UnknownHostException; + +/** + * @author dloman + * + */ +public class LoginTest { + + public static void main(String[] args) throws UnknownHostException, InterruptedException { + + GSJavaInterface inter = new GSJavaInterface(); + + boolean success = inter.connectToHost(InetAddress.getByName(127.0.0.1), (short)5309, Guest, Guest); + + System.out.println(Success? + success); + Thread.sleep(1000); + + inter.disconnectFromHost(); + Thread.sleep(1000); + + System.out.println(Done.); + } + +} Property changes on: geomcore/trunk/src/interfaces/java/test/org/brlcad/geometryservice/LoginTest.java ___ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: geomcore/trunk/src/interfaces/java/test/org/brlcad/geometryservice/SerialTest.java === --- geomcore/trunk/src/interfaces/java/test/org/brlcad/geometryservice/SerialTest.java (rev 0) +++ geomcore/trunk/src/interfaces/java/test/org/brlcad/geometryservice/SerialTest.java 2011-04-04 10:51:42 UTC (rev 44171) @@ -0,0 +1,65 @@ +/* + * BRL-CAD + * + * Copyright (c) 2011 United States Government as represented by + * the U.S. Army Research Laboratory. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this file; see the file named COPYING for more + * information. + */ +/** @file SerialTest.java + * + */ +package org.brlcad.geometryservice; + +import java.nio.ByteBuffer; + +import org.brlcad.geometryservice.net.ByteBufferWriter; +import org.brlcad.geometryservice.net.msg.NewSessionReqMsg; + +/** + * @author dloman + * + */ +public class SerialTest { + + /** +* @param args +*/ + public static void main(String[] args) { + // TODO Auto-generated method stub + + NewSessionReqMsg msg = new NewSessionReqMsg(Guest, Guest); + + ByteBuffer bb = ByteBuffer.allocate(1024*1024); + ByteBufferWriter wr = new ByteBufferWriter(bb); + + msg.serialize(wr); + + String out = ; + byte[] ba = bb.array(); + for (int i = 0 ; i wr.position(); ++i) { + byte b = ba[i]; + String c = Integer.toString(b 0xff, 16).toUpperCase(); + if
[brlcad-commits] SF.net SVN: brlcad:[44172] geomcore/trunk/src/interfaces/java/src/org/ brlcad/geometryservice/GSJavaInterface.java
Revision: 44172 http://brlcad.svn.sourceforge.net/brlcad/?rev=44172view=rev Author: davidloman Date: 2011-04-04 10:53:23 + (Mon, 04 Apr 2011) Log Message: --- Update for starting of worker thread. Modified Paths: -- geomcore/trunk/src/interfaces/java/src/org/brlcad/geometryservice/GSJavaInterface.java Modified: geomcore/trunk/src/interfaces/java/src/org/brlcad/geometryservice/GSJavaInterface.java === --- geomcore/trunk/src/interfaces/java/src/org/brlcad/geometryservice/GSJavaInterface.java 2011-04-04 10:51:42 UTC (rev 44171) +++ geomcore/trunk/src/interfaces/java/src/org/brlcad/geometryservice/GSJavaInterface.java 2011-04-04 10:53:23 UTC (rev 44172) @@ -105,7 +105,15 @@ return false; } + this.conn.start(); + return true; } + + public void disconnectFromHost() + { + if (this.conn != null) + this.conn.stopReceiving(); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. -- Create and publish websites with WebMatrix Use the most popular FREE web apps or write code yourself; WebMatrix provides all the features you need to develop and publish your website. http://p.sf.net/sfu/ms-webmatrix-sf ___ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits
[brlcad-commits] SF.net SVN: brlcad:[44173] brlcad/trunk/src/libged/screengrab.c
Revision: 44173 http://brlcad.svn.sourceforge.net/brlcad/?rev=44173view=rev Author: brlcad Date: 2011-04-04 12:33:11 + (Mon, 04 Apr 2011) Log Message: --- identify that this is a major encapsulation problem. this introduced a new dependency on libdm/libfb, which totally sucks and blows library encapsulation. this may not be an appropriate place for screen capture logic -- perhaps libdm API. Modified Paths: -- brlcad/trunk/src/libged/screengrab.c Modified: brlcad/trunk/src/libged/screengrab.c === --- brlcad/trunk/src/libged/screengrab.c2011-04-04 10:53:23 UTC (rev 44172) +++ brlcad/trunk/src/libged/screengrab.c2011-04-04 12:33:11 UTC (rev 44173) @@ -34,6 +34,12 @@ #include ./ged_private.h + +/* !!! FIXME: this command should not be directly utilizing LIBDM or + * LIBFB as this breaks library encapsulation. Generic functionality + * should be moved out of LIBDM into LIBICV, or be handled by the + * application logic calling this routine. + */ int ged_screen_grab(struct ged *gedp,int argc, const char *argv[]) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. -- Create and publish websites with WebMatrix Use the most popular FREE web apps or write code yourself; WebMatrix provides all the features you need to develop and publish your website. http://p.sf.net/sfu/ms-webmatrix-sf ___ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits
[brlcad-commits] SF.net SVN: brlcad:[44174] brlcad/trunk/src/libged/Makefile.am
Revision: 44174 http://brlcad.svn.sourceforge.net/brlcad/?rev=44174view=rev Author: brlcad Date: 2011-04-04 12:34:42 + (Mon, 04 Apr 2011) Log Message: --- gah, as expected, this introduced a new dependency. regression fail. maybe need a test to prevent this from occurring on all the core libraries (making calls to libraries that shouldn't be linked. Modified Paths: -- brlcad/trunk/src/libged/Makefile.am Modified: brlcad/trunk/src/libged/Makefile.am === --- brlcad/trunk/src/libged/Makefile.am 2011-04-04 12:33:11 UTC (rev 44173) +++ brlcad/trunk/src/libged/Makefile.am 2011-04-04 12:34:42 UTC (rev 44174) @@ -281,6 +281,10 @@ libged_la_SOURCES = libged_la_LDFLAGS = -version-info 19:1 -no-undefined -Wc,${FEXCEPTIONS} + + +# !!! FIXME: LIBGED should not be directly utilizing LIBDM or LIBFB as +# this breaks library encapsulation. libged_la_LIBADD = \ libged_nil.la \ ${FB} \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. -- Create and publish websites with WebMatrix Use the most popular FREE web apps or write code yourself; WebMatrix provides all the features you need to develop and publish your website. http://p.sf.net/sfu/ms-webmatrix-sf ___ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits
[brlcad-commits] SF.net SVN: brlcad:[44175] brlcad/trunk/TODO
Revision: 44175 http://brlcad.svn.sourceforge.net/brlcad/?rev=44175view=rev Author: brlcad Date: 2011-04-04 12:51:36 + (Mon, 04 Apr 2011) Log Message: --- cliff added support for name changes on red (needs NEWS). still need to indep test matrix edit. more importantly, need to undo the mess added to libged. Modified Paths: -- brlcad/trunk/TODO Modified: brlcad/trunk/TODO === --- brlcad/trunk/TODO 2011-04-04 12:34:42 UTC (rev 44174) +++ brlcad/trunk/TODO 2011-04-04 12:51:36 UTC (rev 44175) @@ -17,13 +17,13 @@ THESE TASKS SHOULD HAPPEN BEFORE THE NEXT RELEASE - -* red matrix edit +* unbreak encapsulation fail on LIBGED +* test red matrix edit + * red lists standard attributes multiple times if stored non-standard -* red doesn't preserve name changes - THESE TASKS SHOULD HAPPEN WITHIN TWO RELEASE ITERATIONS --- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. -- Create and publish websites with WebMatrix Use the most popular FREE web apps or write code yourself; WebMatrix provides all the features you need to develop and publish your website. http://p.sf.net/sfu/ms-webmatrix-sf ___ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits
[brlcad-commits] SF.net SVN: brlcad:[44177] brlcad/trunk/TODO
Revision: 44177 http://brlcad.svn.sourceforge.net/brlcad/?rev=44177view=rev Author: brlcad Date: 2011-04-04 13:21:27 + (Mon, 04 Apr 2011) Log Message: --- help cliff not go bald. Modified Paths: -- brlcad/trunk/TODO Modified: brlcad/trunk/TODO === --- brlcad/trunk/TODO 2011-04-04 13:20:10 UTC (rev 44176) +++ brlcad/trunk/TODO 2011-04-04 13:21:27 UTC (rev 44177) @@ -66,7 +66,7 @@ * group public library headers into subdirs, e.g. include/bu/bu.h, so it's clear when you're using headers from another library and - breaking encapsulation. + breaking encapsulation. this should wait until after cmake merge. * offset surfaces. provide feature edit operation to create a solid level set style object so you can represent degraded geometry This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. -- Create and publish websites with WebMatrix Use the most popular FREE web apps or write code yourself; WebMatrix provides all the features you need to develop and publish your website. http://p.sf.net/sfu/ms-webmatrix-sf ___ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits
[brlcad-commits] SF.net SVN: brlcad:[44178] brlcad/trunk/TODO
Revision: 44178 http://brlcad.svn.sourceforge.net/brlcad/?rev=44178view=rev Author: brlcad Date: 2011-04-04 13:25:32 + (Mon, 04 Apr 2011) Log Message: --- if we do the subdir, then there's risk of people going lazy and including via subdir. add a regression to make sure it's clean code using CPPFLAGS. Modified Paths: -- brlcad/trunk/TODO Modified: brlcad/trunk/TODO === --- brlcad/trunk/TODO 2011-04-04 13:21:27 UTC (rev 44177) +++ brlcad/trunk/TODO 2011-04-04 13:25:32 UTC (rev 44178) @@ -68,6 +68,10 @@ it's clear when you're using headers from another library and breaking encapsulation. this should wait until after cmake merge. +* add code regression that makes sure none of our code cheats by + including bu/bu.h -- e.g., make sure BU_CPPFLAGS et al are used so + new dependencies are obvious and intentional. + * offset surfaces. provide feature edit operation to create a solid level set style object so you can represent degraded geometry states (e.g., damage around a hole in a plate of metal might be This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. -- Create and publish websites with WebMatrix Use the most popular FREE web apps or write code yourself; WebMatrix provides all the features you need to develop and publish your website. http://p.sf.net/sfu/ms-webmatrix-sf ___ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits
[brlcad-commits] SF.net SVN: brlcad:[44180] brlcad/trunk/src/libdm
Revision: 44180 http://brlcad.svn.sourceforge.net/brlcad/?rev=44180view=rev Author: brlcad Date: 2011-04-04 14:18:11 + (Mon, 04 Apr 2011) Log Message: --- rest of revert to r44152. helps to be fully up-to-date during merge. continuation of r44179. Modified Paths: -- brlcad/trunk/src/libdm/Makefile.am Added Paths: --- brlcad/trunk/src/libdm/adc.c brlcad/trunk/src/libdm/axes.c brlcad/trunk/src/libdm/grid.c brlcad/trunk/src/libdm/labels.c brlcad/trunk/src/libdm/rect.c brlcad/trunk/src/libdm/scale.c Modified: brlcad/trunk/src/libdm/Makefile.am === --- brlcad/trunk/src/libdm/Makefile.am 2011-04-04 13:35:22 UTC (rev 44179) +++ brlcad/trunk/src/libdm/Makefile.am 2011-04-04 14:18:11 UTC (rev 44180) @@ -37,6 +37,8 @@ libdm_la_SOURCES = \ + adc.c \ + axes.c \ clip.c \ color.c \ dm-Null.c \ @@ -50,9 +52,13 @@ dm-wgl.c \ dm_obj.c \ focus.c \ + grid.c \ knob.c \ + labels.c \ options.c \ query.c \ + rect.c \ + scale.c \ tcl.c \ vers.c Copied: brlcad/trunk/src/libdm/adc.c (from rev 44152, brlcad/trunk/src/libdm/adc.c) === --- brlcad/trunk/src/libdm/adc.c(rev 0) +++ brlcad/trunk/src/libdm/adc.c2011-04-04 14:18:11 UTC (rev 44180) @@ -0,0 +1,201 @@ +/* A D C . C + * BRL-CAD + * + * Copyright (c) 1985-2011 United States Government as represented by + * the U.S. Army Research Laboratory. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this file; see the file named COPYING for more + * information. + */ +/** @file adc.c + * + */ + +#include common.h + +#include stdlib.h +#include stdio.h +#include math.h +#include string.h + +#include bio.h +#include bu.h +#include vmath.h +#include ged.h +#include dm.h + + +static void +dm_draw_ticks(struct dm *dmp, struct ged_view *gvp, fastf_t angle) +{ +fastf_t c_tdist; +fastf_t d1, d2; +fastf_t t1, t2; +fastf_t x1, Y1; /* not y1, due to conflict with math lib */ +fastf_t x2, y2; + +/* + * Position tic marks from dial 9. + */ +/* map -2048 - 2047 into 0 - 2048 * sqrt (2) */ +/* Tick distance */ +c_tdist = ((fastf_t)(gvp-gv_adc.gas_dv_dist) + GED_MAX) * M_SQRT1_2; + +d1 = c_tdist * cos (angle); +d2 = c_tdist * sin (angle); +t1 = 20.0 * sin (angle); +t2 = 20.0 * cos (angle); + +/* Quadrant 1 */ +x1 = gvp-gv_adc.gas_dv_x + d1 + t1; +Y1 = gvp-gv_adc.gas_dv_y + d2 - t2; +x2 = gvp-gv_adc.gas_dv_x + d1 -t1; +y2 = gvp-gv_adc.gas_dv_y + d2 + t2; +if (ged_clip(x1, Y1, x2, y2) == 0) { + DM_DRAW_LINE_2D(dmp, + GED_TO_PM1(x1), GED_TO_PM1(Y1) * dmp-dm_aspect, + GED_TO_PM1(x2), GED_TO_PM1(y2) * dmp-dm_aspect); +} + +/* Quadrant 2 */ +x1 = gvp-gv_adc.gas_dv_x - d2 + t2; +Y1 = gvp-gv_adc.gas_dv_y + d1 + t1; +x2 = gvp-gv_adc.gas_dv_x - d2 - t2; +y2 = gvp-gv_adc.gas_dv_y + d1 - t1; +if (ged_clip(x1, Y1, x2, y2) == 0) { + DM_DRAW_LINE_2D(dmp, + GED_TO_PM1(x1), GED_TO_PM1(Y1) * dmp-dm_aspect, + GED_TO_PM1(x2), GED_TO_PM1(y2) * dmp-dm_aspect); +} + +/* Quadrant 3 */ +x1 = gvp-gv_adc.gas_dv_x - d1 - t1; +Y1 = gvp-gv_adc.gas_dv_y - d2 + t2; +x2 = gvp-gv_adc.gas_dv_x - d1 + t1; +y2 = gvp-gv_adc.gas_dv_y - d2 - t2; +if (ged_clip(x1, Y1, x2, y2) == 0) { + DM_DRAW_LINE_2D(dmp, + GED_TO_PM1(x1), GED_TO_PM1(Y1) * dmp-dm_aspect, + GED_TO_PM1(x2), GED_TO_PM1(y2) * dmp-dm_aspect); +} + +/* Quadrant 4 */ +x1 = gvp-gv_adc.gas_dv_x + d2 - t2; +Y1 = gvp-gv_adc.gas_dv_y - d1 - t1; +x2 = gvp-gv_adc.gas_dv_x + d2 + t2; +y2 = gvp-gv_adc.gas_dv_y - d1 + t1; +if (ged_clip(x1, Y1, x2, y2) == 0) { + DM_DRAW_LINE_2D(dmp, + GED_TO_PM1(x1), GED_TO_PM1(Y1) * dmp-dm_aspect, + GED_TO_PM1(x2), GED_TO_PM1(y2) * dmp-dm_aspect); +} +} + + +/** + * Compute and display the angle/distance cursor. + */ +void +dm_draw_adc(struct dm *dmp, struct ged_view *gvp) +{ +fastf_t x1, Y1;/* not y1, due to conflict with math lib */ +fastf_t x2, y2; +fastf_t x3, y3;
[brlcad-commits] SF.net SVN: brlcad:[44181] brlcad/trunk/src/libged/ged.c
Revision: 44181 http://brlcad.svn.sourceforge.net/brlcad/?rev=44181view=rev Author: bob1961 Date: 2011-04-04 14:27:26 + (Mon, 04 Apr 2011) Log Message: --- typo in comment Modified Paths: -- brlcad/trunk/src/libged/ged.c Modified: brlcad/trunk/src/libged/ged.c === --- brlcad/trunk/src/libged/ged.c 2011-04-04 14:18:11 UTC (rev 44180) +++ brlcad/trunk/src/libged/ged.c 2011-04-04 14:27:26 UTC (rev 44181) @@ -19,7 +19,7 @@ */ /** @addtogroup libged */ /** @{ */ -/** @file wdb_obj.c +/** @file ged.c * * A quasi-object-oriented database interface. * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. -- Create and publish websites with WebMatrix Use the most popular FREE web apps or write code yourself; WebMatrix provides all the features you need to develop and publish your website. http://p.sf.net/sfu/ms-webmatrix-sf ___ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits
[brlcad-commits] SF.net SVN: brlcad:[44182] geomcore/trunk
Revision: 44182 http://brlcad.svn.sourceforge.net/brlcad/?rev=44182view=rev Author: erikgreenwald Date: 2011-04-04 14:45:12 + (Mon, 04 Apr 2011) Log Message: --- add GeometryBoTReqMsg Modified Paths: -- geomcore/trunk/src/libNet/CMakeLists.txt Added Paths: --- geomcore/trunk/include/GeometryBoTReqMsg.h geomcore/trunk/src/libNet/netMsg/GeometryBoTReqMsg.cxx Added: geomcore/trunk/include/GeometryBoTReqMsg.h === --- geomcore/trunk/include/GeometryBoTReqMsg.h (rev 0) +++ geomcore/trunk/include/GeometryBoTReqMsg.h 2011-04-04 14:45:12 UTC (rev 44182) @@ -0,0 +1,78 @@ +/*G E O M E T R Y B O T R E Q M S G . H + * BRL-CAD + * + * Copyright (c) 2011 United States Government as represented by + * the U.S. Army Research Laboratory. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this file; see the file named COPYING for more + * information. + */ + +/** @file GeometryBoTReqMsg.h + * + * Request the geometry as BoTs, with exactly one BoT primitive per + * region. + */ + +#ifndef __GEOMETRYREQMSG_H__ +#define __GEOMETRYREQMSG_H__ + +#include GenericOneStringMsg.h + +class GeometryBoTReqMsg : public GenericOneStringMsg +{ +public: + + /* Only Constructor */ + GeometryBoTReqMsg(std::string path, bool recurse); + + /* Reply Constructor */ + GeometryBoTReqMsg(NetMsg* msg, std::string path, bool recurse); + + /* Deserializing Constructor */ + GeometryBoTReqMsg(DataStream* ds, Portal* origin); + + /* Destructor */ + virtual ~GeometryBoTReqMsg(); + + virtual std::string toString(); + + /* +*Getters n Setters +*/ + bool getRecurse(); + + std::string getPath(); + +private: + bool recurse; + + bool _serialize(DataStream* ds); + bool _equals(const NetMsg msg); + + /* Disable copy cstr and =operator */ + GeometryBoTReqMsg(GeometryBoTReqMsg const):GenericOneStringMsg(0,){}; + GeometryBoTReqMsg operator=(GeometryBoTReqMsg const){}; +}; + +#endif /* __GEOMETRYREQMSG_H__ */ + +/* + * Local Variables: *** + * mode: C + * tab-width: 8 + * c-basic-offset: 4 *** + * indent-tabs-mode: t + * End: *** + * ex: shiftwidth=4 tabstop=8 +*/ Property changes on: geomcore/trunk/include/GeometryBoTReqMsg.h ___ Added: svn:mime-type + text/plain Added: svn:eol-style + native Modified: geomcore/trunk/src/libNet/CMakeLists.txt === --- geomcore/trunk/src/libNet/CMakeLists.txt2011-04-04 14:27:26 UTC (rev 44181) +++ geomcore/trunk/src/libNet/CMakeLists.txt2011-04-04 14:45:12 UTC (rev 44182) @@ -49,6 +49,7 @@ netMsg/SessionInfoMsg.cxx netMsg/NewNodeOnNetMsg.cxx netMsg/GeometryReqMsg.cxx + netMsg/GeometryBoTReqMsg.cxx netMsg/GeometryManifestMsg.cxx netMsg/GeometryChunkMsg.cxx netMsg/PingMsg.cxx @@ -97,6 +98,7 @@ SessionInfoMsg.h NewNodeOnNetMsg.h GeometryReqMsg.h + GeometryBoTReqMsg.h GeometryManifestMsg.h GeometryChunkMsg.h PingMsg.h Added: geomcore/trunk/src/libNet/netMsg/GeometryBoTReqMsg.cxx === --- geomcore/trunk/src/libNet/netMsg/GeometryBoTReqMsg.cxx (rev 0) +++ geomcore/trunk/src/libNet/netMsg/GeometryBoTReqMsg.cxx 2011-04-04 14:45:12 UTC (rev 44182) @@ -0,0 +1,103 @@ +/* G E O M E T R Y B O T R E Q M S G . C X X + * BRL-CAD + * + * Copyright (c) 2011 United States Government as represented by + * the U.S. Army Research Laboratory. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this file; see the file named COPYING for more + * information. + */ + +/** @file GeometryBoTReqMsg.cxx + * + *
[brlcad-commits] SF.net SVN: brlcad:[44183] geomcore/trunk/src/interfaces/cl
Revision: 44183 http://brlcad.svn.sourceforge.net/brlcad/?rev=44183view=rev Author: erikgreenwald Date: 2011-04-04 14:52:00 + (Mon, 04 Apr 2011) Log Message: --- add geombotreqmsg Modified Paths: -- geomcore/trunk/src/interfaces/cl/gsclient.lisp geomcore/trunk/src/interfaces/cl/gsnet.lisp geomcore/trunk/src/interfaces/cl/gsserver.lisp Modified: geomcore/trunk/src/interfaces/cl/gsclient.lisp === --- geomcore/trunk/src/interfaces/cl/gsclient.lisp 2011-04-04 14:45:12 UTC (rev 44182) +++ geomcore/trunk/src/interfaces/cl/gsclient.lisp 2011-04-04 14:52:00 UTC (rev 44183) @@ -12,13 +12,13 @@ ; ;; this should probably check to make sure things are ok -(defun getgeom (s st uri) - (gsnet:writemsg s (make-instance 'gsnet:geomreqmsg :uri uri)) +(defun getgeom (s st uri key (bot '())) + (gsnet:writemsg s (make-instance (if bot 'gsnet:geombotreqmsg 'gsnet:geomreqmsg) :uri uri)) (loop for i from 0 to (length (gsnet::manifest (gsnet:readmsg s))) do (write-sequence (gsnet::chunk (gsnet:readmsg s)) st))) -(defun getgeomfile (s file uri) +(defun getgeomfile (s file uri key (bot '())) (with-open-file (out file :element-type '(unsigned-byte 8) :direction :output) -(getgeom s out uri))) +(getgeom s out uri :bot bot))) (defun ping (s) (gsnet:writemsg s (make-instance 'gsnet:pingmsg)) Modified: geomcore/trunk/src/interfaces/cl/gsnet.lisp === --- geomcore/trunk/src/interfaces/cl/gsnet.lisp 2011-04-04 14:45:12 UTC (rev 44182) +++ geomcore/trunk/src/interfaces/cl/gsnet.lisp 2011-04-04 14:52:00 UTC (rev 44183) @@ -4,7 +4,7 @@ (defpackage :gsnet (:use :cl :sb-unix) (:export :connect :writemsg :readmsg - :session :message :pingmsg :pongmsg :nodenamemsg :loginmsg :logoutmsg :rualivemsg :imalivemsg :okmsg :failmsg :geomreqmsg :geommanifestmsg :geomchunkmsg + :session :message :pingmsg :pongmsg :nodenamemsg :loginmsg :logoutmsg :rualivemsg :imalivemsg :okmsg :failmsg :geomreqmsg :geombotreqmsg :geommanifestmsg :geomchunkmsg :manifest :remotenode :sessionuuid :socket :strm :usec)) @@ -28,6 +28,7 @@ (defconstant +gsnsr+ #x0300) ; New Session Request (defconstant +gsinfo+#x0305) ; Session Information (defconstant +gsgr+ #x0400) ; Geometry Request +(defconstant +gsgbr+ #x0401) ; Geometry BoT Request (defconstant +gsgm+ #x0405) ; Geometry Manifest (defconstant +gsgc+ #x0410) ; Geometry Chunk @@ -90,6 +91,7 @@ ((= type +gsrualive+) (writemsg s (make-instance 'imalivemsg)) t) ; automatically respond to rualive ((= type +gsimalive+) (make-instance 'imalivemsg)) ((= type +gsgr+) (make-instance 'geomreqmsg :uri (readgsstring (strm s + ((= type +gsgbr+) (make-instance 'geombotreqmsg :uri (readgsstring (strm s ((= type +gsgm+) (make-instance 'geommanifestmsg :manifest (loop for i from 1 to (readuint32 (strm s)) collect (readgsstring (strm s) ((= type +gsgc+) (make-instance 'geomchunkmsg :chunk (let ((arr (make-array (+ (readuint32 (strm s)) 1) :element-type '(unsigned-byte 8 @@ -153,6 +155,10 @@ (defmethod writemsg :before (s (m geomreqmsg)) (setf (msgtype m) +gsgr+) (setf (len m) (+ (length (uri m)) 4))) (defmethod writemsg :after (s (m geomreqmsg)) (writegsstring (strm s) (uri m))) +(defclass geombotreqmsg (message) ((uri :accessor uri :initarg :uri :initform ))) +(defmethod writemsg :before (s (m geombotreqmsg)) (setf (msgtype m) +gsgr+) (setf (len m) (+ (length (uri m)) 4))) +(defmethod writemsg :after (s (m geombotreqmsg)) (writegsstring (strm s) (uri m))) + (defclass geommanifestmsg (message) ((manifest :accessor manifest :initarg :manifest))) (defmethod writemsg :before (s (m geommanifestmsg)) (setf (msgtype m) +gsgm+) (setf (len m) (apply #'+ 4 (mapcar (lambda (x) (+ (length x) 4)) (manifest m) (defmethod writemsg :after (s (m geommanifestmsg)) (writeuint32 (strm s) (length (manifest m))) (loop for i in (manifest m) do (writegsstring (strm s) i))) Modified: geomcore/trunk/src/interfaces/cl/gsserver.lisp === --- geomcore/trunk/src/interfaces/cl/gsserver.lisp 2011-04-04 14:45:12 UTC (rev 44182) +++ geomcore/trunk/src/interfaces/cl/gsserver.lisp 2011-04-04 14:52:00 UTC (rev 44183) @@ -21,6 +21,9 @@ (read-sequence arr stream) (gsnet:writemsg s (make-instance 'gsnet:geomchunkmsg :chunk arr :reuuid reuuid) +(defun send-bot-geom (s reuuid filename) + (gsnet:writemsg s (make-instance 'gsnet:failmsg))) + (defun handle-connection (st) (let ((s (make-instance 'gsnet:session :stream st))) @@ -40,6 +43,7 @@ (let ((m (gsnet:readmsg s)))
[brlcad-commits] SF.net SVN: brlcad:[44185] geomcore/trunk/src/interfaces/cl/gsserver.lisp
Revision: 44185 http://brlcad.svn.sourceforge.net/brlcad/?rev=44185view=rev Author: erikgreenwald Date: 2011-04-04 17:03:41 + (Mon, 04 Apr 2011) Log Message: --- Enable multi-threading. New 'stop' function. Hoist session loop. Use specified dir for geometry instead of cwd. Modified Paths: -- geomcore/trunk/src/interfaces/cl/gsserver.lisp Modified: geomcore/trunk/src/interfaces/cl/gsserver.lisp === --- geomcore/trunk/src/interfaces/cl/gsserver.lisp 2011-04-04 15:23:59 UTC (rev 44184) +++ geomcore/trunk/src/interfaces/cl/gsserver.lisp 2011-04-04 17:03:41 UTC (rev 44185) @@ -3,10 +3,11 @@ (defpackage :gsserver (:use :cl :sb-unix) - (:export :run)) + (:export :run :stop)) (in-package :gsserver) +(defparameter +dbdir+ /usr/brlcad/share/db/) (defparameter +nodename+ Spokelse) (defun authenticate (s user pass) @@ -16,7 +17,7 @@ (defun send-geom (s reuuid filename) (gsnet:writemsg s (make-instance 'gsnet:geommanifestmsg :manifest (list filename))) - (with-open-file (stream filename :element-type '(unsigned-byte 8) :if-does-not-exist :error) + (with-open-file (stream (concatenate +dbdir+ filename) :element-type '(unsigned-byte 8) :if-does-not-exist :error) (let ((arr (make-array (file-length stream) :element-type '(unsigned-byte 8 (read-sequence arr stream) (gsnet:writemsg s (make-instance 'gsnet:geomchunkmsg :chunk arr :reuuid reuuid) @@ -24,15 +25,14 @@ (defun send-bot-geom (s reuuid filename) (gsnet:writemsg s (make-instance 'gsnet:failmsg))) -(defun connection-loop (s) - (loop do - (let ((m (gsnet:readmsg s))) -(cond - ((equalp (type-of m) 'gsnet:geomreqmsg) (send-geom s (gsnet::uuid m) (gsnet::uri m))) - ((equalp (type-of m) 'gsnet:geombotreqmsg) (send-bot-geom s (gsnet::uuid m) (gsnet::uri m))) - ((equalp m t) '()) - ((equalp m '()) (return-from connection-loop '())) - (t (format t Unhandled thing ~a~% (type-of m))) +(defun handle-packet (s m) + (format t ~a~% (type-of m)) + (cond +((equalp (type-of m) 'gsnet:geomreqmsg) (send-geom s (gsnet::uuid m) (gsnet::uri m))) +((equalp (type-of m) 'gsnet:geombotreqmsg) (send-bot-geom s (gsnet::uuid m) (gsnet::uri m))) +((equalp m t) m) +((equalp m '()) m) +(t (format t Unhandled thing ~a~% (type-of m) (defun handle-connection (st) (let ((s (make-instance 'gsnet:session :stream st))) @@ -49,12 +49,18 @@ (gsnet:writemsg s (make-instance 'gsnet::infomsg :sessionuuid (gsnet::sessionuuid s))) ;;; main loop -(connection-loop s))) +(loop while (handle-packet s (gsnet:readmsg s) ; ; public interface ; +(defun run (key (listenhost #(127 0 0 1)) (port 5309)) + (usocket:socket-server listenhost port #'handle-connection '() :element-type 'unsigned-byte :multi-threading t :in-new-thread t)) -(defun run (key (listenhost #(127 0 0 1)) (port 5309)) - (usocket:socket-server listenhost port #'handle-connection '() :element-type 'unsigned-byte)) +(defun stop () + (map 'nil (lambda (th) +(cond + ((equalp (sb-thread:thread-name th) USOCKET Client) (sb-thread:terminate-thread th)) + ((equalp (sb-thread:thread-name th) USOCKET Server) (sb-thread:terminate-thread th + (sb-thread:list-all-threads))) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. -- Create and publish websites with WebMatrix Use the most popular FREE web apps or write code yourself; WebMatrix provides all the features you need to develop and publish your website. http://p.sf.net/sfu/ms-webmatrix-sf ___ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits
[brlcad-commits] SF.net SVN: brlcad:[44186] geomcore/trunk/src/interfaces/cl
Revision: 44186 http://brlcad.svn.sourceforge.net/brlcad/?rev=44186view=rev Author: erikgreenwald Date: 2011-04-04 17:56:01 + (Mon, 04 Apr 2011) Log Message: --- fix off by one weirdness in chunk request Modified Paths: -- geomcore/trunk/src/interfaces/cl/gsclient.lisp geomcore/trunk/src/interfaces/cl/gsnet.lisp geomcore/trunk/src/interfaces/cl/gsserver.lisp Modified: geomcore/trunk/src/interfaces/cl/gsclient.lisp === --- geomcore/trunk/src/interfaces/cl/gsclient.lisp 2011-04-04 17:03:41 UTC (rev 44185) +++ geomcore/trunk/src/interfaces/cl/gsclient.lisp 2011-04-04 17:56:01 UTC (rev 44186) @@ -3,7 +3,7 @@ (defpackage :gsclient (:use :cl :sb-unix) - (:export :login :logout :ping :getgeom)) + (:export :login :logout :ping :getgeom :getgeomfile)) (in-package :gsclient) @@ -14,7 +14,7 @@ ;; this should probably check to make sure things are ok (defun getgeom (s st uri key (bot '())) (gsnet:writemsg s (make-instance (if bot 'gsnet:geombotreqmsg 'gsnet:geomreqmsg) :uri uri)) - (loop for i from 0 to (length (gsnet::manifest (gsnet:readmsg s))) do (write-sequence (gsnet::chunk (gsnet:readmsg s)) st))) + (loop for i from 1 to (length (gsnet::manifest (gsnet:readmsg s))) do (write-sequence (gsnet::chunk (gsnet:readmsg s)) st :end (- (length ch) 1 (defun getgeomfile (s file uri key (bot '())) (with-open-file (out file :element-type '(unsigned-byte 8) :direction :output) Modified: geomcore/trunk/src/interfaces/cl/gsnet.lisp === --- geomcore/trunk/src/interfaces/cl/gsnet.lisp 2011-04-04 17:03:41 UTC (rev 44185) +++ geomcore/trunk/src/interfaces/cl/gsnet.lisp 2011-04-04 17:56:01 UTC (rev 44186) @@ -94,9 +94,9 @@ ((= type +gsgbr+) (make-instance 'geombotreqmsg :uri (readgsstring (strm s ((= type +gsgm+) (make-instance 'geommanifestmsg :manifest (loop for i from 1 to (readuint32 (strm s)) collect (readgsstring (strm s) ((= type +gsgc+) (make-instance 'geomchunkmsg :chunk - (let ((arr (make-array (+ (readuint32 (strm s)) 1) :element-type '(unsigned-byte 8 - (read-sequence arr (strm s)) - arr))) + (let ((arr (make-array (+ (readuint32 (strm s) 1) :element-type '(unsigned-byte 8 + (read-sequence arr (strm s)) + arr ((= type +gsnsr+) (make-instance 'loginmsg :username (readgsstring (strm s)) :password (readgsstring (strm s (t (format t Unknown type! ~x~% type '())) @@ -165,4 +165,4 @@ (defclass geomchunkmsg (message) ((chunk :accessor chunk :initarg :chunk))) (defmethod writemsg :before (s (m geomchunkmsg)) (setf (msgtype m) +gsgc+) (setf (len m) (length (chunk m -(defmethod writemsg :after (s (m geomchunkmsg)) (writeuint32 (strm s) (length (chunk m))) (write-sequence (chunk m) (strm s))) +(defmethod writemsg :after (s (m geomchunkmsg)) (writeuint32 (strm s) (- (length (chunk m)) 1)) (write-sequence (chunk m) (strm s))) Modified: geomcore/trunk/src/interfaces/cl/gsserver.lisp === --- geomcore/trunk/src/interfaces/cl/gsserver.lisp 2011-04-04 17:03:41 UTC (rev 44185) +++ geomcore/trunk/src/interfaces/cl/gsserver.lisp 2011-04-04 17:56:01 UTC (rev 44186) @@ -17,8 +17,8 @@ (defun send-geom (s reuuid filename) (gsnet:writemsg s (make-instance 'gsnet:geommanifestmsg :manifest (list filename))) - (with-open-file (stream (concatenate +dbdir+ filename) :element-type '(unsigned-byte 8) :if-does-not-exist :error) -(let ((arr (make-array (file-length stream) :element-type '(unsigned-byte 8 + (with-open-file (stream (concatenate 'string +dbdir+ filename) :element-type '(unsigned-byte 8) :if-does-not-exist :error) +(let ((arr (make-array (+ (file-length stream) 1) :element-type '(unsigned-byte 8 (read-sequence arr stream) (gsnet:writemsg s (make-instance 'gsnet:geomchunkmsg :chunk arr :reuuid reuuid) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. -- Create and publish websites with WebMatrix Use the most popular FREE web apps or write code yourself; WebMatrix provides all the features you need to develop and publish your website. http://p.sf.net/sfu/ms-webmatrix-sf ___ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits
[brlcad-commits] SF.net SVN: brlcad:[44187] geomcore/trunk/src/interfaces/cl/gsserver.lisp
Revision: 44187 http://brlcad.svn.sourceforge.net/brlcad/?rev=44187view=rev Author: erikgreenwald Date: 2011-04-04 18:04:07 + (Mon, 04 Apr 2011) Log Message: --- remove packet type display Modified Paths: -- geomcore/trunk/src/interfaces/cl/gsserver.lisp Modified: geomcore/trunk/src/interfaces/cl/gsserver.lisp === --- geomcore/trunk/src/interfaces/cl/gsserver.lisp 2011-04-04 17:56:01 UTC (rev 44186) +++ geomcore/trunk/src/interfaces/cl/gsserver.lisp 2011-04-04 18:04:07 UTC (rev 44187) @@ -26,7 +26,6 @@ (gsnet:writemsg s (make-instance 'gsnet:failmsg))) (defun handle-packet (s m) - (format t ~a~% (type-of m)) (cond ((equalp (type-of m) 'gsnet:geomreqmsg) (send-geom s (gsnet::uuid m) (gsnet::uri m))) ((equalp (type-of m) 'gsnet:geombotreqmsg) (send-bot-geom s (gsnet::uuid m) (gsnet::uri m))) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. -- Create and publish websites with WebMatrix Use the most popular FREE web apps or write code yourself; WebMatrix provides all the features you need to develop and publish your website. http://p.sf.net/sfu/ms-webmatrix-sf ___ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits
[brlcad-commits] SF.net SVN: brlcad:[44188] geomcore/trunk/src/interfaces/cl
Revision: 44188 http://brlcad.svn.sourceforge.net/brlcad/?rev=44188view=rev Author: erikgreenwald Date: 2011-04-04 18:04:41 + (Mon, 04 Apr 2011) Log Message: --- fix malformed expressions Modified Paths: -- geomcore/trunk/src/interfaces/cl/gsclient.lisp geomcore/trunk/src/interfaces/cl/gsnet.lisp Modified: geomcore/trunk/src/interfaces/cl/gsclient.lisp === --- geomcore/trunk/src/interfaces/cl/gsclient.lisp 2011-04-04 18:04:07 UTC (rev 44187) +++ geomcore/trunk/src/interfaces/cl/gsclient.lisp 2011-04-04 18:04:41 UTC (rev 44188) @@ -14,7 +14,7 @@ ;; this should probably check to make sure things are ok (defun getgeom (s st uri key (bot '())) (gsnet:writemsg s (make-instance (if bot 'gsnet:geombotreqmsg 'gsnet:geomreqmsg) :uri uri)) - (loop for i from 1 to (length (gsnet::manifest (gsnet:readmsg s))) do (write-sequence (gsnet::chunk (gsnet:readmsg s)) st :end (- (length ch) 1 + (loop for i from 1 to (length (gsnet::manifest (gsnet:readmsg s))) do (let ((ch (gsnet::chunk (gsnet:readmsg s (write-sequence ch st :end (- (length ch) 1) (defun getgeomfile (s file uri key (bot '())) (with-open-file (out file :element-type '(unsigned-byte 8) :direction :output) Modified: geomcore/trunk/src/interfaces/cl/gsnet.lisp === --- geomcore/trunk/src/interfaces/cl/gsnet.lisp 2011-04-04 18:04:07 UTC (rev 44187) +++ geomcore/trunk/src/interfaces/cl/gsnet.lisp 2011-04-04 18:04:41 UTC (rev 44188) @@ -94,9 +94,9 @@ ((= type +gsgbr+) (make-instance 'geombotreqmsg :uri (readgsstring (strm s ((= type +gsgm+) (make-instance 'geommanifestmsg :manifest (loop for i from 1 to (readuint32 (strm s)) collect (readgsstring (strm s) ((= type +gsgc+) (make-instance 'geomchunkmsg :chunk - (let ((arr (make-array (+ (readuint32 (strm s) 1) :element-type '(unsigned-byte 8 + (let ((arr (make-array (+ (readuint32 (strm s)) 1) :element-type '(unsigned-byte 8 (read-sequence arr (strm s)) - arr + arr))) ((= type +gsnsr+) (make-instance 'loginmsg :username (readgsstring (strm s)) :password (readgsstring (strm s (t (format t Unknown type! ~x~% type '())) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. -- Create and publish websites with WebMatrix Use the most popular FREE web apps or write code yourself; WebMatrix provides all the features you need to develop and publish your website. http://p.sf.net/sfu/ms-webmatrix-sf ___ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits
[brlcad-commits] SF.net SVN: brlcad:[44190] brlcad/branches/cmake/src/libtclcad/CMakeLists. txt
Revision: 44190 http://brlcad.svn.sourceforge.net/brlcad/?rev=44190view=rev Author: starseeker Date: 2011-04-04 18:47:43 + (Mon, 04 Apr 2011) Log Message: --- Update libtclcad CMakeLists.txt file Modified Paths: -- brlcad/branches/cmake/src/libtclcad/CMakeLists.txt Modified: brlcad/branches/cmake/src/libtclcad/CMakeLists.txt === --- brlcad/branches/cmake/src/libtclcad/CMakeLists.txt 2011-04-04 18:39:00 UTC (rev 44189) +++ brlcad/branches/cmake/src/libtclcad/CMakeLists.txt 2011-04-04 18:47:43 UTC (rev 44190) @@ -37,7 +37,6 @@ tclcad.c tclcadAutoPath.c tkImgFmtPIX.c - ged_obj.c ) BRLCAD_ADDLIB(libtclcad ${LIBTCLCAD_SRCS} libged libdm ${TCLCAD_XLIBS} ${X11_Xi_LIB}) SET_TARGET_PROPERTIES(libtclcad PROPERTIES VERSION 19.0.1 SOVERSION 19) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. -- Create and publish websites with WebMatrix Use the most popular FREE web apps or write code yourself; WebMatrix provides all the features you need to develop and publish your website. http://p.sf.net/sfu/ms-webmatrix-sf ___ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits
[brlcad-commits] SF.net SVN: brlcad:[44192] brlcad/trunk
Revision: 44192 http://brlcad.svn.sourceforge.net/brlcad/?rev=44192view=rev Author: bob1961 Date: 2011-04-04 19:16:06 + (Mon, 04 Apr 2011) Log Message: --- Mods to get libtclcad compiling again. Modified Paths: -- brlcad/trunk/include/ged.h brlcad/trunk/include/tclcad.h brlcad/trunk/src/libtclcad/tclcad_obj.c Modified: brlcad/trunk/include/ged.h === --- brlcad/trunk/include/ged.h 2011-04-04 18:49:53 UTC (rev 44191) +++ brlcad/trunk/include/ged.h 2011-04-04 19:16:06 UTC (rev 44192) @@ -35,6 +35,7 @@ #endif #include raytrace.h +#include fbserv_obj.h __BEGIN_DECLS @@ -73,6 +74,7 @@ #define GED_DISPLAY_LIST_NULL (struct ged_display_list *)0 #define GED_DRAWABLE_NULL (struct ged_drawable *)0 #define GED_VIEW_NULL (struct ged_view *)0 +#define GED_OBJ_NULL (struct ged_obj *)0 #define GED_VIEW_OBJ_NULL ((struct view_obj *)0) #define GED_RESULT_NULL ((void *)0) @@ -97,6 +99,11 @@ #define GED_PTRANSLATE_MODE 14 #define GED_RECTANGLE_MODE 15 +#define GED_OBJ_FB_MODE_OFF 0 +#define GED_OBJ_FB_MODE_UNDERLAY 1 +#define GED_OBJ_FB_MODE_INTERLAY 2 +#define GED_OBJ_FB_MODE_OVERLAY 3 + /** * S E M A P H O R E S * @@ -451,7 +458,6 @@ #endif }; - struct ged_view { struct bu_list l; fastf_tgv_scale; @@ -501,7 +507,6 @@ struct ged_rect_state gv_rect; }; - struct ged { struct bu_list l; struct rt_wdb *ged_wdbp; @@ -560,7 +565,28 @@ intvo_zclip; }; +struct ged_dm_view { +struct bu_list l; +struct bu_vls gdv_callback; +struct bu_vls gdv_name; +struct ged_view*gdv_view; +struct dm *gdv_dmp; +struct fbserv_obj gdv_fbs; +struct ged_obj *gdv_gop; /* Pointer back to its ged object */ +}; +struct ged_obj { +struct ged *go_gedp; +struct ged_dm_view go_head_views; +struct bu_vls go_name; +struct bu_observer go_observers; +struct bu_vls go_more_args_callback; +struct bu_vls go_rt_end_callback; +struct bu_vls *go_prim_label_list; +intgo_prim_label_list_size; +intgo_refresh_on; +}; + /* defined in adc.c */ GED_EXPORT BU_EXTERN(void ged_calc_adc_pos, (struct ged_view *gvp)); @@ -620,6 +646,14 @@ GED_EXPORT BU_EXTERN(void ged_view_init, (struct ged_view *gvp)); +/* defined in go_refresh.c */ +GED_EXPORT BU_EXTERN(void go_refresh, +(struct ged_obj *gop, + struct ged_dm_view *gdvp)); +GED_EXPORT BU_EXTERN(void go_refresh_draw, +(struct ged_obj *gop, + struct ged_dm_view *gdvp)); + /* defined in grid.c */ GED_EXPORT BU_EXTERN(void ged_snap_to_grid, (struct ged *gedp, fastf_t *vx, fastf_t *vy)); Modified: brlcad/trunk/include/tclcad.h === --- brlcad/trunk/include/tclcad.h 2011-04-04 18:49:53 UTC (rev 44191) +++ brlcad/trunk/include/tclcad.h 2011-04-04 19:16:06 UTC (rev 44192) @@ -61,39 +61,14 @@ #define TCLCAD_EXTERN(type_and_name, args) extern type_and_name args #define TCLCAD_ARGS(args) args -#define GED_OBJ_NUM_VIEWS 4 -#define GED_OBJ_FB_MODE_OFF 0 -#define GED_OBJ_FB_MODE_UNDERLAY 1 -#define GED_OBJ_FB_MODE_INTERLAY 2 -#define GED_OBJ_FB_MODE_OVERLAY 3 - -struct ged_dm_view { -struct bu_list l; -struct bu_vls gdv_callback; -struct bu_vls gdv_name; -struct ged_view*gdv_view; -struct dm *gdv_dmp; -struct fbserv_obj gdv_fbs; -struct ged_obj *gdv_gop; /* Pointer back to its ged object */ -}; - -struct ged_obj { +struct tclcad_obj { struct bu_list l; -struct ged *go_gedp; -struct ged_dm_view go_head_views; -struct bu_vls go_name; -struct bu_observer go_observers; -struct bu_vls go_more_args_callback; -struct bu_vls go_rt_end_callback; -struct bu_vls *go_prim_label_list; -intgo_prim_label_list_size; -intgo_refresh_on; -Tcl_Interp *go_interp; +struct ged_obj *to_gop; +Tcl_Interp *to_interp; }; -#define GED_OBJ_NULL (struct ged_obj *)0 +#define TCLCAD_OBJ_NULL (struct tclcad_obj *)0 - TCLCAD_EXPORT TCLCAD_EXTERN(int tclcad_tk_setup, (Tcl_Interp *interp)); TCLCAD_EXPORT TCLCAD_EXTERN(void tclcad_auto_path, (Tcl_Interp *interp)); TCLCAD_EXPORT TCLCAD_EXTERN(void tclcad_tcl_library, (Tcl_Interp *interp)); Modified: brlcad/trunk/src/libtclcad/tclcad_obj.c === ---
[brlcad-commits] SF.net SVN: brlcad:[44193] brlcad/branches/cmake
Revision: 44193 http://brlcad.svn.sourceforge.net/brlcad/?rev=44193view=rev Author: starseeker Date: 2011-04-04 19:27:11 + (Mon, 04 Apr 2011) Log Message: --- MFC r44192 Modified Paths: -- brlcad/branches/cmake/include/ged.h brlcad/branches/cmake/include/tclcad.h brlcad/branches/cmake/src/libtclcad/tclcad_obj.c Modified: brlcad/branches/cmake/include/ged.h === --- brlcad/branches/cmake/include/ged.h 2011-04-04 19:16:06 UTC (rev 44192) +++ brlcad/branches/cmake/include/ged.h 2011-04-04 19:27:11 UTC (rev 44193) @@ -35,6 +35,7 @@ #endif #include raytrace.h +#include fbserv_obj.h __BEGIN_DECLS @@ -73,6 +74,7 @@ #define GED_DISPLAY_LIST_NULL (struct ged_display_list *)0 #define GED_DRAWABLE_NULL (struct ged_drawable *)0 #define GED_VIEW_NULL (struct ged_view *)0 +#define GED_OBJ_NULL (struct ged_obj *)0 #define GED_VIEW_OBJ_NULL ((struct view_obj *)0) #define GED_RESULT_NULL ((void *)0) @@ -97,6 +99,11 @@ #define GED_PTRANSLATE_MODE 14 #define GED_RECTANGLE_MODE 15 +#define GED_OBJ_FB_MODE_OFF 0 +#define GED_OBJ_FB_MODE_UNDERLAY 1 +#define GED_OBJ_FB_MODE_INTERLAY 2 +#define GED_OBJ_FB_MODE_OVERLAY 3 + /** * S E M A P H O R E S * @@ -451,7 +458,6 @@ #endif }; - struct ged_view { struct bu_list l; fastf_tgv_scale; @@ -501,7 +507,6 @@ struct ged_rect_state gv_rect; }; - struct ged { struct bu_list l; struct rt_wdb *ged_wdbp; @@ -560,7 +565,28 @@ intvo_zclip; }; +struct ged_dm_view { +struct bu_list l; +struct bu_vls gdv_callback; +struct bu_vls gdv_name; +struct ged_view*gdv_view; +struct dm *gdv_dmp; +struct fbserv_obj gdv_fbs; +struct ged_obj *gdv_gop; /* Pointer back to its ged object */ +}; +struct ged_obj { +struct ged *go_gedp; +struct ged_dm_view go_head_views; +struct bu_vls go_name; +struct bu_observer go_observers; +struct bu_vls go_more_args_callback; +struct bu_vls go_rt_end_callback; +struct bu_vls *go_prim_label_list; +intgo_prim_label_list_size; +intgo_refresh_on; +}; + /* defined in adc.c */ GED_EXPORT BU_EXTERN(void ged_calc_adc_pos, (struct ged_view *gvp)); @@ -620,6 +646,14 @@ GED_EXPORT BU_EXTERN(void ged_view_init, (struct ged_view *gvp)); +/* defined in go_refresh.c */ +GED_EXPORT BU_EXTERN(void go_refresh, +(struct ged_obj *gop, + struct ged_dm_view *gdvp)); +GED_EXPORT BU_EXTERN(void go_refresh_draw, +(struct ged_obj *gop, + struct ged_dm_view *gdvp)); + /* defined in grid.c */ GED_EXPORT BU_EXTERN(void ged_snap_to_grid, (struct ged *gedp, fastf_t *vx, fastf_t *vy)); Modified: brlcad/branches/cmake/include/tclcad.h === --- brlcad/branches/cmake/include/tclcad.h 2011-04-04 19:16:06 UTC (rev 44192) +++ brlcad/branches/cmake/include/tclcad.h 2011-04-04 19:27:11 UTC (rev 44193) @@ -61,39 +61,14 @@ #define TCLCAD_EXTERN(type_and_name, args) extern type_and_name args #define TCLCAD_ARGS(args) args -#define GED_OBJ_NUM_VIEWS 4 -#define GED_OBJ_FB_MODE_OFF 0 -#define GED_OBJ_FB_MODE_UNDERLAY 1 -#define GED_OBJ_FB_MODE_INTERLAY 2 -#define GED_OBJ_FB_MODE_OVERLAY 3 - -struct ged_dm_view { -struct bu_list l; -struct bu_vls gdv_callback; -struct bu_vls gdv_name; -struct ged_view*gdv_view; -struct dm *gdv_dmp; -struct fbserv_obj gdv_fbs; -struct ged_obj *gdv_gop; /* Pointer back to its ged object */ -}; - -struct ged_obj { +struct tclcad_obj { struct bu_list l; -struct ged *go_gedp; -struct ged_dm_view go_head_views; -struct bu_vls go_name; -struct bu_observer go_observers; -struct bu_vls go_more_args_callback; -struct bu_vls go_rt_end_callback; -struct bu_vls *go_prim_label_list; -intgo_prim_label_list_size; -intgo_refresh_on; -Tcl_Interp *go_interp; +struct ged_obj *to_gop; +Tcl_Interp *to_interp; }; -#define GED_OBJ_NULL (struct ged_obj *)0 +#define TCLCAD_OBJ_NULL (struct tclcad_obj *)0 - TCLCAD_EXPORT TCLCAD_EXTERN(int tclcad_tk_setup, (Tcl_Interp *interp)); TCLCAD_EXPORT TCLCAD_EXTERN(void tclcad_auto_path, (Tcl_Interp *interp)); TCLCAD_EXPORT TCLCAD_EXTERN(void tclcad_tcl_library, (Tcl_Interp *interp)); Modified: brlcad/branches/cmake/src/libtclcad/tclcad_obj.c
[brlcad-commits] SF.net SVN: brlcad:[44195] geomcore/trunk/src/libgvm/gvm.h
Revision: 44195 http://brlcad.svn.sourceforge.net/brlcad/?rev=44195view=rev Author: starseeker Date: 2011-04-04 19:43:56 + (Mon, 04 Apr 2011) Log Message: --- will probably want to populate lists from repositories to have an easy format to send over the wire. Modified Paths: -- geomcore/trunk/src/libgvm/gvm.h Modified: geomcore/trunk/src/libgvm/gvm.h === --- geomcore/trunk/src/libgvm/gvm.h 2011-04-04 19:29:52 UTC (rev 44194) +++ geomcore/trunk/src/libgvm/gvm.h 2011-04-04 19:43:56 UTC (rev 44195) @@ -157,6 +157,34 @@ int recursive)); /** + * GVM model level routines + */ + +/* Add a new, empty model to a repository */ +GVM_EXPORT GVM_EXTERN(int gvm_new_model, + (struct gvm_info *repo_info, + const char *model_name)); + +/* Populate repo_info's objects list with the contents of + * a complete model repository. If ver_num + * is LATEST_VERSION use latest revision */ +GVM_EXPORT GVM_EXTERN(int gvm_get_model, + (struct gvm_info *repo_info, +const char *model_name, +size_t ver_num)); + +/* Populate repo_info's objects list with a subset of a + * model repository. If ver_num is LATEST_VERSION use + * latest revision. If recursive is 1 add all objects + * below the specified object in the tree. */ +GVM_EXPORT GVM_EXTERN(int gvm_get_objs, + (struct gvm_info *repo_info, +const char *model_name, +const char *obj_name, +size_t ver_num, +int recursive)); + +/** * GVM object level routines */ @@ -188,7 +216,6 @@ struct repository_objects *obj1, struct repository_objects *obj2)); - /* Add a repository_objects struct to repo_info's * objects list */ GVM_EXPORT GVM_EXTERN(int gvm_add_to_list, @@ -215,23 +242,3 @@ GVM_EXPORT GVM_EXTERN(int gvm_commit_objs, (struct gvm_info *repo_info)); -/* Populate repo_info's objects list with the contents of - * a complete model repository. If ver_num - * is LATEST_VERSION use latest revision */ -GVM_EXPORT GVM_EXTERN(int gvm_get_model, - (struct gvm_info *repo_info, -const char *model_name, -size_t ver_num)); - -/* Populate repo_info's objects list with a subset of a - * model repository. If ver_num is LATEST_VERSION use - * latest revision. If recursive is 1 add all objects - * below the specified object in the tree. */ -GVM_EXPORT GVM_EXTERN(int gvm_get_objs, - (struct gvm_info *repo_info, -const char *model_name, -const char *obj_name, -size_t ver_num, -int recursive)); - - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. -- Xperia(TM) PLAY It's a major breakthrough. An authentic gaming smartphone on the nation's most reliable network. And it wants your games. http://p.sf.net/sfu/verizon-sfdev ___ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits
[brlcad-commits] SF.net SVN: brlcad:[44196] geomcore/trunk/src/interfaces/cl
Revision: 44196 http://brlcad.svn.sourceforge.net/brlcad/?rev=44196view=rev Author: erikgreenwald Date: 2011-04-04 20:37:04 + (Mon, 04 Apr 2011) Log Message: --- start up a cffi wrapper for librt Added Paths: --- geomcore/trunk/src/interfaces/cl/brlcad.asd geomcore/trunk/src/interfaces/cl/brlcad.lisp Added: geomcore/trunk/src/interfaces/cl/brlcad.asd === --- geomcore/trunk/src/interfaces/cl/brlcad.asd (rev 0) +++ geomcore/trunk/src/interfaces/cl/brlcad.asd 2011-04-04 20:37:04 UTC (rev 44196) @@ -0,0 +1,14 @@ + -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*- + +(asdf:defsystem brlcad + :name brlcad + :version 0.0.0 + :maintainer Erik G + :author Erik G + :licence BSD sans advertising clause (see file COPYING for details) + :description GeometryService client + :long-description Common Lisp client interface for the BRL-CAD Geometry Service protocol + :serial t + :depends-on (:cffi) + :components ((:file brlcad))) + Property changes on: geomcore/trunk/src/interfaces/cl/brlcad.asd ___ Added: svn:mime-type + text/plain Added: svn::eol-style + native Added: svn:eol-style + native Added: geomcore/trunk/src/interfaces/cl/brlcad.lisp === --- geomcore/trunk/src/interfaces/cl/brlcad.lisp (rev 0) +++ geomcore/trunk/src/interfaces/cl/brlcad.lisp2011-04-04 20:37:04 UTC (rev 44196) @@ -0,0 +1,112 @@ +;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*- +(in-package :cl-user) + +(defpackage :brlcad + (:use :cl :cffi) + (:export :db-open)) + +(in-package :brlcad) + +(pushnew #P/usr/brlcad/lib/ cffi:*foreign-library-directories* :test #'equal) +#+darwin(pushnew #P/usr/brlcad/lib/ cffi:*darwin-framework-directories* :test #'equal) + +(cffi:define-foreign-library librt + (:darwin (:or librt.19.dylib librt.dylib)) + (:unix (:or librt.19.so librt.so)) + (:windows librt.dll) + (t (:default librt))) +(cffi:use-foreign-library librt) + +;; + +(defcstruct xray Ray + (magic :uint32) + (index :int) + (r_pt :double :count 3) + (r_dir :double :count 3) + (r_min :double) + (r_man :double)) + +(defcstruct application Application structure + (a_magic :uint32) + + ;;; THESE ELEMENTS ARE MANDATORY + (a_ray xray) ; Actual ray to be shot + + (a_hit :pointer) + (a_miss :pointer) + + (a_onehit :int) ; flag to stop on first hit + (a_ray_length :double) ; distance from ray start to end :intersections + (a_rt_i :pointer); this librt instance + (a_zero1 :int) ; must be zero (sanity check) + ;;; THESE ELEMENTS ARE USED BY THE LIBRARY, BUT MAY BE LEFT ZERO + (a_resource :pointer); dynamic memory resources + + (a_overlap :pointer) + (a_multioverlap :pointer) + (a_logoverlap :pointer) + + (a_level :int); recursion level (for pr:inting) + (a_x :int) ; Screen X of ray, if applicable + (a_y :int) ; Screen Y of ray, if applicable + (a_purpose :string) ; Debug string: purpose of ray + (a_rbeam :double); initial beam radius (mm) + (a_diverge :double) ; slope of beam divergance/mm + (a_return :int) ; Return of a_hit()/a_miss() + (a_no_booleans :int); 1= partitions==segs, no booleans + (attrs :pointer) ; null terminated list of attributes This list should be the same as passed to rt_gettrees_and_attrs() + + ;;; THESE ELEMENTS ARE USED BY THE PROGRAM rt AND MAY BE USED BY + ;;; THE LIBRARY AT SOME FUTURE DATE + ;;; AT THIS TIME THEY MAY BE LEFT ZERO + (a_pixelext :pointer); locations of pixel corners + + ;;; THESE ELEMENTS ARE WRITTEN BY THE LIBRARY, AND MAY BE READ IN a_hit() + (a_finished_segs_hdp :pointer) + (a_Final_Part_hdp :pointer) + (a_inv_dir :double :count 3) ; filled in by rt_shootray(), inverse of ray direction cosines + + ;;; THE FOLLOWING ELEMENTS ARE MAINLINE APPLICATION SPECIFIC. + ;;; THEY ARE NEVER EXAMINED BY THE LIBRARY. + (a_user :int); application-specific value + (a_uptr :pointer) ; application-specific pointer + (a_spectrum :pointer) + (a_color :double :count 3) ; application-specific color + (a_dist :double); application-specific distance + (a_uvec :double :count 3); application-specific vector + (a_vvec :double :count 3); application-specific vector + (a_refrac_index :double) ; current index of refraction + (a_cumlen :double) ; cumulative length of ray + (a_flag :int); application-specific flag + (a_zero2 :int)) ; must be zero (sanity check) +
[brlcad-commits] SF.net SVN: brlcad:[44197] geomcore/trunk/src/interfaces/cl/brlcad.lisp
Revision: 44197 http://brlcad.svn.sourceforge.net/brlcad/?rev=44197view=rev Author: erikgreenwald Date: 2011-04-04 21:05:45 + (Mon, 04 Apr 2011) Log Message: --- Fix magic sizes (this may be a bug in librt?). Fix up the rt-open func. Modified Paths: -- geomcore/trunk/src/interfaces/cl/brlcad.lisp Modified: geomcore/trunk/src/interfaces/cl/brlcad.lisp === --- geomcore/trunk/src/interfaces/cl/brlcad.lisp2011-04-04 20:37:04 UTC (rev 44196) +++ geomcore/trunk/src/interfaces/cl/brlcad.lisp2011-04-04 21:05:45 UTC (rev 44197) @@ -20,7 +20,7 @@ ;; (defcstruct xray Ray - (magic :uint32) + (magic :unsigned-long) (index :int) (r_pt :double :count 3) (r_dir :double :count 3) @@ -28,7 +28,7 @@ (r_man :double)) (defcstruct application Application structure - (a_magic :uint32) + (a_magic :unsigned-long) ;;; THESE ELEMENTS ARE MANDATORY (a_ray xray) ; Actual ray to be shot @@ -106,7 +106,7 @@ ;; (defun rt-open (filename regions) - (let ((a (foreign-alloc (foreign-type-size 'application -(setf (application-a_rt_i a) (rt-dirbuild filename RT 0)) -(loop for region in regions do (rt-gettree (application-a_rt_i a) region)) + (with-foreign-object (a 'application) +(setf (foreign-slot-value a 'application 'a_rt_i) (rt-dirbuild filename RT 0)) +(loop for region in regions do (rt-gettree (foreign-slot-value a 'application 'a_rt_i) region)) a)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. -- Xperia(TM) PLAY It's a major breakthrough. An authentic gaming smartphone on the nation's most reliable network. And it wants your games. http://p.sf.net/sfu/verizon-sfdev ___ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits