Hi Dirk,
Sorry I was a bit distracted with some other issues and forgot to send you
the patches before...
On Fri, 1 Jul 2005, Dirk Reiners wrote:
I'd be interested. Given that it seems to be an actual bug that is just
ignored by most compilers doesn't make it right.
OK, attached. I'm fairly confident about the patches to the header files,
but I'm still baffled why do you need to omit the static qualifier from
the templated function in OSGExtrusionGeometry.cpp. This might be a
compiler bug, I've submitted an issue to Intel about this but got no reply
so far. If anyone has more insight that'd be welcomed -- even though this
is a minor detail, such small things can really bug me. :-)
Yours,
Akosdiff -u
./Source/System/Cluster/Window/BalancedMultiWindow/OSGBalancedMultiWindow.h.orig
./Source/System/Cluster/Window/BalancedMultiWindow/OSGBalancedMultiWindow.h
---
./Source/System/Cluster/Window/BalancedMultiWindow/OSGBalancedMultiWindow.h.orig
2005-06-29 17:48:50.562027858 +0200
+++ ./Source/System/Cluster/Window/BalancedMultiWindow/OSGBalancedMultiWindow.h
2005-06-29 17:54:06.677723335 +0200
@@ -128,6 +128,32 @@
/*========================== PRIVATE ================================*/
private:
+ struct LoadGroup;
+ struct BBox;
+ struct VPort;
+ struct Server;
+ struct WorkPackage;
+ struct Tile;
+ struct Area;
+ struct Cluster;
+ struct Worker;
+ struct OpenBBox;
+ struct ServerComp;
+ struct BBoxList;
+
+ friend struct LoadGroup;
+ friend struct BBox;
+ friend struct VPort;
+ friend struct Server;
+ friend struct WorkPackage;
+ friend struct Tile;
+ friend struct Area;
+ friend struct Cluster;
+ friend struct Worker;
+ friend struct OpenBBox;
+ friend struct ServerComp;
+ friend struct BBoxList;
+
struct LoadGroup {
NodePtr root;
NodePtr node;
diff -u
./Source/System/NodeCores/Drawables/Geometry/OSGExtrusionGeometry.cpp.orig
./Source/System/NodeCores/Drawables/Geometry/OSGExtrusionGeometry.cpp
--- ./Source/System/NodeCores/Drawables/Geometry/OSGExtrusionGeometry.cpp.orig
2005-06-01 14:39:17.000000000 +0200
+++ ./Source/System/NodeCores/Drawables/Geometry/OSGExtrusionGeometry.cpp
2005-07-04 20:24:10.618394889 +0200
@@ -106,7 +106,7 @@
// Forward Declarations
//-----------------------------------------------------------------------------
template <class VectorTypeT>
-static void subdivide(const typename std::vector<VectorTypeT> &dataIn,
+void subdivide(const typename std::vector<VectorTypeT> &dataIn,
typename std::vector<VectorTypeT> *dataOut,
bool closed);
diff -u ./Source/System/NodeCores/Drawables/Geometry/OSGHalfEdgeGraph.h.orig
./Source/System/NodeCores/Drawables/Geometry/OSGHalfEdgeGraph.h
--- ./Source/System/NodeCores/Drawables/Geometry/OSGHalfEdgeGraph.h.orig
2005-03-29 16:34:49.000000000 +0200
+++ ./Source/System/NodeCores/Drawables/Geometry/OSGHalfEdgeGraph.h
2005-07-04 20:29:21.566929066 +0200
@@ -70,8 +70,15 @@
enum WalkCase { START, LEFT, RIGHT, FINISH };
+ class HalfEdge;
class Triangle;
-
+ class TriangleList;
+ class TrianglePool;
+ friend class HalfEdge;
+ friend class Triangle;
+ friend class TriangleList;
+ friend class TrianglePool;
+
class HalfEdge
{
IndexT _vertexIndex;
@@ -129,19 +136,8 @@
class TrianglePool
{
enum { DEFAULT_CHUNK_SIZE = 2048 };
-
- struct Chunk
- {
- const UInt32 _size;
- UInt32 _freeElem;
- Chunk *_next;
- Triangle *_data;
-
- inline Chunk (const UInt32 size);
- inline ~Chunk (void);
- inline UInt32 countElem(void);
- };
-
+ class Chunk;
+
UInt32 _defaultChunkSize;
Chunk *_first;
Chunk *_last;
@@ -157,6 +153,9 @@
inline void setChunkSize(UInt32 chunkSize = DEFAULT_CHUNK_SIZE);
};
+ friend TrianglePool::Chunk;
+
+
// temporary vector data structure
typedef std::vector < std::pair<UInt32,HalfEdge *> > HalfEdgeLink;
std::vector<HalfEdgeLink> _edgeLinkVec;
@@ -216,6 +215,19 @@
};
+class HalfEdgeGraph::TrianglePool::Chunk
+{
+ public:
+ const UInt32 _size;
+ UInt32 _freeElem;
+ Chunk *_next;
+ Triangle *_data;
+
+ inline Chunk (const UInt32 size);
+ inline ~Chunk (void);
+ inline UInt32 countElem(void);
+};
+
typedef HalfEdgeGraph* HalfEdgeGraphP;
#endif // remove from all but dev docs
diff -u ./Source/Experimental/NewAction/OSGDepthFirstStateAction.h.orig
./Source/Experimental/NewAction/OSGDepthFirstStateAction.h
--- ./Source/Experimental/NewAction/OSGDepthFirstStateAction.h.orig
2005-06-29 17:56:14.858163675 +0200
+++ ./Source/Experimental/NewAction/OSGDepthFirstStateAction.h 2005-06-29
17:57:39.835512088 +0200
@@ -165,6 +165,11 @@
typedef StateStore::iterator StateStoreIt;
typedef StateStore::const_iterator StateStoreConstIt;
+ class StateRefCount;
+ class NodeStackEntry;
+ friend class StateRefCount;
+ friend class NodeStackEntry;
+
class StateRefCount
{
public:
diff -u ./Source/Experimental/NewAction/OSGPriorityAction.h.orig
./Source/Experimental/NewAction/OSGPriorityAction.h
--- ./Source/Experimental/NewAction/OSGPriorityAction.h.orig 2005-06-29
17:58:31.043486685 +0200
+++ ./Source/Experimental/NewAction/OSGPriorityAction.h 2005-06-29
17:59:06.403635559 +0200
@@ -160,6 +160,11 @@
typedef StateStore::iterator StateStoreIt;
typedef StateStore::const_iterator StateStoreConstIt;
+ class StateRefCount;
+ class NodeQueueEntry;
+ friend class StateRefCount;
+ friend class NodeQueueEntry;
+
class StateRefCount
{
public: