aboutsummaryrefslogtreecommitdiff
path: root/graphics/libx3dtk/files
diff options
context:
space:
mode:
authorPav Lucistnik <pav@FreeBSD.org>2005-11-18 00:15:24 +0000
committerPav Lucistnik <pav@FreeBSD.org>2005-11-18 00:15:24 +0000
commit475c319554ec0a89dded8c10f521621ca7dd7ff1 (patch)
treee482c872a263c631a15c14be6aea04ada9b3bde3 /graphics/libx3dtk/files
parent52a9dfb94c3f06a2478aed1c8424f6cbb4c23f0c (diff)
Notes
Diffstat (limited to 'graphics/libx3dtk/files')
-rw-r--r--graphics/libx3dtk/files/X3DAbstractNodeForward.h24
-rw-r--r--graphics/libx3dtk/files/patch-MESH_SFDirectEdge.inl103
-rw-r--r--graphics/libx3dtk/files/patch-MESH_SFEdge.inl33
-rw-r--r--graphics/libx3dtk/files/patch-MESH_SFIndirectEdge.inl103
-rw-r--r--graphics/libx3dtk/files/patch-MESH_SceneGraphTypes.h206
-rw-r--r--graphics/libx3dtk/files/patch-X3DAbstractNode.h21
-rw-r--r--graphics/libx3dtk/files/patch-X3DAttributeRecorder.inl27
-rw-r--r--graphics/libx3dtk/files/patch-X3DMFNodeFunctor.inl53
-rw-r--r--graphics/libx3dtk/files/patch-X3DMFNodeRecorder.inl27
-rw-r--r--graphics/libx3dtk/files/patch-X3DSFNodeFunctor.inl65
-rw-r--r--graphics/libx3dtk/files/patch-X3DSFNodeRecorder.inl27
-rw-r--r--graphics/libx3dtk/files/patch-examples-X3DViewer-Viewer.cpp22
-rw-r--r--graphics/libx3dtk/files/patch-examples-examples.pro23
-rw-r--r--graphics/libx3dtk/files/patch-examples-glNormalViewer-Viewer.cpp22
-rw-r--r--graphics/libx3dtk/files/patch-examples-icosahedronViewer-Viewer.cpp22
-rw-r--r--graphics/libx3dtk/files/patch-examples-infoReader-X3D_Info.cpp19
-rw-r--r--graphics/libx3dtk/files/patch-examples-infoReader-infoReader.pro13
-rw-r--r--graphics/libx3dtk/files/patch-examples-meshCreation-meshCreation.pro13
-rw-r--r--graphics/libx3dtk/files/patch-examples-meshExtension-meshExtension.pro13
-rw-r--r--graphics/libx3dtk/files/patch-examples-meshTransformComputer-meshTransformComputer.pro13
-rw-r--r--graphics/libx3dtk/files/patch-examples-meshViewer-Viewer.cpp22
-rw-r--r--graphics/libx3dtk/files/patch-examples-myMemReleaser-myMemReleaser.pro13
-rw-r--r--graphics/libx3dtk/files/patch-examples-myStructureComputer-myStructureComputer.pro13
-rw-r--r--graphics/libx3dtk/files/patch-examples-newNodeViewer-Viewer.cpp22
-rw-r--r--graphics/libx3dtk/files/patch-examples-nodeCounter-nodeCounter.pro13
-rw-r--r--graphics/libx3dtk/files/patch-examples-redefineNodeTester-redefineNodeTester.pro13
-rw-r--r--graphics/libx3dtk/files/patch-examples-simpleAnimationViewer-Viewer.cpp22
-rw-r--r--graphics/libx3dtk/files/patch-examples-simpleNodeCounter-simpleNodeCounter.pro13
-rw-r--r--graphics/libx3dtk/files/patch-examples-simplifiedMeshViewer-Viewer.cpp22
-rw-r--r--graphics/libx3dtk/files/patch-src-X3DMFNodeFunctor.inl60
-rw-r--r--graphics/libx3dtk/files/patch-src-X3DSFNodeFunctor.inl57
31 files changed, 1119 insertions, 0 deletions
diff --git a/graphics/libx3dtk/files/X3DAbstractNodeForward.h b/graphics/libx3dtk/files/X3DAbstractNodeForward.h
new file mode 100644
index 000000000000..b1ba92a3799a
--- /dev/null
+++ b/graphics/libx3dtk/files/X3DAbstractNodeForward.h
@@ -0,0 +1,24 @@
+#if ! defined(X3DABSTRACTNODEFORWARD_H)
+#define X3DABSTRACTNODEFORWARD_H
+
+namespace X3DTK {
+ class SFType;
+ class X3DAbstractNode;
+ void X3DAbstractNode_addParentToChild(X3DAbstractNode * parent, X3DAbstractNode * child);
+ void X3DAbstractNode_removeParentFromChild(X3DAbstractNode * parent, X3DAbstractNode * child);
+ SFType * X3DAbstractNode_getType(X3DAbstractNode * node);
+}
+
+#endif
+#if ! defined(X3DABSTRACTNODEFORWARD_H)
+#define X3DABSTRACTNODEFORWARD_H
+
+namespace X3DTK {
+ class SFType;
+ class X3DAbstractNode;
+ void X3DAbstractNode_addParentToChild(X3DAbstractNode * parent, X3DAbstractNode * child);
+ void X3DAbstractNode_removeParentFromChild(X3DAbstractNode * parent, X3DAbstractNode * child);
+ SFType * X3DAbstractNode_getType(X3DAbstractNode * node);
+}
+
+#endif
diff --git a/graphics/libx3dtk/files/patch-MESH_SFDirectEdge.inl b/graphics/libx3dtk/files/patch-MESH_SFDirectEdge.inl
new file mode 100644
index 000000000000..d2a84b060c43
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-MESH_SFDirectEdge.inl
@@ -0,0 +1,103 @@
+*** include/X3DTK/private/MESH_SFDirectEdge.inl.orig Fri Aug 27 13:18:22 2004
+--- include/X3DTK/private/MESH_SFDirectEdge.inl Sat Oct 29 12:40:12 2005
+***************
+*** 19,67 ****
+ template<class MData, class VData, class EData, class FData, bool RW>
+ SFTemplateVertex<MData, VData, EData, FData, RW> *SFTemplateDirectEdge<MData, VData, EData, FData, RW>::getFromVertex() const
+ {
+! return _edgeContent->getFromVertex();
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ SFTemplateVertex<MData, VData, EData, FData, RW> *SFTemplateDirectEdge<MData, VData, EData, FData, RW>::getToVertex() const
+ {
+! return _edgeContent->getToVertex();
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ const typename SFTemplateDirectEdge<MData, VData, EData, FData, RW>::MFFace &SFTemplateDirectEdge<MData, VData, EData, FData, RW>::getLeftFaces() const
+ {
+! return _edgeContent->get1Faces();
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ const typename SFTemplateDirectEdge<MData, VData, EData, FData, RW>::MFFace &SFTemplateDirectEdge<MData, VData, EData, FData, RW>::getRightFaces() const
+ {
+! return _edgeContent->get2Faces();
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ void SFTemplateDirectEdge<MData, VData, EData, FData, RW>::addLeftFace(SFTemplateFace<MData, VData, EData, FData, RW> *face)
+ {
+! _edgeContent->add1Face(face);
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ void SFTemplateDirectEdge<MData, VData, EData, FData, RW>::addRightFace(SFTemplateFace<MData, VData, EData, FData, RW> *face)
+ {
+! _edgeContent->add2Face(face);
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ void SFTemplateDirectEdge<MData, VData, EData, FData, RW>::removeLeftFace(SFTemplateFace<MData, VData, EData, FData, RW> *face)
+ {
+! _edgeContent->remove1Face(face);
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ void SFTemplateDirectEdge<MData, VData, EData, FData, RW>::removeRightFace(SFTemplateFace<MData, VData, EData, FData, RW> *face)
+ {
+! _edgeContent->remove2Face(face);
+ }
+
+ }
+--- 19,67 ----
+ template<class MData, class VData, class EData, class FData, bool RW>
+ SFTemplateVertex<MData, VData, EData, FData, RW> *SFTemplateDirectEdge<MData, VData, EData, FData, RW>::getFromVertex() const
+ {
+! return SFTemplateDirectEdge<MData, VData, EData, FData, RW>::_edgeContent->getFromVertex();
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ SFTemplateVertex<MData, VData, EData, FData, RW> *SFTemplateDirectEdge<MData, VData, EData, FData, RW>::getToVertex() const
+ {
+! return SFTemplateDirectEdge<MData, VData, EData, FData, RW>::_edgeContent->getToVertex();
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ const typename SFTemplateDirectEdge<MData, VData, EData, FData, RW>::MFFace &SFTemplateDirectEdge<MData, VData, EData, FData, RW>::getLeftFaces() const
+ {
+! return SFTemplateDirectEdge<MData, VData, EData, FData, RW>::_edgeContent->get1Faces();
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ const typename SFTemplateDirectEdge<MData, VData, EData, FData, RW>::MFFace &SFTemplateDirectEdge<MData, VData, EData, FData, RW>::getRightFaces() const
+ {
+! return SFTemplateDirectEdge<MData, VData, EData, FData, RW>::_edgeContent->get2Faces();
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ void SFTemplateDirectEdge<MData, VData, EData, FData, RW>::addLeftFace(SFTemplateFace<MData, VData, EData, FData, RW> *face)
+ {
+! SFTemplateDirectEdge<MData, VData, EData, FData, RW>::_edgeContent->add1Face(face);
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ void SFTemplateDirectEdge<MData, VData, EData, FData, RW>::addRightFace(SFTemplateFace<MData, VData, EData, FData, RW> *face)
+ {
+! SFTemplateDirectEdge<MData, VData, EData, FData, RW>::_edgeContent->add2Face(face);
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ void SFTemplateDirectEdge<MData, VData, EData, FData, RW>::removeLeftFace(SFTemplateFace<MData, VData, EData, FData, RW> *face)
+ {
+! SFTemplateDirectEdge<MData, VData, EData, FData, RW>::_edgeContent->remove1Face(face);
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ void SFTemplateDirectEdge<MData, VData, EData, FData, RW>::removeRightFace(SFTemplateFace<MData, VData, EData, FData, RW> *face)
+ {
+! SFTemplateDirectEdge<MData, VData, EData, FData, RW>::_edgeContent->remove2Face(face);
+ }
+
+ }
diff --git a/graphics/libx3dtk/files/patch-MESH_SFEdge.inl b/graphics/libx3dtk/files/patch-MESH_SFEdge.inl
new file mode 100644
index 000000000000..8d9fecde08f5
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-MESH_SFEdge.inl
@@ -0,0 +1,33 @@
+*** include/X3DTK/private/MESH_SFEdge.inl.orig Fri Aug 27 13:18:22 2004
+--- include/X3DTK/private/MESH_SFEdge.inl Sat Oct 29 12:40:12 2005
+***************
+*** 57,70 ****
+ template<class F>
+ F &SFTemplateEdge<MData, VData, EData, FData, RW>::getData()
+ {
+! return _data.template get<F, false>();
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ template<class F>
+ F &SFTemplateEdge<MData, VData, EData, FData, RW>::ogetData()
+ {
+! return _data.template get<F, true>();
+ }
+ #endif
+
+--- 57,70 ----
+ template<class F>
+ F &SFTemplateEdge<MData, VData, EData, FData, RW>::getData()
+ {
+! return SFTemplateEdge<MData, VData, EData, FData, RW>::_data.template get<F, false>();
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ template<class F>
+ F &SFTemplateEdge<MData, VData, EData, FData, RW>::ogetData()
+ {
+! return SFTemplateEdge<MData, VData, EData, FData, RW>::_data.template get<F, true>();
+ }
+ #endif
+
diff --git a/graphics/libx3dtk/files/patch-MESH_SFIndirectEdge.inl b/graphics/libx3dtk/files/patch-MESH_SFIndirectEdge.inl
new file mode 100644
index 000000000000..9172be081d52
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-MESH_SFIndirectEdge.inl
@@ -0,0 +1,103 @@
+*** include/X3DTK/private/MESH_SFIndirectEdge.inl.orig Fri Aug 27 13:18:22 2004
+--- include/X3DTK/private/MESH_SFIndirectEdge.inl Sat Oct 29 12:40:12 2005
+***************
+*** 19,67 ****
+ template<class MData, class VData, class EData, class FData, bool RW>
+ SFTemplateVertex<MData, VData, EData, FData, RW> *SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::getFromVertex() const
+ {
+! return _edgeContent->getToVertex();
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ SFTemplateVertex<MData, VData, EData, FData, RW> *SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::getToVertex() const
+ {
+! return _edgeContent->getFromVertex();
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ const typename SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::MFFace &SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::getLeftFaces() const
+ {
+! return _edgeContent->get2Faces();
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ const typename SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::MFFace &SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::getRightFaces() const
+ {
+! return _edgeContent->get1Faces();
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ void SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::addLeftFace(SFTemplateFace<MData, VData, EData, FData, RW> *face)
+ {
+! _edgeContent->add2Face(face);
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ void SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::addRightFace(SFTemplateFace<MData, VData, EData, FData, RW> *face)
+ {
+! _edgeContent->add1Face(face);
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ void SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::removeLeftFace(SFTemplateFace<MData, VData, EData, FData, RW> *face)
+ {
+! _edgeContent->remove2Face(face);
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ void SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::removeRightFace(SFTemplateFace<MData, VData, EData, FData, RW> *face)
+ {
+! _edgeContent->remove1Face(face);
+ }
+
+ }
+--- 19,67 ----
+ template<class MData, class VData, class EData, class FData, bool RW>
+ SFTemplateVertex<MData, VData, EData, FData, RW> *SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::getFromVertex() const
+ {
+! return SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::_edgeContent->getToVertex();
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ SFTemplateVertex<MData, VData, EData, FData, RW> *SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::getToVertex() const
+ {
+! return SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::_edgeContent->getFromVertex();
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ const typename SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::MFFace &SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::getLeftFaces() const
+ {
+! return SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::_edgeContent->get2Faces();
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ const typename SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::MFFace &SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::getRightFaces() const
+ {
+! return SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::_edgeContent->get1Faces();
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ void SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::addLeftFace(SFTemplateFace<MData, VData, EData, FData, RW> *face)
+ {
+! SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::_edgeContent->add2Face(face);
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ void SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::addRightFace(SFTemplateFace<MData, VData, EData, FData, RW> *face)
+ {
+! SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::_edgeContent->add1Face(face);
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ void SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::removeLeftFace(SFTemplateFace<MData, VData, EData, FData, RW> *face)
+ {
+! SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::_edgeContent->remove2Face(face);
+ }
+
+ template<class MData, class VData, class EData, class FData, bool RW>
+ void SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::removeRightFace(SFTemplateFace<MData, VData, EData, FData, RW> *face)
+ {
+! SFTemplateIndirectEdge<MData, VData, EData, FData, RW>::_edgeContent->remove1Face(face);
+ }
+
+ }
diff --git a/graphics/libx3dtk/files/patch-MESH_SceneGraphTypes.h b/graphics/libx3dtk/files/patch-MESH_SceneGraphTypes.h
new file mode 100644
index 000000000000..ee3fe237ba44
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-MESH_SceneGraphTypes.h
@@ -0,0 +1,206 @@
+*** include/X3DTK/private/MESH_SceneGraphTypes.h.orig Fri Aug 27 13:18:32 2004
+--- include/X3DTK/private/MESH_SceneGraphTypes.h Sat Oct 29 12:40:12 2005
+***************
+*** 112,118 ****
+ typename Base::iterator it = Base::find(element->getIndex());
+ if ((*it).second == element)
+ return it;
+! return end();
+ }
+
+ /// Finds the element. Is provided for having a common interface with std::set and std::map.
+--- 112,118 ----
+ typename Base::iterator it = Base::find(element->getIndex());
+ if ((*it).second == element)
+ return it;
+! return Base::end();
+ }
+
+ /// Finds the element. Is provided for having a common interface with std::set and std::map.
+***************
+*** 121,127 ****
+ typename Base::const_iterator it = Base::find(element->getIndex());
+ if ((*it).second == element)
+ return it;
+! return end();
+ }
+ };
+
+--- 121,127 ----
+ typename Base::const_iterator it = Base::find(element->getIndex());
+ if ((*it).second == element)
+ return it;
+! return Base::end();
+ }
+ };
+
+***************
+*** 163,169 ****
+ /// operator[].
+ SFTemplateEdge<MData, VData, EData, FData, RW> *const &operator[](const unsigned int &n) const
+ {
+! typename Base::const_iterator it = begin();
+ for (unsigned int i = 0; i < n; ++i)
+ ++it;
+ return *it;
+--- 163,169 ----
+ /// operator[].
+ SFTemplateEdge<MData, VData, EData, FData, RW> *const &operator[](const unsigned int &n) const
+ {
+! typename Base::const_iterator it = Base::begin();
+ for (unsigned int i = 0; i < n; ++i)
+ ++it;
+ return *it;
+***************
+*** 220,226 ****
+ typename Base::iterator it = Base::find(element->getIndex());
+ if ((*it).second == element)
+ return it;
+! return end();
+ }
+ /// Finds the element. Is provided for having a common interface with std::set and std::map.
+ typename std::map<unsigned int, SFTemplateFace<MData, VData, EData, FData, RW> *>::const_iterator find(SFTemplateFace<MData, VData, EData, FData, RW> *const &element) const
+--- 220,226 ----
+ typename Base::iterator it = Base::find(element->getIndex());
+ if ((*it).second == element)
+ return it;
+! return Base::end();
+ }
+ /// Finds the element. Is provided for having a common interface with std::set and std::map.
+ typename std::map<unsigned int, SFTemplateFace<MData, VData, EData, FData, RW> *>::const_iterator find(SFTemplateFace<MData, VData, EData, FData, RW> *const &element) const
+***************
+*** 228,234 ****
+ typename Base::const_iterator it = Base::find(element->getIndex());
+ if ((*it).second == element)
+ return it;
+! return end();
+ }
+ };
+
+--- 228,234 ----
+ typename Base::const_iterator it = Base::find(element->getIndex());
+ if ((*it).second == element)
+ return it;
+! return Base::end();
+ }
+ };
+
+***************
+*** 262,271 ****
+ /// Inserts element x at index x.first of the std::vector. Is provided to have common interface with std::map.
+ std::pair<typename std::vector<SFTemplateVertex<MData, VData, EData, FData, false> *>::iterator, bool> insert(const std::pair<unsigned int, SFTemplateVertex<MData, VData, EData, FData, false> *> &x)
+ {
+! if (x.first >= size())
+ resize(x.first + 1, 0);
+
+! typename Base::iterator it = begin();
+ it += x.first;
+ *it = x.second;
+
+--- 262,271 ----
+ /// Inserts element x at index x.first of the std::vector. Is provided to have common interface with std::map.
+ std::pair<typename std::vector<SFTemplateVertex<MData, VData, EData, FData, false> *>::iterator, bool> insert(const std::pair<unsigned int, SFTemplateVertex<MData, VData, EData, FData, false> *> &x)
+ {
+! if (x.first >= Base::size())
+ resize(x.first + 1, 0);
+
+! typename Base::iterator it = Base::begin();
+ it += x.first;
+ *it = x.second;
+
+***************
+*** 275,281 ****
+ /// Finds the element. Is provided for having a common interface with std::set and std::map.
+ typename std::vector<SFTemplateVertex<MData, VData, EData, FData, false> *>::iterator find(SFTemplateVertex<MData, VData, EData, FData, false> *const &element) const
+ {
+! return std::find(begin(), end(), element);
+ }
+
+ };
+--- 275,281 ----
+ /// Finds the element. Is provided for having a common interface with std::set and std::map.
+ typename std::vector<SFTemplateVertex<MData, VData, EData, FData, false> *>::iterator find(SFTemplateVertex<MData, VData, EData, FData, false> *const &element) const
+ {
+! return std::find(Base::begin(), Base::end(), element);
+ }
+
+ };
+***************
+*** 307,319 ****
+ std::pair<typename std::vector<SFTemplateEdge<MData, VData, EData, FData, false> *>::iterator, bool> insert(const typename std::vector<SFTemplateEdge<MData, VData, EData, FData, false> *>::value_type &x)
+ {
+ push_back(x);
+! return std::pair<typename Base::iterator, bool>(end(), true);
+ }
+
+ /// Finds the element. Is provided for having a common interface with std::set and std::map.
+ typename std::vector<SFTemplateEdge<MData, VData, EData, FData, false> *>::iterator find(SFTemplateEdge<MData, VData, EData, FData, false> *const &element) const
+ {
+! return std::find(begin(), end(), element);
+ }
+ };
+
+--- 307,319 ----
+ std::pair<typename std::vector<SFTemplateEdge<MData, VData, EData, FData, false> *>::iterator, bool> insert(const typename std::vector<SFTemplateEdge<MData, VData, EData, FData, false> *>::value_type &x)
+ {
+ push_back(x);
+! return std::pair<typename Base::iterator, bool>(Base::end(), true);
+ }
+
+ /// Finds the element. Is provided for having a common interface with std::set and std::map.
+ typename std::vector<SFTemplateEdge<MData, VData, EData, FData, false> *>::iterator find(SFTemplateEdge<MData, VData, EData, FData, false> *const &element) const
+ {
+! return std::find(Base::begin(), Base::end(), element);
+ }
+ };
+
+***************
+*** 343,352 ****
+ /// Inserts element x at the end of the std::vector. Is equivalent to push_back and provided to have common interface with std::map.
+ std::pair<typename Base::iterator, bool> insert(const std::pair<unsigned int, SFTemplateFace<MData, VData, EData, FData, false> *> &x)
+ {
+! if (x.first >= size())
+ resize(x.first + 1, 0);
+
+! typename Base::iterator it = begin();
+ it += x.first;
+ *it = x.second;
+
+--- 343,352 ----
+ /// Inserts element x at the end of the std::vector. Is equivalent to push_back and provided to have common interface with std::map.
+ std::pair<typename Base::iterator, bool> insert(const std::pair<unsigned int, SFTemplateFace<MData, VData, EData, FData, false> *> &x)
+ {
+! if (x.first >= Base::size())
+ resize(x.first + 1, 0);
+
+! typename Base::iterator it = Base::begin();
+ it += x.first;
+ *it = x.second;
+
+***************
+*** 356,367 ****
+ /// Finds the element. Is provided for having a common interface with std::set and std::map.
+ typename std::vector<SFTemplateFace<MData, VData, EData, FData, false> *>::iterator find(SFTemplateFace<MData, VData, EData, FData, false> *const &element)
+ {
+! return std::find(begin(), end(), element);
+ }
+ /// Finds the element. Is provided for having a common interface with std::set and std::map.
+ typename std::vector<SFTemplateFace<MData, VData, EData, FData, false> *>::const_iterator find(SFTemplateFace<MData, VData, EData, FData, false> *const &element) const
+ {
+! return std::find(begin(), end(), element);
+ }
+ };
+
+--- 356,367 ----
+ /// Finds the element. Is provided for having a common interface with std::set and std::map.
+ typename std::vector<SFTemplateFace<MData, VData, EData, FData, false> *>::iterator find(SFTemplateFace<MData, VData, EData, FData, false> *const &element)
+ {
+! return std::find(Base::begin(), Base::end(), element);
+ }
+ /// Finds the element. Is provided for having a common interface with std::set and std::map.
+ typename std::vector<SFTemplateFace<MData, VData, EData, FData, false> *>::const_iterator find(SFTemplateFace<MData, VData, EData, FData, false> *const &element) const
+ {
+! return std::find(Base::begin(), Base::end(), element);
+ }
+ };
+
diff --git a/graphics/libx3dtk/files/patch-X3DAbstractNode.h b/graphics/libx3dtk/files/patch-X3DAbstractNode.h
new file mode 100644
index 000000000000..514290cfbb3a
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-X3DAbstractNode.h
@@ -0,0 +1,21 @@
+*** include/X3DTK/private/X3DAbstractNode.h.orig Fri Aug 27 13:18:33 2004
+--- include/X3DTK/private/X3DAbstractNode.h Sat Oct 29 12:40:12 2005
+***************
+*** 133,138 ****
+--- 133,148 ----
+ bool removeParent(const SFNode &N);
+ };
+
++ inline void X3DAbstractNode_addParentToChild(SFNode parent, SFNode child) {
++ X3DAbstractNode::addParentToChild(parent,child);
++ }
++ inline void X3DAbstractNode_removeParentFromChild(SFNode parent, SFNode child) {
++ X3DAbstractNode::removeParentFromChild(parent,child);
++ }
++ inline SFType * X3DAbstractNode_getType(X3DAbstractNode * node) {
++ return node->getType();
++ }
++
+ }
+
+ #include "X3DAbstractNode.inl"
diff --git a/graphics/libx3dtk/files/patch-X3DAttributeRecorder.inl b/graphics/libx3dtk/files/patch-X3DAttributeRecorder.inl
new file mode 100644
index 000000000000..c81132d2b151
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-X3DAttributeRecorder.inl
@@ -0,0 +1,27 @@
+*** include/X3DTK/private/X3DAttributeRecorder.inl.orig Fri Aug 27 13:18:22 2004
+--- include/X3DTK/private/X3DAttributeRecorder.inl Sat Oct 29 12:40:12 2005
+***************
+*** 1,3 ****
+--- 1,5 ----
++ #include "X3DAbstractNodeForward.h"
++
+ namespace X3DTK {
+
+ template<class T, class V>
+***************
+*** 9,15 ****
+ template<class T, class V>
+ void AttributeRecorder<T, V>::record(X3DAbstractNode *N) const
+ {
+! SFType *type = N->getType();
+
+ std::map<SFString, FieldManager>::iterator it = type->attributesMap().find(_name);
+ if (it == type->attributesMap().end())
+--- 11,17 ----
+ template<class T, class V>
+ void AttributeRecorder<T, V>::record(X3DAbstractNode *N) const
+ {
+! SFType *type = X3DAbstractNode_getType(N);
+
+ std::map<SFString, FieldManager>::iterator it = type->attributesMap().find(_name);
+ if (it == type->attributesMap().end())
diff --git a/graphics/libx3dtk/files/patch-X3DMFNodeFunctor.inl b/graphics/libx3dtk/files/patch-X3DMFNodeFunctor.inl
new file mode 100644
index 000000000000..f8ebedcf291f
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-X3DMFNodeFunctor.inl
@@ -0,0 +1,53 @@
+*** include/X3DTK/private/X3DMFNodeFunctor.inl.orig Fri Aug 27 13:18:22 2004
+--- include/X3DTK/private/X3DMFNodeFunctor.inl Sat Oct 29 12:40:12 2005
+***************
+*** 20,26 ****
+ if (dynamic_cast<V *>(C) != 0)
+ {
+ (static_cast<T *>(N)->*_nodes).push_back(C);
+! X3DAbstractNode::addParentToChild(N, C);
+ return true;
+ }
+
+--- 20,26 ----
+ if (dynamic_cast<V *>(C) != 0)
+ {
+ (static_cast<T *>(N)->*_nodes).push_back(C);
+! X3DAbstractNode_addParentToChild(N, C);
+ return true;
+ }
+
+***************
+*** 35,41 ****
+
+ if (res != nodes.end())
+ {
+! X3DAbstractNode::removeParentFromChild(N, C);
+ nodes.erase(res);
+ return true;
+ }
+--- 35,41 ----
+
+ if (res != nodes.end())
+ {
+! X3DAbstractNode_removeParentFromChild(N, C);
+ nodes.erase(res);
+ return true;
+ }
+***************
+*** 51,57 ****
+ MFNode &nodes = (static_cast<T *>(N)->*_nodes);
+
+ for (MFNode::const_iterator it = nodes.begin(); it != nodes.end(); ++it)
+! X3DAbstractNode::removeParentFromChild(N, *it);
+
+ nodes.clear();
+ }
+--- 51,57 ----
+ MFNode &nodes = (static_cast<T *>(N)->*_nodes);
+
+ for (MFNode::const_iterator it = nodes.begin(); it != nodes.end(); ++it)
+! X3DAbstractNode_removeParentFromChild(N, *it);
+
+ nodes.clear();
+ }
diff --git a/graphics/libx3dtk/files/patch-X3DMFNodeRecorder.inl b/graphics/libx3dtk/files/patch-X3DMFNodeRecorder.inl
new file mode 100644
index 000000000000..c8eb19d3e58c
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-X3DMFNodeRecorder.inl
@@ -0,0 +1,27 @@
+*** include/X3DTK/private/X3DMFNodeRecorder.inl.orig Fri Aug 27 13:18:22 2004
+--- include/X3DTK/private/X3DMFNodeRecorder.inl Sat Oct 29 12:40:12 2005
+***************
+*** 1,3 ****
+--- 1,5 ----
++ #include "X3DAbstractNodeForward.h"
++
+ namespace X3DTK {
+
+ template<class T, class V>
+***************
+*** 9,15 ****
+ template<class T, class V>
+ void MFNodeRecorder<T, V>::record(X3DAbstractNode *N) const
+ {
+! SFType *type = N->getType();
+
+ for (std::vector<std::pair<SFString, X3DMFNodeFunctor *> >::iterator it = type->nodesMap().begin(); it != type->nodesMap().end(); ++it)
+ {
+--- 11,17 ----
+ template<class T, class V>
+ void MFNodeRecorder<T, V>::record(X3DAbstractNode *N) const
+ {
+! SFType *type = X3DAbstractNode_getType(N);
+
+ for (std::vector<std::pair<SFString, X3DMFNodeFunctor *> >::iterator it = type->nodesMap().begin(); it != type->nodesMap().end(); ++it)
+ {
diff --git a/graphics/libx3dtk/files/patch-X3DSFNodeFunctor.inl b/graphics/libx3dtk/files/patch-X3DSFNodeFunctor.inl
new file mode 100644
index 000000000000..c925bdc7ada5
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-X3DSFNodeFunctor.inl
@@ -0,0 +1,65 @@
+*** include/X3DTK/private/X3DSFNodeFunctor.inl.orig Fri Aug 27 13:18:22 2004
+--- include/X3DTK/private/X3DSFNodeFunctor.inl Sat Oct 29 12:40:12 2005
+***************
+*** 1,3 ****
+--- 1,5 ----
++ #include "X3DAbstractNodeForward.h"
++
+ namespace X3DTK {
+
+ template<class T, class V>
+***************
+*** 17,25 ****
+ {
+ if (dynamic_cast<V *>(C) != 0)
+ {
+! X3DAbstractNode::removeParentFromChild(N, static_cast<T *>(N)->*_node);
+ static_cast<T *>(N)->*_node = static_cast<V *>(C);
+! X3DAbstractNode::addParentToChild(N, static_cast<T *>(N)->*_node);
+ return true;
+ }
+
+--- 19,27 ----
+ {
+ if (dynamic_cast<V *>(C) != 0)
+ {
+! X3DAbstractNode_removeParentFromChild(N, static_cast<T *>(N)->*_node);
+ static_cast<T *>(N)->*_node = static_cast<V *>(C);
+! X3DAbstractNode_addParentToChild(N, static_cast<T *>(N)->*_node);
+ return true;
+ }
+
+***************
+*** 31,37 ****
+ {
+ if (C == static_cast<T *>(N)->*_node)
+ {
+! X3DAbstractNode::removeParentFromChild(N, static_cast<T *>(N)->*_node);
+ static_cast<T *>(N)->*_node = 0;
+ return true;
+ }
+--- 33,39 ----
+ {
+ if (C == static_cast<T *>(N)->*_node)
+ {
+! X3DAbstractNode_removeParentFromChild(N, static_cast<T *>(N)->*_node);
+ static_cast<T *>(N)->*_node = 0;
+ return true;
+ }
+***************
+*** 44,50 ****
+ {
+ if (dynamic_cast<T *>(N) != 0)
+ {
+! X3DAbstractNode::removeParentFromChild(N, static_cast<T *>(N)->*_node);
+ static_cast<T *>(N)->*_node = 0;
+ }
+ }
+--- 46,52 ----
+ {
+ if (dynamic_cast<T *>(N) != 0)
+ {
+! X3DAbstractNode_removeParentFromChild(N, static_cast<T *>(N)->*_node);
+ static_cast<T *>(N)->*_node = 0;
+ }
+ }
diff --git a/graphics/libx3dtk/files/patch-X3DSFNodeRecorder.inl b/graphics/libx3dtk/files/patch-X3DSFNodeRecorder.inl
new file mode 100644
index 000000000000..14b2f1ad6bb7
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-X3DSFNodeRecorder.inl
@@ -0,0 +1,27 @@
+*** include/X3DTK/private/X3DSFNodeRecorder.inl.orig Fri Aug 27 13:18:22 2004
+--- include/X3DTK/private/X3DSFNodeRecorder.inl Sat Oct 29 12:40:12 2005
+***************
+*** 1,3 ****
+--- 1,5 ----
++ #include "X3DAbstractNodeForward.h"
++
+ namespace X3DTK {
+
+ template<class T, class V>
+***************
+*** 9,15 ****
+ template<class T, class V>
+ void SFNodeRecorder<T, V>::record(X3DAbstractNode *N) const
+ {
+! SFType *type = N->getType();
+
+ static_cast<T *>(N)->*_node = 0;
+
+--- 11,17 ----
+ template<class T, class V>
+ void SFNodeRecorder<T, V>::record(X3DAbstractNode *N) const
+ {
+! SFType *type = X3DAbstractNode_getType(N);
+
+ static_cast<T *>(N)->*_node = 0;
+
diff --git a/graphics/libx3dtk/files/patch-examples-X3DViewer-Viewer.cpp b/graphics/libx3dtk/files/patch-examples-X3DViewer-Viewer.cpp
new file mode 100644
index 000000000000..164e287de811
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-examples-X3DViewer-Viewer.cpp
@@ -0,0 +1,22 @@
+*** examples/X3DViewer/Viewer.cpp.orig Sat Oct 29 15:58:21 2005
+--- examples/X3DViewer/Viewer.cpp Sat Oct 29 15:59:38 2005
+***************
+*** 36,42 ****
+ scene.load(name);
+
+ // QGLViewer settings
+! setSceneBoundingBox(scene.getBBoxMin().f_data(), scene.getBBoxMax().f_data());
+ showEntireScene();
+ }
+
+--- 36,45 ----
+ scene.load(name);
+
+ // QGLViewer settings
+! setSceneBoundingBox(
+! qglviewer::Vec(scene.getBBoxMin()[0],scene.getBBoxMin()[1],scene.getBBoxMin()[2]),
+! qglviewer::Vec(scene.getBBoxMax()[0],scene.getBBoxMax()[1],scene.getBBoxMax()[2])
+! );
+ showEntireScene();
+ }
+
diff --git a/graphics/libx3dtk/files/patch-examples-examples.pro b/graphics/libx3dtk/files/patch-examples-examples.pro
new file mode 100644
index 000000000000..13d5269901f5
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-examples-examples.pro
@@ -0,0 +1,23 @@
+*** examples/examples.pro.orig Sat Oct 29 15:57:38 2005
+--- examples/examples.pro Sat Oct 29 15:57:44 2005
+***************
+*** 1,4 ****
+--- 1,5 ----
+ TEMPLATE = subdirs
++ INCLUDEPATH *= /usr/X11R6/include
+
+ SUBDIRS = \
+ X3DViewer \
+***************
+*** 16,20 ****
+ simpleNodeCounter \
+ meshCreation \
+ simplifiedMeshViewer \
+! redefineNodeTester \
+! mySimplifiedMeshViewer
+--- 17,21 ----
+ simpleNodeCounter \
+ meshCreation \
+ simplifiedMeshViewer \
+! redefineNodeTester
+!
diff --git a/graphics/libx3dtk/files/patch-examples-glNormalViewer-Viewer.cpp b/graphics/libx3dtk/files/patch-examples-glNormalViewer-Viewer.cpp
new file mode 100644
index 000000000000..89af1cb75b4c
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-examples-glNormalViewer-Viewer.cpp
@@ -0,0 +1,22 @@
+*** examples/glNormalViewer/Viewer.cpp.orig Sat Oct 29 15:58:21 2005
+--- examples/glNormalViewer/Viewer.cpp Sat Oct 29 16:01:33 2005
+***************
+*** 57,63 ****
+ scene.load(name, false);
+
+ // QGLViewer settings
+! setSceneBoundingBox(scene.getBBoxMin().f_data(), scene.getBBoxMax().f_data());
+ showEntireScene();
+ }
+
+--- 57,66 ----
+ scene.load(name, false);
+
+ // QGLViewer settings
+! setSceneBoundingBox(
+! qglviewer::Vec(scene.getBBoxMin()[0],scene.getBBoxMin()[1],scene.getBBoxMin()[2]),
+! qglviewer::Vec(scene.getBBoxMax()[0],scene.getBBoxMax()[1],scene.getBBoxMax()[2])
+! );
+ showEntireScene();
+ }
+
diff --git a/graphics/libx3dtk/files/patch-examples-icosahedronViewer-Viewer.cpp b/graphics/libx3dtk/files/patch-examples-icosahedronViewer-Viewer.cpp
new file mode 100644
index 000000000000..b54119b1c752
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-examples-icosahedronViewer-Viewer.cpp
@@ -0,0 +1,22 @@
+*** examples/icosahedronViewer/Viewer.cpp.orig Sat Oct 29 15:58:21 2005
+--- examples/icosahedronViewer/Viewer.cpp Sat Oct 29 16:03:49 2005
+***************
+*** 46,52 ****
+ scene.load(name);
+
+ // QGLViewer settings.
+! setSceneBoundingBox(scene.getBBoxMin().f_data(), scene.getBBoxMax().f_data());
+ showEntireScene();
+ }
+
+--- 46,55 ----
+ scene.load(name);
+
+ // QGLViewer settings.
+! setSceneBoundingBox(
+! qglviewer::Vec(scene.getBBoxMin()[0],scene.getBBoxMin()[1],scene.getBBoxMin()[2]),
+! qglviewer::Vec(scene.getBBoxMax()[0],scene.getBBoxMax()[1],scene.getBBoxMax()[2])
+! );
+ showEntireScene();
+ }
+
diff --git a/graphics/libx3dtk/files/patch-examples-infoReader-X3D_Info.cpp b/graphics/libx3dtk/files/patch-examples-infoReader-X3D_Info.cpp
new file mode 100644
index 000000000000..e5e4a6ca7426
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-examples-infoReader-X3D_Info.cpp
@@ -0,0 +1,19 @@
+*** examples/infoReader/X3D_Info.cpp.orig Sat Oct 29 16:04:44 2005
+--- examples/infoReader/X3D_Info.cpp Sat Oct 29 16:04:53 2005
+***************
+*** 21,27 ****
+
+ Info::~Info()
+ {
+! removeChidlren();
+ }
+
+ void Info::setDate(const Date &date)
+--- 21,27 ----
+
+ Info::~Info()
+ {
+! removeChildren();
+ }
+
+ void Info::setDate(const Date &date)
diff --git a/graphics/libx3dtk/files/patch-examples-infoReader-infoReader.pro b/graphics/libx3dtk/files/patch-examples-infoReader-infoReader.pro
new file mode 100644
index 000000000000..58fc30fc771f
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-examples-infoReader-infoReader.pro
@@ -0,0 +1,13 @@
+*** examples/infoReader/infoReader.pro.orig Sat Oct 29 16:04:15 2005
+--- examples/infoReader/infoReader.pro Sat Oct 29 16:04:26 2005
+***************
+*** 1,6 ****
+--- 1,8 ----
+ CONFIG *= thread
+ CONFIG -= qt
+
++ INCLUDEPATH *= /usr/X11R6/include
++
+ # needs to be added if the library uses Qt xml parser. Can be removed if not.
+ macx: QMAKE_LFLAGS += -lqt
+
diff --git a/graphics/libx3dtk/files/patch-examples-meshCreation-meshCreation.pro b/graphics/libx3dtk/files/patch-examples-meshCreation-meshCreation.pro
new file mode 100644
index 000000000000..377d09d4104b
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-examples-meshCreation-meshCreation.pro
@@ -0,0 +1,13 @@
+*** examples/meshCreation/meshCreation.pro.orig Sat Oct 29 16:11:58 2005
+--- examples/meshCreation/meshCreation.pro Sat Oct 29 16:12:09 2005
+***************
+*** 1,6 ****
+--- 1,8 ----
+ CONFIG *= thread
+ CONFIG -= qt
+
++ INCLUDEPATH *= /usr/X11R6/include
++
+ # needs to be added if the library uses Qt xml parser. Can be removed if not.
+ macx: QMAKE_LFLAGS += -lqt
+
diff --git a/graphics/libx3dtk/files/patch-examples-meshExtension-meshExtension.pro b/graphics/libx3dtk/files/patch-examples-meshExtension-meshExtension.pro
new file mode 100644
index 000000000000..31668db1ec9f
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-examples-meshExtension-meshExtension.pro
@@ -0,0 +1,13 @@
+*** examples/meshExtension/meshExtension.pro.orig Sat Oct 29 16:09:42 2005
+--- examples/meshExtension/meshExtension.pro Sat Oct 29 16:09:53 2005
+***************
+*** 1,6 ****
+--- 1,8 ----
+ CONFIG *= thread
+ CONFIG -= qt
+
++ INCLUDEPATH *= /usr/X11R6/include
++
+ # needs to be added if the library uses Qt xml parser. Can be removed if not.
+ macx: QMAKE_LFLAGS += -lqt
+
diff --git a/graphics/libx3dtk/files/patch-examples-meshTransformComputer-meshTransformComputer.pro b/graphics/libx3dtk/files/patch-examples-meshTransformComputer-meshTransformComputer.pro
new file mode 100644
index 000000000000..52c0fbae2eec
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-examples-meshTransformComputer-meshTransformComputer.pro
@@ -0,0 +1,13 @@
+*** examples/meshTransformComputer/meshTransformComputer.pro.orig Sat Oct 29 16:06:12 2005
+--- examples/meshTransformComputer/meshTransformComputer.pro Sat Oct 29 16:06:26 2005
+***************
+*** 1,6 ****
+--- 1,8 ----
+ CONFIG *= thread
+ CONFIG -= qt
+
++ INCLUDEPATH *= /usr/X11R6/include
++
+ # needs to be added if the library uses Qt xml parser. Can be removed if not.
+ macx: QMAKE_LFLAGS += -lqt
+
diff --git a/graphics/libx3dtk/files/patch-examples-meshViewer-Viewer.cpp b/graphics/libx3dtk/files/patch-examples-meshViewer-Viewer.cpp
new file mode 100644
index 000000000000..de88e374efe1
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-examples-meshViewer-Viewer.cpp
@@ -0,0 +1,22 @@
+*** examples/meshViewer/Viewer.cpp.orig Sat Oct 29 15:58:21 2005
+--- examples/meshViewer/Viewer.cpp Sat Oct 29 16:08:13 2005
+***************
+*** 41,47 ****
+ scene.load(name);
+
+ // QGLViewer settings.
+! setSceneBoundingBox(scene.getBBoxMin().f_data(), scene.getBBoxMax().f_data());
+ setSceneRadius(2.0f*sceneRadius());
+ showEntireScene();
+ }
+--- 41,50 ----
+ scene.load(name);
+
+ // QGLViewer settings.
+! setSceneBoundingBox(
+! qglviewer::Vec(scene.getBBoxMin()[0],scene.getBBoxMin()[1],scene.getBBoxMin()[2]),
+! qglviewer::Vec(scene.getBBoxMax()[0],scene.getBBoxMax()[1],scene.getBBoxMax()[2])
+! );
+ setSceneRadius(2.0f*sceneRadius());
+ showEntireScene();
+ }
diff --git a/graphics/libx3dtk/files/patch-examples-myMemReleaser-myMemReleaser.pro b/graphics/libx3dtk/files/patch-examples-myMemReleaser-myMemReleaser.pro
new file mode 100644
index 000000000000..c7d046215db1
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-examples-myMemReleaser-myMemReleaser.pro
@@ -0,0 +1,13 @@
+*** examples/myMemReleaser/myMemReleaser.pro.orig Sat Oct 29 16:00:35 2005
+--- examples/myMemReleaser/myMemReleaser.pro Sat Oct 29 16:00:50 2005
+***************
+*** 1,6 ****
+--- 1,8 ----
+ CONFIG *= thread
+ CONFIG -= qt
+
++ INCLUDEPATH *= /usr/X11R6/include
++
+ # needs to be added if the library uses Qt xml parser. Can be removed if not.
+ macx: QMAKE_LFLAGS += -lqt
+
diff --git a/graphics/libx3dtk/files/patch-examples-myStructureComputer-myStructureComputer.pro b/graphics/libx3dtk/files/patch-examples-myStructureComputer-myStructureComputer.pro
new file mode 100644
index 000000000000..855123d58ec3
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-examples-myStructureComputer-myStructureComputer.pro
@@ -0,0 +1,13 @@
+*** examples/myStructureComputer/myStructureComputer.pro.orig Sat Oct 29 16:08:48 2005
+--- examples/myStructureComputer/myStructureComputer.pro Sat Oct 29 16:09:09 2005
+***************
+*** 1,6 ****
+--- 1,8 ----
+ CONFIG *= thread
+ CONFIG -= qt
+
++ INCLUDEPATH *= /usr/X11R6/include
++
+ # needs to be added if the library uses Qt xml parser. Can be removed if not.
+ macx: QMAKE_LFLAGS += -lqt
+
diff --git a/graphics/libx3dtk/files/patch-examples-newNodeViewer-Viewer.cpp b/graphics/libx3dtk/files/patch-examples-newNodeViewer-Viewer.cpp
new file mode 100644
index 000000000000..27d3166350c0
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-examples-newNodeViewer-Viewer.cpp
@@ -0,0 +1,22 @@
+*** examples/newNodeViewer/Viewer.cpp.orig Sat Oct 29 15:58:21 2005
+--- examples/newNodeViewer/Viewer.cpp Sat Oct 29 16:02:06 2005
+***************
+*** 48,54 ****
+ cout << endl;
+
+ // QGLViewer settings.
+! setSceneBoundingBox(scene.getBBoxMin().f_data(), scene.getBBoxMax().f_data());
+ showEntireScene();
+ }
+
+--- 48,57 ----
+ cout << endl;
+
+ // QGLViewer settings.
+! setSceneBoundingBox(
+! qglviewer::Vec(scene.getBBoxMin()[0],scene.getBBoxMin()[1],scene.getBBoxMin()[2]),
+! qglviewer::Vec(scene.getBBoxMax()[0],scene.getBBoxMax()[1],scene.getBBoxMax()[2])
+! );
+ showEntireScene();
+ }
+
diff --git a/graphics/libx3dtk/files/patch-examples-nodeCounter-nodeCounter.pro b/graphics/libx3dtk/files/patch-examples-nodeCounter-nodeCounter.pro
new file mode 100644
index 000000000000..6e120e86904d
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-examples-nodeCounter-nodeCounter.pro
@@ -0,0 +1,13 @@
+*** examples/nodeCounter/nodeCounter.pro.orig Sat Oct 29 16:10:28 2005
+--- examples/nodeCounter/nodeCounter.pro Sat Oct 29 16:10:38 2005
+***************
+*** 1,6 ****
+--- 1,8 ----
+ CONFIG *= thread
+ CONFIG -= qt
+
++ INCLUDEPATH *= /usr/X11R6/include
++
+ # needs to be added if the library uses Qt xml parser. Can be removed if not.
+ macx: QMAKE_LFLAGS += -lqt
+
diff --git a/graphics/libx3dtk/files/patch-examples-redefineNodeTester-redefineNodeTester.pro b/graphics/libx3dtk/files/patch-examples-redefineNodeTester-redefineNodeTester.pro
new file mode 100644
index 000000000000..7a5161c06e8f
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-examples-redefineNodeTester-redefineNodeTester.pro
@@ -0,0 +1,13 @@
+*** examples/redefineNodeTester/redefineNodeTester.pro.orig Sat Oct 29 16:13:14 2005
+--- examples/redefineNodeTester/redefineNodeTester.pro Sat Oct 29 16:13:25 2005
+***************
+*** 1,6 ****
+--- 1,8 ----
+ CONFIG *= thread
+ CONFIG -= qt
+
++ INCLUDEPATH *= /usr/X11R6/include
++
+ # needs to be added if the library uses Qt xml parser. Can be removed if not.
+ macx: QMAKE_LFLAGS += -lqt
+
diff --git a/graphics/libx3dtk/files/patch-examples-simpleAnimationViewer-Viewer.cpp b/graphics/libx3dtk/files/patch-examples-simpleAnimationViewer-Viewer.cpp
new file mode 100644
index 000000000000..3c000c58abcc
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-examples-simpleAnimationViewer-Viewer.cpp
@@ -0,0 +1,22 @@
+*** examples/simpleAnimationViewer/Viewer.cpp.orig Sat Oct 29 15:58:21 2005
+--- examples/simpleAnimationViewer/Viewer.cpp Sat Oct 29 16:05:47 2005
+***************
+*** 46,52 ****
+ scene.init();
+
+ // QGLViewer settings.
+! setSceneBoundingBox(scene.getBBoxMin().f_data(), scene.getBBoxMax().f_data());
+ setSceneRadius(2.0f*sceneRadius());
+ showEntireScene();
+ }
+--- 46,55 ----
+ scene.init();
+
+ // QGLViewer settings.
+! setSceneBoundingBox(
+! qglviewer::Vec(scene.getBBoxMin()[0],scene.getBBoxMin()[1],scene.getBBoxMin()[2]),
+! qglviewer::Vec(scene.getBBoxMax()[0],scene.getBBoxMax()[1],scene.getBBoxMax()[2])
+! );
+ setSceneRadius(2.0f*sceneRadius());
+ showEntireScene();
+ }
diff --git a/graphics/libx3dtk/files/patch-examples-simpleNodeCounter-simpleNodeCounter.pro b/graphics/libx3dtk/files/patch-examples-simpleNodeCounter-simpleNodeCounter.pro
new file mode 100644
index 000000000000..40392036a51f
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-examples-simpleNodeCounter-simpleNodeCounter.pro
@@ -0,0 +1,13 @@
+*** examples/simpleNodeCounter/simpleNodeCounter.pro.orig Sat Oct 29 16:11:09 2005
+--- examples/simpleNodeCounter/simpleNodeCounter.pro Sat Oct 29 16:11:20 2005
+***************
+*** 1,6 ****
+--- 1,8 ----
+ CONFIG *= thread
+ CONFIG -= qt
+
++ INCLUDEPATH *= /usr/X11R6/include
++
+ # needs to be added if the library uses Qt xml parser. Can be removed if not.
+ macx: QMAKE_LFLAGS += -lqt
+
diff --git a/graphics/libx3dtk/files/patch-examples-simplifiedMeshViewer-Viewer.cpp b/graphics/libx3dtk/files/patch-examples-simplifiedMeshViewer-Viewer.cpp
new file mode 100644
index 000000000000..ef779c65c284
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-examples-simplifiedMeshViewer-Viewer.cpp
@@ -0,0 +1,22 @@
+*** examples/simplifiedMeshViewer/Viewer.cpp.orig Sat Oct 29 15:58:21 2005
+--- examples/simplifiedMeshViewer/Viewer.cpp Sat Oct 29 16:12:41 2005
+***************
+*** 41,47 ****
+ scene.load(name);
+
+ // QGLViewer settings.
+! setSceneBoundingBox(scene.getBBoxMin(), scene.getBBoxMax());
+ showEntireScene();
+ }
+
+--- 41,50 ----
+ scene.load(name);
+
+ // QGLViewer settings.
+! setSceneBoundingBox(
+! qglviewer::Vec(scene.getBBoxMin()[0],scene.getBBoxMin()[1],scene.getBBoxMin()[2]),
+! qglviewer::Vec(scene.getBBoxMax()[0],scene.getBBoxMax()[1],scene.getBBoxMax()[2])
+! );
+ showEntireScene();
+ }
+
diff --git a/graphics/libx3dtk/files/patch-src-X3DMFNodeFunctor.inl b/graphics/libx3dtk/files/patch-src-X3DMFNodeFunctor.inl
new file mode 100644
index 000000000000..8262681bc668
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-src-X3DMFNodeFunctor.inl
@@ -0,0 +1,60 @@
+*** src/kernel/abstractNode/X3DMFNodeFunctor.inl.orig Sat Oct 29 13:12:06 2005
+--- src/kernel/abstractNode/X3DMFNodeFunctor.inl Sat Oct 29 13:13:23 2005
+***************
+*** 1,3 ****
+--- 1,4 ----
++ #include "X3DAbstractNodeForward.h"
+ #include <typeinfo>
+
+ namespace X3DTK {
+***************
+*** 20,26 ****
+ if (dynamic_cast<V *>(C) != 0)
+ {
+ (static_cast<T *>(N)->*_nodes).push_back(C);
+! X3DAbstractNode::addParentToChild(N, C);
+ return true;
+ }
+
+--- 21,27 ----
+ if (dynamic_cast<V *>(C) != 0)
+ {
+ (static_cast<T *>(N)->*_nodes).push_back(C);
+! X3DAbstractNode_addParentToChild(N, C);
+ return true;
+ }
+
+***************
+*** 35,41 ****
+
+ if (res != nodes.end())
+ {
+! X3DAbstractNode::removeParentFromChild(N, C);
+ nodes.erase(res);
+ return true;
+ }
+--- 36,42 ----
+
+ if (res != nodes.end())
+ {
+! X3DAbstractNode_removeParentFromChild(N, C);
+ nodes.erase(res);
+ return true;
+ }
+***************
+*** 51,57 ****
+ MFNode &nodes = (static_cast<T *>(N)->*_nodes);
+
+ for (MFNode::const_iterator it = nodes.begin(); it != nodes.end(); ++it)
+! X3DAbstractNode::removeParentFromChild(N, *it);
+
+ nodes.clear();
+ }
+--- 52,58 ----
+ MFNode &nodes = (static_cast<T *>(N)->*_nodes);
+
+ for (MFNode::const_iterator it = nodes.begin(); it != nodes.end(); ++it)
+! X3DAbstractNode_removeParentFromChild(N, *it);
+
+ nodes.clear();
+ }
diff --git a/graphics/libx3dtk/files/patch-src-X3DSFNodeFunctor.inl b/graphics/libx3dtk/files/patch-src-X3DSFNodeFunctor.inl
new file mode 100644
index 000000000000..b7c33424efc3
--- /dev/null
+++ b/graphics/libx3dtk/files/patch-src-X3DSFNodeFunctor.inl
@@ -0,0 +1,57 @@
+*** src/kernel/abstractNode/X3DSFNodeFunctor.inl.orig Sat Oct 29 13:11:29 2005
+--- src/kernel/abstractNode/X3DSFNodeFunctor.inl Sat Oct 29 13:11:55 2005
+***************
+*** 17,25 ****
+ {
+ if (dynamic_cast<V *>(C) != 0)
+ {
+! X3DAbstractNode::removeParentFromChild(N, static_cast<T *>(N)->*_node);
+ static_cast<T *>(N)->*_node = static_cast<V *>(C);
+! X3DAbstractNode::addParentToChild(N, static_cast<T *>(N)->*_node);
+ return true;
+ }
+
+--- 17,25 ----
+ {
+ if (dynamic_cast<V *>(C) != 0)
+ {
+! X3DAbstractNode_removeParentFromChild(N, static_cast<T *>(N)->*_node);
+ static_cast<T *>(N)->*_node = static_cast<V *>(C);
+! X3DAbstractNode_addParentToChild(N, static_cast<T *>(N)->*_node);
+ return true;
+ }
+
+***************
+*** 31,37 ****
+ {
+ if (C == static_cast<T *>(N)->*_node)
+ {
+! X3DAbstractNode::removeParentFromChild(N, static_cast<T *>(N)->*_node);
+ static_cast<T *>(N)->*_node = 0;
+ return true;
+ }
+--- 31,37 ----
+ {
+ if (C == static_cast<T *>(N)->*_node)
+ {
+! X3DAbstractNode_removeParentFromChild(N, static_cast<T *>(N)->*_node);
+ static_cast<T *>(N)->*_node = 0;
+ return true;
+ }
+***************
+*** 44,50 ****
+ {
+ if (dynamic_cast<T *>(N) != 0)
+ {
+! X3DAbstractNode::removeParentFromChild(N, static_cast<T *>(N)->*_node);
+ static_cast<T *>(N)->*_node = 0;
+ }
+ }
+--- 44,50 ----
+ {
+ if (dynamic_cast<T *>(N) != 0)
+ {
+! X3DAbstractNode_removeParentFromChild(N, static_cast<T *>(N)->*_node);
+ static_cast<T *>(N)->*_node = 0;
+ }
+ }