Commit Graph
162 Commits
Author SHA1 Message Date
ehofman 00e0e72bca Frederic Bouvier:
If the input string of sgSplitPath is empty, it returned a list with one empty string, not an empty list.
2004-03-21 21:54:51 +00:00
ehofman 4362eb79e6 Update for non-conformal (older) compilers 2004-03-12 08:59:12 +00:00
ehofman 3b3baa996b MSVC .NET 2003 fix 2004-03-07 09:36:31 +00:00
andy 27477402c9 Property interpolator subsystem. A utility, primarily for Nasal scripts 2003-12-05 01:49:44 +00:00
ehofman fbf018598e Rename IRIX to irix_string in simgear/compatibility and assign "simgear/compatibility/irix_string" to STL_STRING for IRIX 2003-12-01 18:56:53 +00:00
ehofman 4c1d22b8a6 FIx a typo 2003-11-21 21:56:57 +00:00
ehofman 3c08eae85b Fix a problem where older IRIX compilers needed a typecast for certain opperations 2003-10-16 12:51:47 +00:00
ehofman d22640ef4e Move FGEventMgr and FGSubsystemMgr over to SimGear, add SGEventMgr to FlightGear's globals structre and some small code cleanups 2003-09-24 17:19:22 +00:00
ehofman 7289ac645a New automake, new problems. Use $base_LIBS where $LIBS was automatically added before 2003-08-29 07:35:55 +00:00
curt c0a633ea1d Give calc_tex_coords() a more conformant name: sgCalcTexCoords() 2003-08-19 02:08:16 +00:00
curt 0bf579cf27 Only use the ";" delimiter under WIN32 2003-08-09 02:54:15 +00:00
curt 77cefa924c Add a routines that takes a search path (separated by sgSearchPathSep) and
seperates them into a vector of strings which it then returns.
2003-08-08 19:54:49 +00:00
curt 525d2df3cc - Moved some property specific code into simgear/props/
- Split out the condition code from fgfs/src/Main/fg_props and put it
  in it's own source file in simgear/props/
- Created a scene subdirectory for scenery, model, and material property
  related code.
- Moved location.[ch]xx into simgear/scene/model/
- The location and condition code had dependencies on flightgear's global
  state (all the globals-> stuff, the flightgear property tree, etc.)  SimGear
  code can't depend on it so that data has to be passed as parameters to the
  functions/methods/constructors.
2003-05-06 23:40:43 +00:00
ehofman 86392857c5 Move the texture object to the screen directory for the sake of library dependencies 2003-04-12 09:42:45 +00:00
ehofman 95c6c16851 Move the texture object to the screen directory for the sake of library dependencies 2003-04-12 09:29:18 +00:00
ehofman 5712053ad8 get rid of malloc() 2003-04-10 09:26:03 +00:00
ehofman 192db1c343 Depreciate a wrapper header file 2003-04-10 08:01:18 +00:00
ehofman 11d2bca8a7 Add out own texture object 2003-04-09 20:24:52 +00:00
david c4fa7a965d Patch from Frederic Bouvier:
I am trying to compile tabbed_values.cxx and found that it requires
assert.h to compile with MSVC (on Linux, it must be included indirectly).
There is a patch below
2003-03-02 16:35:08 +00:00
david 1a6e14c3bb Added tabbed_test program. 2003-03-02 16:34:42 +00:00
david 7379d8a54d Patches from Erik Hofman (for Irix? I've lost the original message). 2003-03-02 14:52:05 +00:00
curt b63464d239 Bernie Bright:
Could the file(), dir(), base() and extension() functions be made const member
functions.  As it stands they cannot be applied to const reference/pointer
values which limits their usefulness.

Curt:

Yes.
2003-02-28 01:02:26 +00:00
curt 1dac4b2dc1 Add some convenience functions to the SGPath function. 2003-02-26 19:50:14 +00:00
curt 44e7b36a8b Oops, missed this the first time. 2003-02-15 18:53:44 +00:00
curt a26c677df4 James Turner:
- added a new class in simgear/misc, SGTabbedValues, which parses a
  null-terminated string of data separated by tabs into fields, and
  supports safe conversion into various other datatypes.
2003-02-15 18:43:59 +00:00
curt 5d10dda5a1 James Turner:
- added a 'filename' helper to SGPath, corresponding to the 'directory'
helper but returning just the filename portion of the name.
2003-02-15 18:43:06 +00:00
david 78411d29a7 Patch from Erik Hofman:
This patch adds some more functionality to the header files and removes
*all* dependencies on SG_HAVE_NATIVE_SGI_COMPILERS in the SimGear code!

[dpm: I had to add some additional SG_USING_STD declarations to make
it compile]
2002-12-31 14:47:34 +00:00
david 3af4a19f76 Allow 'include' attribute on root PropertyList element. 2002-11-11 14:40:16 +00:00
david 5178f69f18 Simplified the command-manager interface. 2002-10-26 01:18:03 +00:00
curt a885314a39 Tidy up the autoconf/automake configuration a bit.
- Removed some old cruft.

- Removed some support for older versions of automake which technically was
  correct, but caused the newer automakes to squawk warnings during an
  initial sanity check (which isn't done very intelligently.)

  NOTE: this fix is technically not correct for older version of automake.
  These older version use the variable "INCLUDES" internally and could have
  them already set to an important value.  That is why we were appending
  our values to them.  However, newer versions of automake don't set this
  value themselves so it is an error to append to a non-existant variable.
  We seem to "get away" with overwriting the value on older versions of
  automake, but if you have problems, consider upgrading to at least
  automake-1.5.
2002-08-25 17:31:47 +00:00
david c57cc096f8 Patch from Cameron Moore:
* Rearranged member initializers to shut gcc -Wall up
2002-07-18 20:30:02 +00:00
david cadefd323a Quick fix for bug reported by Julian Foad, where the simplify flag was
not honoured after the first call.  This isn't all that efficient, and
the return type probably should change to string eventually, but this
fix avoids changing the headers for now.
2002-07-18 20:04:50 +00:00
david baab88f42a Fix deletes in destructor. 2002-07-06 15:00:37 +00:00
david 767b74dd35 Added new getDisplayName method that gets the name with its index.
Suggested by Julian Foad.
2002-07-06 14:58:38 +00:00
david 90e8287f43 Made SGPropertyNode::getPath extremely efficient: it now caches its
result, so after the first call for any node, it simply tests and
returns a pointer.  This also fixes the problem of buffer conflicts
with make_string.

Added SGPropertyNode::hasChild(const char * name, int index = 0) to
provide a syntactically-cleaner way to test for the existence of a
child node, i.e.

  for (int i = 0; i < 9; i++) {
    if (node->hasChild("foo", i))
      foo[i] = node->getChild("foo", i)->getDoubleValue();
  }
2002-07-06 13:19:02 +00:00
curt 7769447283 Fixed a couple minor compiler warnings. 2002-07-03 17:35:49 +00:00
david d6a790cf13 MSVC++ bug work-around from Frederic Bouvier. 2002-07-03 02:06:23 +00:00
david 3ff1789963 Fixed an MSVC compilation problem reported by Frederic Bouvier. 2002-06-28 17:02:42 +00:00
david 9737c0c4dd Fixed bug reported by Julian Foad:
While investigating, I found that SGPropertyNode::getPath returns a
(char *) pointer to the character data of a string on its stack,
i.e. to undefined memory after it returns.  I remember someone was
changing strings to char* for efficiency.  Perhaps this bug was
introduced then.  I'll include a patch for it with my eventual patch
for the above, unless someone beats me to it.  I don't think it
affects any existing callers: they all want a string anyway.
2002-06-28 16:56:14 +00:00
david 0833a11686 Significant improvements to the change-listener support. There are
now three different change events, and the listener base class removes
itself from the parent in the destructor.
2002-06-18 21:17:42 +00:00
david 9c7f7f3d32 Added a ptr() method to SGPropertyNode_ptr to get the raw pointer.
Added the SGPropertyChangeListener interface and addChangeListener and
firePropertyChange methods.
2002-06-18 01:26:09 +00:00
david c7e6459c64 Modified to work with the new SGPropertyNode_ptr class. 2002-05-10 22:58:03 +00:00
david 86e31e696d Patch from Frederic Bouvier:
I have modified the SGPropertyNode interface to support node removal
and address the issues you mention yesterday.

I added the SGPropertyNode_ptr class that is a smart pointer that
increment and decrement a counter in SGPropertyNode. The _children
vector is changed to a vector<SGPropertyNode_ptr> in order for the
node to hold a reference to its children. I also added a
_removedChildren vector of the same type. When removeChild is called
with the keep parameter set to true, the reference is removed from
_children and inserted in _removedChildren, and the attribute REMOVED
is set. When getChild is called with create set to true, the _children
vector is searched, then the _removedChildren and then a new node is
created. If a resurrected node is returned, the REMOVED bit is cleared.
The static const int LAST_USED_ATTRIBUTE is also added.

The footprint of this patch is light. SGPropertyNode is one int
longer in size, SGPropertyNode_ptr is one pointer large without
virtual functions. Some functions can be inlined if your current
policy change.

The FlightGear patch is to take account the change in the getChildren
function that now returns a vector<SGPropertyNode_ptr>. If the
removeChild functionnality is to be added in FlightGear, all those
SGPropertyNode * floating around should be changed to
SGPropertyNode_ptr.
2002-05-10 22:57:36 +00:00
david 972223cd50 Eliminate an unsigned-int comparison warning. 2002-05-10 21:31:15 +00:00
curt 6a3d1895d9 Bernie Bright:
Here is a total rewrite of the strutils package.  I've reimplemented the
trimleft(), trimright() and trim() functions as lstrip(), rstrip() and
strip() respectively.  Additionally I've added a split() function that
behaves like its perl/python equivalent.  Just the thing for splitting
comma separated option strings or space separated telnet commands and
arguments.  I've also enclosed the whole thing in a namespace
simgear::strutils.  Since I seem to be the only one who uses these
functions, SimGear and FlightGear compile without change.

PS It is no coincidence that the new function names bear an uncanny
resemblance to the python functions of the same name.
2002-05-10 13:32:44 +00:00
david 384e56b9b4 Patches from Erik Hoffman:
Tbis is a first patch in a series to clean up SimGear by removing
warning messages. Most of them are straight forwared, but in pops.hxx
the compile complaints about "type qualifier is meaningless on return
type". I think it's up to you to decide if you want that part applied.
2002-04-25 15:09:10 +00:00
david d198e962b0 Patch from Melchior Franz:
From the cosmetics department ...
2002-04-25 14:56:03 +00:00
david 711622fd5b Patch from Frederic Bouvier:
A const char * is not supposed to change and cannot be deleted. So
here is a patch that remove unnecessary const from props.hxx and
props.cxx. There also is the addition of a friend directive because
nested classes do not receive special privileges and cannot access
private members of the outer class.
2002-04-07 21:28:43 +00:00
david 96474823b5 Implemented a very simple hash-table cache for property lookup using
relative paths.
2002-04-06 21:47:22 +00:00
david bf75cf7225 Removed an unnecessary string allocation during copying. 2002-03-22 15:02:50 +00:00