[arch-commits] Commit in opencascade/repos (14 files)

Florian Pritz bluewind at archlinux.org
Fri Sep 23 14:51:31 UTC 2016


    Date: Friday, September 23, 2016 @ 14:51:31
  Author: bluewind
Revision: 190213

archrelease: copy trunk to community-testing-i686, community-testing-x86_64

Added:
  opencascade/repos/community-testing-i686/
  opencascade/repos/community-testing-i686/PKGBUILD
    (from rev 190212, opencascade/trunk/PKGBUILD)
  opencascade/repos/community-testing-i686/PKGBUILD-7.0.0
    (from rev 190212, opencascade/trunk/PKGBUILD-7.0.0)
  opencascade/repos/community-testing-i686/env.sh
    (from rev 190212, opencascade/trunk/env.sh)
  opencascade/repos/community-testing-i686/opencascade.conf
    (from rev 190212, opencascade/trunk/opencascade.conf)
  opencascade/repos/community-testing-i686/opencascade.sh
    (from rev 190212, opencascade/trunk/opencascade.sh)
  opencascade/repos/community-testing-i686/salome-occt-6.9.1.patch
    (from rev 190212, opencascade/trunk/salome-occt-6.9.1.patch)
  opencascade/repos/community-testing-x86_64/
  opencascade/repos/community-testing-x86_64/PKGBUILD
    (from rev 190212, opencascade/trunk/PKGBUILD)
  opencascade/repos/community-testing-x86_64/PKGBUILD-7.0.0
    (from rev 190212, opencascade/trunk/PKGBUILD-7.0.0)
  opencascade/repos/community-testing-x86_64/env.sh
    (from rev 190212, opencascade/trunk/env.sh)
  opencascade/repos/community-testing-x86_64/opencascade.conf
    (from rev 190212, opencascade/trunk/opencascade.conf)
  opencascade/repos/community-testing-x86_64/opencascade.sh
    (from rev 190212, opencascade/trunk/opencascade.sh)
  opencascade/repos/community-testing-x86_64/salome-occt-6.9.1.patch
    (from rev 190212, opencascade/trunk/salome-occt-6.9.1.patch)

--------------------------------------------------+
 community-testing-i686/PKGBUILD                  |   65 +
 community-testing-i686/PKGBUILD-7.0.0            |   54 +
 community-testing-i686/env.sh                    |   22 
 community-testing-i686/opencascade.conf          |    1 
 community-testing-i686/opencascade.sh            |    2 
 community-testing-i686/salome-occt-6.9.1.patch   |  744 +++++++++++++++++++++
 community-testing-x86_64/PKGBUILD                |   65 +
 community-testing-x86_64/PKGBUILD-7.0.0          |   54 +
 community-testing-x86_64/env.sh                  |   22 
 community-testing-x86_64/opencascade.conf        |    1 
 community-testing-x86_64/opencascade.sh          |    2 
 community-testing-x86_64/salome-occt-6.9.1.patch |  744 +++++++++++++++++++++
 12 files changed, 1776 insertions(+)

Copied: opencascade/repos/community-testing-i686/PKGBUILD (from rev 190212, opencascade/trunk/PKGBUILD)
===================================================================
--- community-testing-i686/PKGBUILD	                        (rev 0)
+++ community-testing-i686/PKGBUILD	2016-09-23 14:51:31 UTC (rev 190213)
@@ -0,0 +1,65 @@
+# Maintainer: Florian Pritz <bluewind at xinu.at>
+# Contributor: Giuseppe Borzi <gborzi at ieee.org>
+# Contributor: Brice M<E9>alier <mealier_brice at yahoo.fr>
+# Contributor: Michele Mocciola <mickele>
+pkgname=opencascade
+pkgver=6.9.1
+pkgrel=7
+pkgdesc="Open CASCADE Technology, 3D modeling & numerical simulation"
+arch=('i686' 'x86_64')
+url="http://www.opencascade.org"
+license=('custom')
+depends=('tk' 'mesa' 'libxmu' 'ftgl' 'vtk6')
+source=("https://sources.archlinux.org/other/community/opencascade/opencascade-$pkgver.tgz" "env.sh" "opencascade.sh" "opencascade.conf" 'salome-occt-6.9.1.patch')
+md5sums=('7f2e645b5010d190c9bb35dc457f9a7c'
+         'a96f28ee7f4273ae1771ee033a2a3af3'
+         'd9368b8d348ced3ec4462012977552d2'
+         '2924ecf57c95d25888f51071fdc72ad0'
+         '88db8e6b9afa132d1893bbb814250350')
+
+# This works around a bug that is corrected in OCCT 7.0.0
+export CCFLAGS+=" -O2 -fno-delete-null-pointer-checks"
+export CXXFLAGS+=" -O2 -fno-delete-null-pointer-checks"
+
+prepare() {
+  cd "$srcdir/$pkgname-$pkgver"
+
+  # fix build with vtk 6.3.0
+  sed -i '/CSF_VTK_LIB/s/-6\.1//g' configure.ac
+
+  # fix for automake 1.13
+  sed -i -e 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/' configure.ac
+
+  # Included in OCCT 7.0.0
+  patch -i "$srcdir/salome-occt-6.9.1.patch" -p1
+
+  ./build_configure
+}
+
+build() {
+  cd "$srcdir/$pkgname-$pkgver"
+
+  # fix build with vtk 6.3.0
+  CXXFLAGS+=' -DvtkFloatingPointType=double'
+
+  # Change to --enable-production with OCCT 7.0.0
+  ./configure --disable-debug --disable-production \
+    --with-vtk-library=/opt/vtk6/lib/ --with-vtk-include=/opt/vtk6/include/vtk/ \
+    --prefix=/opt/$pkgname
+  make
+}
+
+package() {
+  cd "$srcdir/$pkgname-$pkgver"
+
+  # no DESTDIR support so use prefix. This has to suffix match the prefix in ./configure
+  make prefix="$pkgdir/opt/$pkgname" install
+  cp -r src/UnitsAPI/ "${pkgdir}/opt/$pkgname/src"
+  install -D -m644 "${srcdir}/opencascade.conf" "${pkgdir}/etc/ld.so.conf.d/opencascade.conf"
+  install -D -m 755 "${srcdir}/opencascade.sh" "${pkgdir}/etc/profile.d/opencascade.sh"
+  install -m 755 "${srcdir}/env.sh" "${pkgdir}/opt/$pkgname"
+  install -dm755 "$pkgdir/usr/share/licenses/$pkgname/"
+  install -m644 LICENSE_LGPL_21.txt OCCT_LGPL_EXCEPTION.txt "$pkgdir/usr/share/licenses/$pkgname"
+}
+
+# vim:set ts=2 sw=2 et:

Copied: opencascade/repos/community-testing-i686/PKGBUILD-7.0.0 (from rev 190212, opencascade/trunk/PKGBUILD-7.0.0)
===================================================================
--- community-testing-i686/PKGBUILD-7.0.0	                        (rev 0)
+++ community-testing-i686/PKGBUILD-7.0.0	2016-09-23 14:51:31 UTC (rev 190213)
@@ -0,0 +1,54 @@
+# Maintainer: Florian Pritz <bluewind at xinu.at>
+# Contributor: Giuseppe Borzi <gborzi at ieee.org>
+# Contributor: Brice M<E9>alier <mealier_brice at yahoo.fr>
+# Contributor: Michele Mocciola <mickele>
+pkgname=opencascade
+pkgver=7.0.0
+pkgrel=1
+pkgdesc="Open CASCADE Technology, 3D modeling & numerical simulation"
+arch=('i686' 'x86_64')
+url="http://www.opencascade.org"
+license=('custom')
+depends=('tk' 'mesa' 'libxmu' 'ftgl' 'libxi')
+makedepends=('cmake')
+source=("https://sources.archlinux.org/other/community/opencascade/opencascade-$pkgver.tgz" "env.sh" "opencascade.sh" "opencascade.conf")
+md5sums=('fa1458aba1ce96c85d7876b35a04af6c'
+         'a96f28ee7f4273ae1771ee033a2a3af3'
+         'd9368b8d348ced3ec4462012977552d2'
+         '2924ecf57c95d25888f51071fdc72ad0')
+
+build() {
+  cd "$srcdir/$pkgname-$pkgver"
+
+  #export CFLAGS+=" -L/opt/vtk6/lib"
+  #export CXXFLAGS+=" -L/opt/vtk6/lib"
+
+  mkdir build
+  cd build
+  cmake \
+    -DCMAKE_INSTALL_PREFIX="$pkgdir/opt/$pkgname" \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DUSE_VTK=OFF \
+    ..
+    #-D3RDPARTY_VTK_INCLUDE_DIR=/opt/vtk6/include/vtk/ \
+    #-D3RDPARTY_VTK_LIBRARY_DIR=/opt/vtk6/lib/ \
+  make
+}
+
+package() {
+  cd "$srcdir/$pkgname-$pkgver"
+  cd build
+
+  # no DESTDIR support so use prefix. This has to suffix match the prefix in ./configure
+  make install/fast
+
+  cd ..
+  cp -r src/UnitsAPI/ "${pkgdir}/opt/$pkgname/src"
+  install -D -m644 "${srcdir}/opencascade.conf" "${pkgdir}/etc/ld.so.conf.d/opencascade.conf"
+  install -D -m 755 "${srcdir}/opencascade.sh" "${pkgdir}/etc/profile.d/opencascade.sh"
+  install -m 755 "${srcdir}/env.sh" "${pkgdir}/opt/$pkgname"
+  install -dm755 "$pkgdir/usr/share/licenses/$pkgname/"
+  install -m644 LICENSE_LGPL_21.txt OCCT_LGPL_EXCEPTION.txt "$pkgdir/usr/share/licenses/$pkgname"
+}
+
+# vim:set ts=2 sw=2 et:

Copied: opencascade/repos/community-testing-i686/env.sh (from rev 190212, opencascade/trunk/env.sh)
===================================================================
--- community-testing-i686/env.sh	                        (rev 0)
+++ community-testing-i686/env.sh	2016-09-23 14:51:31 UTC (rev 190213)
@@ -0,0 +1,22 @@
+#!/bin/sh -f
+
+export PATH="$PATH:$CASROOT/bin"
+export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$CASROOT/lib"
+
+export CSF_LANGUAGE=us
+export MMGT_CLEAR=1
+export CSF_EXCEPTION_PROMPT=1
+
+export CSF_SHMessage="$CASROOT"/src/SHMessage
+export CSF_MDTVTexturesDirectory="$CASROOT"/src/Textures
+export CSF_XSMessage="$CASROOT"/src/XSMessage
+export CSF_StandardDefaults="$CASROOT"/src/StdResource
+export CSF_PluginDefaults="$CASROOT"/src/StdResource
+export CSF_XCAFDefaults="$CASROOT"/src/StdResource
+export CSF_StandardLiteDefaults="$CASROOT"/src/StdResource
+export CSF_UnitsLexicon="$CASROOT"/src/UnitsAPI/Lexi_Expr.dat
+export CSF_UnitsDefinition="$CASROOT"/src/UnitsAPI/Units.dat
+export CSF_IGESDefaults="$CASROOT"/src/XSTEPResource
+export CSF_STEPDefaults="$CASROOT"/src/XSTEPResource
+export CSF_XmlOcafResource="$CASROOT"/src/XmlOcafResource
+export CSF_GraphicShr="$CASROOT"/lib/libTKOpenGl.so

Copied: opencascade/repos/community-testing-i686/opencascade.conf (from rev 190212, opencascade/trunk/opencascade.conf)
===================================================================
--- community-testing-i686/opencascade.conf	                        (rev 0)
+++ community-testing-i686/opencascade.conf	2016-09-23 14:51:31 UTC (rev 190213)
@@ -0,0 +1 @@
+/opt/opencascade/lib

Copied: opencascade/repos/community-testing-i686/opencascade.sh (from rev 190212, opencascade/trunk/opencascade.sh)
===================================================================
--- community-testing-i686/opencascade.sh	                        (rev 0)
+++ community-testing-i686/opencascade.sh	2016-09-23 14:51:31 UTC (rev 190213)
@@ -0,0 +1,2 @@
+export CASROOT=/opt/opencascade
+source /opt/opencascade/env.sh

Copied: opencascade/repos/community-testing-i686/salome-occt-6.9.1.patch (from rev 190212, opencascade/trunk/salome-occt-6.9.1.patch)
===================================================================
--- community-testing-i686/salome-occt-6.9.1.patch	                        (rev 0)
+++ community-testing-i686/salome-occt-6.9.1.patch	2016-09-23 14:51:31 UTC (rev 190213)
@@ -0,0 +1,744 @@
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/drv/BRepFill/BRepFill_Pipe.jxx OCCT-6.9.1p1_SRC/drv/BRepFill/BRepFill_Pipe.jxx
+--- OCCT-6.9.1_SRC/drv/BRepFill/BRepFill_Pipe.jxx	2015-09-25 17:35:58.000000000 +0300
++++ OCCT-6.9.1p1_SRC/drv/BRepFill/BRepFill_Pipe.jxx	2016-04-26 16:10:42.000000000 +0300
+@@ -4,6 +4,7 @@
+ #include <StdFail_NotDone.hxx>
+ #include <TopoDS_Wire.hxx>
+ #include <TopoDS_Shape.hxx>
++#include <TopTools_ListOfShape.hxx>
+ #include <TopoDS_Face.hxx>
+ #include <TopoDS_Edge.hxx>
+ #include <TopoDS_Vertex.hxx>
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/drv/BRepOffsetAPI/BRepOffsetAPI_MakePipe.jxx OCCT-6.9.1p1_SRC/drv/BRepOffsetAPI/BRepOffsetAPI_MakePipe.jxx
+--- OCCT-6.9.1_SRC/drv/BRepOffsetAPI/BRepOffsetAPI_MakePipe.jxx	2015-09-25 17:36:04.000000000 +0300
++++ OCCT-6.9.1p1_SRC/drv/BRepOffsetAPI/BRepOffsetAPI_MakePipe.jxx	2016-04-26 16:10:47.000000000 +0300
+@@ -1,4 +1,5 @@
+ #include <TopoDS_Wire.hxx>
+ #include <TopoDS_Shape.hxx>
+ #include <BRepFill_Pipe.hxx>
++#include <TopTools_ListOfShape.hxx>
+ #include <BRepOffsetAPI_MakePipe.hxx>
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/inc/BRepFill_Pipe.hxx OCCT-6.9.1p1_SRC/inc/BRepFill_Pipe.hxx
+--- OCCT-6.9.1_SRC/inc/BRepFill_Pipe.hxx	2015-09-25 17:35:58.000000000 +0300
++++ OCCT-6.9.1p1_SRC/inc/BRepFill_Pipe.hxx	2016-04-26 16:10:42.000000000 +0300
+@@ -18,6 +18,7 @@
+ #include <TopTools_MapOfShape.hxx>
+ #include <BRepFill_DataMapOfShapeHArray2OfShape.hxx>
+ #include <Standard_Integer.hxx>
++#include <TopTools_DataMapOfShapeListOfShape.hxx>
+ #include <GeomAbs_Shape.hxx>
+ #include <GeomFill_Trihedron.hxx>
+ #include <Standard_Boolean.hxx>
+@@ -28,6 +29,7 @@
+ class StdFail_NotDone;
+ class TopoDS_Wire;
+ class TopoDS_Shape;
++class TopTools_ListOfShape;
+ class TopoDS_Face;
+ class TopoDS_Edge;
+ class TopoDS_Vertex;
+@@ -65,6 +67,9 @@
+   
+   Standard_EXPORT  const  TopoDS_Shape& LastShape()  const;
+   
++  //! Returns the list of shapes generated from the shape <S>.
++  Standard_EXPORT   void Generated (const TopoDS_Shape& S, TopTools_ListOfShape& L) ;
++  
+   //! Returns the face created from an edge of the spine
+   //! and an edge of the profile.
+   //! if the edges are not in the spine or the profile
+@@ -131,6 +136,7 @@
+   Standard_Integer myCurIndexOfSectionEdge;
+   TopoDS_Shape myFirst;
+   TopoDS_Shape myLast;
++  TopTools_DataMapOfShapeListOfShape myGenMap;
+   Standard_Integer myDegmax;
+   Standard_Integer mySegmax;
+   GeomAbs_Shape myContinuity;
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/inc/BRepOffsetAPI_MakePipe.hxx OCCT-6.9.1p1_SRC/inc/BRepOffsetAPI_MakePipe.hxx
+--- OCCT-6.9.1_SRC/inc/BRepOffsetAPI_MakePipe.hxx	2015-09-25 17:36:04.000000000 +0300
++++ OCCT-6.9.1p1_SRC/inc/BRepOffsetAPI_MakePipe.hxx	2016-04-26 16:10:47.000000000 +0300
+@@ -18,6 +18,7 @@
+ class TopoDS_Wire;
+ class TopoDS_Shape;
+ class BRepFill_Pipe;
++class TopTools_ListOfShape;
+ 
+ 
+ //! Describes functions to build pipes.
+@@ -68,6 +69,8 @@
+   //! Returns the TopoDS Shape of the top of the prism.
+   Standard_EXPORT   TopoDS_Shape LastShape() ;
+   
++  Standard_EXPORT virtual  const  TopTools_ListOfShape& Generated (const TopoDS_Shape& S) ;
++  
+   Standard_EXPORT   TopoDS_Shape Generated (const TopoDS_Shape& SSpine, const TopoDS_Shape& SProfile) ;
+   
+   Standard_EXPORT   Standard_Real ErrorOnSurface()  const;
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/src/BRepFill/BRepFill_Pipe.cdl OCCT-6.9.1p1_SRC/src/BRepFill/BRepFill_Pipe.cdl
+--- OCCT-6.9.1_SRC/src/BRepFill/BRepFill_Pipe.cdl	2015-09-16 18:27:02.000000000 +0300
++++ OCCT-6.9.1p1_SRC/src/BRepFill/BRepFill_Pipe.cdl	2016-04-26 15:51:10.000000000 +0300
+@@ -15,11 +15,11 @@
+ -- commercial license or contractual agreement.
+ 
+ 
+-class Pipe from BRepFill 
++class Pipe from BRepFill
+ 
+ 	---Purpose: Create a  shape by sweeping a shape  (the profile)
+ 	--          along a wire (the spine).
+-	--          
++	--
+ 	--          For each edge  or vertex from the spine  the  user
+ 	--          may ask for the shape generated from each subshape
+ 	--          of the profile.
+@@ -28,38 +28,40 @@
+ 
+     HArray2OfShape from TopTools,
+     MapOfShape     from TopTools,
++		ListOfShape from TopTools,
+     DataMapOfShapeHArray2OfShape from BRepFill,
++		DataMapOfShapeListOfShape from TopTools,
+     LocationLaw  from BRepFill,
+     Shape  from TopoDS,
+     Face   from TopoDS,
+     Wire   from TopoDS,
+     Edge   from TopoDS,
+-    Vertex from TopoDS,  
++    Vertex from TopoDS,
+     Pnt    from  gp,
+     Trsf   from  gp,
+     Shape  from GeomAbs,
+     Trihedron from GeomFill
+ 
+ raises
+-    DomainError from Standard, 
++    DomainError from Standard,
+     NotDone     from StdFail
+ 
+ is
+ 
+     Create returns Pipe from BRepFill;
+-    
+-    Create ( Spine   : Wire from TopoDS; 
++
++    Create ( Spine   : Wire from TopoDS;
+     	     Profile : Shape from TopoDS;
+ 	     aMode   : Trihedron from GeomFill = GeomFill_IsCorrectedFrenet;
+ 	     ForceApproxC1 : Boolean from Standard = Standard_False;
+-             GeneratePartCase : Boolean from Standard = Standard_False) 
++             GeneratePartCase : Boolean from Standard = Standard_False)
+     returns Pipe from BRepFill;
+-    
+-    Perform (me : in out;  Spine   : Wire from TopoDS; 
++
++    Perform (me : in out;  Spine   : Wire from TopoDS;
+     	    	    	   Profile : Shape from TopoDS;
+-                           GeneratePartCase : Boolean from Standard = Standard_False) 
++                           GeneratePartCase : Boolean from Standard = Standard_False)
+     is static;
+-    
++
+     Spine(me) returns Shape from TopoDS
+ 	---C++ : return const &
+     is static;
+@@ -74,7 +76,7 @@
+ 
+     ErrorOnSurface (me)
+     returns Real from Standard;
+-    
++
+     FirstShape(me) returns Shape from TopoDS
+ 	---C++ : return const &
+     is static;
+@@ -83,27 +85,30 @@
+ 	---C++ : return const &
+     is static;
+ 
++    Generated(me: in out; S: Shape from TopoDS; L: in out ListOfShape from TopTools);
++    ---Purpose: Returns the list of shapes generated from the shape <S>.
++
+     Face(me : in out; ESpine, EProfile : Edge from TopoDS)
+     returns Face from TopoDS
+ 	---Purpose: Returns the face created from an edge of the spine
+ 	--          and an edge of the profile.
+     raises
+-    	DomainError from Standard 
++    	DomainError from Standard
+ 	---Purpose: if the edges are not in the spine or the profile
+-	
++
+     is static;
+-    
++
+     Edge(me : in out; ESpine : Edge from TopoDS; VProfile : Vertex from TopoDS)
+     returns Edge from TopoDS
+ 	---Purpose: Returns the edge created from an edge of the spine
+ 	--          and a vertex of the profile.
+     raises
+-    	DomainError from Standard 
++    	DomainError from Standard
+ 	---Purpose: if the edge or the vertex are not in  the spine or
+ 	--          the profile.
+-	
++
+     is static;
+-    
++
+     Section(me; VSpine : Vertex from TopoDS)
+     returns Shape from TopoDS
+ 	---Purpose: Returns  the shape created from the profile at the
+@@ -111,50 +116,50 @@
+     raises
+     	DomainError from Standard
+ 	---Purpose: if the vertex is not in the Spine
+-    is static; 
+-     
+-     
+-    PipeLine(me : in out;  Point :  Pnt  from  gp)  
++    is static;
++
++
++    PipeLine(me : in out;  Point :  Pnt  from  gp)
+ 	---Purpose: Create a Wire by sweeping the Point along the <spine>
+-    returns  Wire  from  TopoDS 
++    returns  Wire  from  TopoDS
+     raises
+     	DomainError from Standard
+-	---Purpose: if the <Spine> is undefined      
++	---Purpose: if the <Spine> is undefined
+     is  static;
+ 
+ 
+     --
+     --  Private methods
+-    --  
+-    
+-    MakeShape(me : in out; S : Shape from TopoDS; 
++    --
++
++    MakeShape(me : in out; S : Shape from TopoDS;
+     	    	    	   FirstShape,  LastShape  :  Shape  from  TopoDS)
+     returns Shape from TopoDS
+ 	---Purpose: Auxiliary  recursive  method  used  to  build  the
+-	--          result. 
++	--          result.
+     is static private;
+ 
+ 
+-    FindEdge(me;  S : Shape from TopoDS;  
+-    	          E : Edge  from  TopoDS;  
+-		  Init  : in  out Integer)	 
++    FindEdge(me;  S : Shape from TopoDS;
++    	          E : Edge  from  TopoDS;
++		  Init  : in  out Integer)
+ 	---Purpose: Auxiliary recursive method used to find the edge's index
+     returns  Integer
+     is static private;
+ 
+-    FindVertex(me;  S : Shape from TopoDS;  
+-    	            V : Vertex  from  TopoDS;  
+-		    Init  : in  out Integer) 
++    FindVertex(me;  S : Shape from TopoDS;
++    	            V : Vertex  from  TopoDS;
++		    Init  : in  out Integer)
+     returns  Integer
+-    is static private; 
+-  
++    is static private;
++
+     DefineRealSegmax(me : in out)
+-    is static private; 
+-    
++    is static private;
++
+     RebuildTopOrBottomFace(me; aFace: Shape from TopoDS;
+     	    	    	       IsTop: Boolean from Standard)
+-    is static private; 
+-    
++    is static private;
++
+     ShareFaces(me: in out; theShape: Shape from TopoDS;
+                            theInitialFacesLen: Integer;
+                            theInitialEdgesLen: Integer;
+@@ -164,30 +169,31 @@
+ 	--          Returns the shared shape. If theShape is not modified this
+ 	--          method returns it.
+     returns Shape from TopoDS
+-    is static private; 
+-     
++    is static private;
++
+ fields
+     mySpine   : Wire  from TopoDS;
+     myProfile : Shape from TopoDS;
+-    myShape   : Shape from TopoDS; 
+-    myTrsf    : Trsf  from  gp; 
++    myShape   : Shape from TopoDS;
++    myTrsf    : Trsf  from  gp;
+     myLoc     : LocationLaw  from BRepFill;
+-    mySections: HArray2OfShape from TopTools; 
+-    myFaces   : HArray2OfShape from TopTools;  
+-    myEdges   : HArray2OfShape from TopTools;  
+-    myReversedEdges : MapOfShape from TopTools;  
++    mySections: HArray2OfShape from TopTools;
++    myFaces   : HArray2OfShape from TopTools;
++    myEdges   : HArray2OfShape from TopTools;
++    myReversedEdges : MapOfShape from TopTools;
+     myTapes   : DataMapOfShapeHArray2OfShape from BRepFill;
+     myRails   : DataMapOfShapeHArray2OfShape from BRepFill;
+     myCurIndexOfSectionEdge : Integer from Standard;
+-    myFirst   :  Shape  from  TopoDS; 
+-    myLast    :  Shape  from  TopoDS; 
+-     
++    myFirst   :  Shape  from  TopoDS;
++    myLast    :  Shape  from  TopoDS;
++		myGenMap  : DataMapOfShapeListOfShape from TopTools;
++
+     myDegmax  : Integer from Standard;
+     mySegmax  : Integer from Standard;
+     myContinuity : Shape from GeomAbs;
+     myMode    : Trihedron from GeomFill;
+     myForceApproxC1 : Boolean from Standard;
+-    
++
+     myErrorOnSurf : Real from Standard;
+-    
++
+ end Pipe;
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/src/BRepFill/BRepFill_Pipe.cxx OCCT-6.9.1p1_SRC/src/BRepFill/BRepFill_Pipe.cxx
+--- OCCT-6.9.1_SRC/src/BRepFill/BRepFill_Pipe.cxx	2015-09-16 18:27:02.000000000 +0300
++++ OCCT-6.9.1p1_SRC/src/BRepFill/BRepFill_Pipe.cxx	2016-04-26 15:51:10.000000000 +0300
+@@ -69,6 +69,38 @@
+ static Standard_Boolean Affich = 0;
+ #endif
+ 
++// ---------------------------------------------------------------------------------
++// static function: UpdateMap
++// purpose:
++// ---------------------------------------------------------------------------------
++static Standard_Boolean UpdateMap(const TopoDS_Shape&                 theKey,
++                                  const TopoDS_Shape&                 theValue,
++                                  TopTools_DataMapOfShapeListOfShape& theMap)
++{
++  if(!theMap.IsBound(theKey))
++  {
++    TopTools_ListOfShape thelist;
++    theMap.Bind(theKey, thelist);
++  }
++  TopTools_ListOfShape& aList = theMap.ChangeFind(theKey);
++  TopTools_ListIteratorOfListOfShape anIt(aList);
++  Standard_Boolean found = Standard_False;
++
++  for(; anIt.More(); anIt.Next())
++  {
++    if(theValue.IsSame(anIt.Value()))
++    {
++      found = Standard_True;
++      break;
++    }
++  }
++
++  if(!found)
++    aList.Append(theValue);
++  
++  return !found;
++}
++
+ static void ReverseModifiedEdges(TopoDS_Shape& aShape,
+                                  TopTools_MapOfShape& Emap)
+ {
+@@ -374,6 +406,47 @@
+   return myLast;
+ }
+ 
++//=======================================================================
++//function : Generated
++//purpose  : 
++//=======================================================================
++void BRepFill_Pipe::Generated(const TopoDS_Shape&   theShape,
++                              TopTools_ListOfShape& theList) 
++{
++  theList.Clear();
++
++  if (theShape.IsSame(myProfile))
++    theList.Append(myShape);
++  else
++  {
++    if (theShape.ShapeType() == TopAbs_FACE ||
++        theShape.ShapeType() == TopAbs_WIRE)
++    {
++      if(myGenMap.IsBound(theShape))
++        theList = myGenMap.Find(theShape);
++    }
++    else if (theShape.ShapeType() == TopAbs_EDGE)
++    {
++      TopoDS_Iterator itw(mySpine);
++      for (; itw.More(); itw.Next())
++      {
++        const TopoDS_Edge& aSpineEdge = TopoDS::Edge(itw.Value());
++        const TopoDS_Shape& aFace = Face(aSpineEdge, TopoDS::Edge(theShape));
++        theList.Append(aFace);
++      }
++    }
++    else if (theShape.ShapeType() == TopAbs_VERTEX)
++    {
++      TopoDS_Iterator itw(mySpine);
++      for (; itw.More(); itw.Next())
++      {
++        const TopoDS_Edge& aSpineEdge = TopoDS::Edge(itw.Value());
++        const TopoDS_Shape& anEdge = Edge(aSpineEdge, TopoDS::Vertex(theShape));
++        theList.Append(anEdge);
++      }
++    }
++  }
++}
+ 
+ //=======================================================================
+ //function : Face
+@@ -640,6 +713,7 @@
+       MkSw.Build( myReversedEdges, myTapes, myRails,
+                   BRepFill_Modified, myContinuity, GeomFill_Location, myDegmax, mySegmax );
+       result = MkSw.Shape();
++      UpdateMap(TheS.Located(myProfile.Location()), result, myGenMap);
+       myErrorOnSurf = MkSw.ErrorOnSurface();
+ 
+       Handle(TopTools_HArray2OfShape) aSections = MkSw.Sections();
+@@ -662,6 +736,7 @@
+       MkSw.Build( myReversedEdges, myTapes, myRails,
+                   BRepFill_Modified, myContinuity, GeomFill_Location, myDegmax, mySegmax );
+       result = MkSw.Shape();
++      UpdateMap(TheS.Located(myProfile.Location()), result, myGenMap);
+       myErrorOnSurf = MkSw.ErrorOnSurface();
+       //Correct <myFirst> and <myLast>
+       ReverseModifiedEdges(myFirst, myReversedEdges);
+@@ -769,6 +844,7 @@
+       BS.Add(solid,TopoDS::Shell(aLocalShape));
+ //      BS.Add(solid,TopoDS::Shell(result.Reversed()));
+     }
++    UpdateMap(TheS.Located(myProfile.Location()), solid, myGenMap);
+     return solid;
+   }
+   else {
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cdl OCCT-6.9.1p1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cdl
+--- OCCT-6.9.1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cdl	2015-09-16 18:27:03.000000000 +0300
++++ OCCT-6.9.1p1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cdl	2016-04-26 15:51:11.000000000 +0300
+@@ -36,8 +36,8 @@
+     ListOfShape from TopTools
+ 
+ is
+- 
+-    
++
++
+     Create( Spine   : Wire  from TopoDS;
+     	    Profile : Shape from TopoDS )
+ 	---Purpose: Constructs a pipe by sweeping the shape Profile along
+@@ -52,7 +52,7 @@
+     	-- Standard_DomainError if the profile is a solid or a
+     	-- composite solid.
+     returns MakePipe from BRepOffsetAPI;
+-    
++
+     Create( Spine   : Wire  from TopoDS;
+     	    Profile : Shape from TopoDS;
+ 	    aMode   : Trihedron from GeomFill;
+@@ -72,7 +72,7 @@
+     Build(me : in out)
+     is redefined;
+ 	---Purpose: Builds the resulting shape (redefined from MakeShape).
+-	---Level: Public    
++	---Level: Public
+ 
+ 
+     FirstShape (me : in out)
+@@ -84,6 +84,11 @@
+     ---Purpose: Returns the TopoDS Shape of the top of the prism.
+     returns Shape from TopoDS;
+ 
++    Generated (me: in out; S: Shape from TopoDS)
++    returns ListOfShape from TopTools
++    is redefined;
++    ---C++: return const &
++    ---Level: Public
+ 
+     Generated (me: in out; SSpine, SProfile : Shape from TopoDS)
+         ---Level: Public
+@@ -99,4 +104,4 @@
+ 
+     myPipe : Pipe from BRepFill;
+ 
+-end MakePipe; 
++end MakePipe;
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cxx OCCT-6.9.1p1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cxx
+--- OCCT-6.9.1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cxx	2015-09-16 18:27:03.000000000 +0300
++++ OCCT-6.9.1p1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cxx	2016-04-26 15:51:11.000000000 +0300
+@@ -109,14 +109,23 @@
+   return myPipe.LastShape();
+ }
+ 
++//=======================================================================
++//function : Generated
++//purpose  : standard method
++//=======================================================================
++const TopTools_ListOfShape& BRepOffsetAPI_MakePipe::Generated(const TopoDS_Shape& S) 
++{
++  myPipe.Generated(S, myGenerated);
++  return myGenerated;
++}
+ 
+ //=======================================================================
+ //function : Generated
+-//purpose  : 
++//purpose  : returns generated elementary subshape
+ //=======================================================================
+ 
+-TopoDS_Shape BRepOffsetAPI_MakePipe::Generated (const TopoDS_Shape& SSpine,
+-					  const TopoDS_Shape& SProfile)
++TopoDS_Shape BRepOffsetAPI_MakePipe::Generated(const TopoDS_Shape& SSpine,
++                                               const TopoDS_Shape& SProfile)
+ {
+   if (SProfile.ShapeType () == TopAbs_EDGE) {
+     return myPipe.Face (TopoDS::Edge (SSpine), TopoDS::Edge (SProfile));
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/src/QABugs/QABugs_19.cxx OCCT-6.9.1p1_SRC/src/QABugs/QABugs_19.cxx
+--- OCCT-6.9.1_SRC/src/QABugs/QABugs_19.cxx	2015-09-16 18:27:29.000000000 +0300
++++ OCCT-6.9.1p1_SRC/src/QABugs/QABugs_19.cxx	2016-04-26 15:51:28.000000000 +0300
+@@ -53,6 +53,7 @@
+ #include <GeomFill_Trihedron.hxx>
+ #include <BRepOffsetAPI_MakePipe.hxx>
+ #include <Standard_Atomic.hxx>
++#include <TopTools_ListIteratorOfListOfShape.hxx>
+ 
+ #include <Standard_Version.hxx>
+ 
+@@ -4306,6 +4307,95 @@
+   return 0;
+ }
+ 
++//========================================================================
++//function : OCC27065
++//purpose  : Tests overloaded method "Generated" of BRepOffsetAPI_MakePipe
++//========================================================================
++static Standard_Integer OCC27065(Draw_Interpretor& di,
++                                 Standard_Integer n, const char** a)
++{
++  if (n < 3) return 1;
++  BRep_Builder BB;
++
++  TopoDS_Shape SpineShape = DBRep::Get(a[1],TopAbs_WIRE);
++  if ( SpineShape.IsNull()) return 1;
++  TopoDS_Wire Spine = TopoDS::Wire(SpineShape);
++
++  TopoDS_Shape Profile = DBRep::Get(a[2]);
++  if ( Profile.IsNull()) return 1;
++
++  BRepOffsetAPI_MakePipe aPipeBuilder(Spine, Profile);
++  if (!aPipeBuilder.IsDone())
++  {
++    di << "Error: failed to create pipe\n";
++    return 1;
++  }
++
++  TopExp_Explorer Explo(Profile, TopAbs_SHELL);
++  TopoDS_Shape aShape;
++  TopTools_ListIteratorOfListOfShape itl;
++  if (Explo.More())
++  {
++    aShape = Explo.Current();
++    TopoDS_Compound res1;
++    BB.MakeCompound(res1);
++    itl.Initialize(aPipeBuilder.Generated(aShape));
++    for (; itl.More(); itl.Next())
++      BB.Add(res1, itl.Value());
++    DBRep::Set("res_shell", res1);
++  }
++
++  Explo.Init(Profile, TopAbs_FACE);
++  if (Explo.More())
++  {
++    aShape = Explo.Current();
++    TopoDS_Compound res2;
++    BB.MakeCompound(res2);
++    itl.Initialize(aPipeBuilder.Generated(aShape));
++    for (; itl.More(); itl.Next())
++      BB.Add(res2, itl.Value());
++    DBRep::Set("res_face", res2);
++  }
++
++  Explo.Init(Profile, TopAbs_WIRE);
++  if (Explo.More())
++  {
++    aShape = Explo.Current();
++    TopoDS_Compound res3;
++    BB.MakeCompound(res3);
++    itl.Initialize(aPipeBuilder.Generated(aShape));
++    for (; itl.More(); itl.Next())
++      BB.Add(res3, itl.Value());
++    DBRep::Set("res_wire", res3);
++  }
++
++  Explo.Init(Profile, TopAbs_EDGE);
++  if (Explo.More())
++  {
++    aShape = Explo.Current();
++    TopoDS_Compound res4;
++    BB.MakeCompound(res4);
++    itl.Initialize(aPipeBuilder.Generated(aShape));
++    for (; itl.More(); itl.Next())
++      BB.Add(res4, itl.Value());
++    DBRep::Set("res_edge", res4);
++  }
++
++  Explo.Init(Profile, TopAbs_VERTEX);
++  if (Explo.More())
++  {
++    aShape = Explo.Current();
++    TopoDS_Compound res5;
++    BB.MakeCompound(res5);
++    itl.Initialize(aPipeBuilder.Generated(aShape));
++    for (; itl.More(); itl.Next())
++      BB.Add(res5, itl.Value());
++    DBRep::Set("res_vertex", res5);
++  }
++
++  return 0;
++}
++
+ void QABugs::Commands_19(Draw_Interpretor& theCommands) {
+   const char *group = "QABugs";
+ 
+@@ -4397,5 +4487,9 @@
+ 
+   theCommands.Add ("OCC26313", "OCC26313 result shape", __FILE__, OCC26313, group);
+ 
++  theCommands.Add ("OCC27065",
++                   "OCC27065 spine profile",
++                   __FILE__, OCC27065, group);
++
+   return;
+ }
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/src/SelectMgr/SelectMgr_SelectionManager.cxx OCCT-6.9.1p1_SRC/src/SelectMgr/SelectMgr_SelectionManager.cxx
+--- OCCT-6.9.1_SRC/src/SelectMgr/SelectMgr_SelectionManager.cxx	2015-09-16 18:27:36.000000000 +0300
++++ OCCT-6.9.1p1_SRC/src/SelectMgr/SelectMgr_SelectionManager.cxx	2016-04-26 15:51:32.000000000 +0300
+@@ -687,6 +687,7 @@
+   for(theObject->Init(); theObject->More(); theObject->Next())
+   {
+     const Handle(SelectMgr_Selection)& aSelection = theObject->CurrentSelection();
++    aSelection->UpdateStatus (SelectMgr_TOU_Full);
+     Standard_Integer aSelMode = aSelection->Mode();
+ 
+     for (TColStd_MapIteratorOfMapOfTransient aSelectorIter (mySelectors); aSelectorIter.More(); aSelectorIter.Next())
+@@ -697,10 +698,10 @@
+           ClearSelectionStructures (theObject, aSelMode, aCurSelector);
+           theObject->RecomputePrimitives(aSelMode);
+           RestoreSelectionStructures (theObject, aSelMode, aCurSelector);
++          aSelection->UpdateStatus (SelectMgr_TOU_None);
++          aSelection->UpdateBVHStatus (SelectMgr_TBU_None);
+       }
+     }
+-    aSelection->UpdateStatus (SelectMgr_TOU_None);
+-    aSelection->UpdateBVHStatus (SelectMgr_TBU_None);
+   }
+ }
+ 
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/tests/bugs/modalg_6/bug27065_1 OCCT-6.9.1p1_SRC/tests/bugs/modalg_6/bug27065_1
+--- OCCT-6.9.1_SRC/tests/bugs/modalg_6/bug27065_1	1970-01-01 03:00:00.000000000 +0300
++++ OCCT-6.9.1p1_SRC/tests/bugs/modalg_6/bug27065_1	2016-04-26 14:43:27.000000000 +0300
+@@ -0,0 +1,24 @@
++puts "============"
++puts "OCC27065"
++puts "============"
++puts ""
++###############################
++## BRepOffsetAPI_MakePipe misses definition of virtual method Generated()
++###############################
++
++pload QAcommands
++
++restore [locate_data_file bug24840_comp.brep] sh
++explode sh
++OCC27065 sh_1 sh_2
++fit
++
++checknbshapes res_shell -vertex 56 -edge 130 -wire 99 -face 99 -shell 24 -solid 24 -compsolid 1 -compound 1 -shape 434
++
++checknbshapes res_face -vertex 8 -edge 12 -wire 6 -face 6 -shell 1 -solid 1 -compsolid 0 -compound 1 -shape 35
++
++checknbshapes res_wire -vertex 8 -edge 12 -wire 4 -face 4 -shell 1 -solid 0 -compsolid 0 -compound 1 -shape 30
++
++checknbshapes res_edge -vertex 4 -edge 4 -wire 1 -face 1 -shell 0 -solid 0 -compsolid 0 -compound 1 -shape 11
++
++checknbshapes res_vertex -vertex 2 -edge 1 -wire 0 -face 0 -shell 0 -solid 0 -compsolid 0 -compound 1 -shape 4
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/tests/bugs/modalg_6/bug27065_2 OCCT-6.9.1p1_SRC/tests/bugs/modalg_6/bug27065_2
+--- OCCT-6.9.1_SRC/tests/bugs/modalg_6/bug27065_2	1970-01-01 03:00:00.000000000 +0300
++++ OCCT-6.9.1p1_SRC/tests/bugs/modalg_6/bug27065_2	2016-04-26 14:43:27.000000000 +0300
+@@ -0,0 +1,28 @@
++puts "============"
++puts "OCC27065"
++puts "============"
++puts ""
++###############################
++## BRepOffsetAPI_MakePipe misses definition of virtual method Generated()
++###############################
++
++pload QAcommands
++
++restore [locate_data_file bug23903_base.brep] base
++restore [locate_data_file bug23903_path.brep] sp
++explode base
++shape pr Sh
++add base_1 pr
++add base_2 pr
++OCC27065 sp pr
++fit
++
++checknbshapes res_shell -vertex 2 -edge 5 -wire 3 -face 3 -shell 2 -solid 2 -compsolid 1 -compound 1 -shape 19
++
++checknbshapes res_face -vertex 2 -edge 4 -wire 2 -face 2 -shell 1 -solid 1 -compsolid 0 -compound 1 -shape 13
++
++checknbshapes res_wire -vertex 2 -edge 4 -wire 2 -face 2 -shell 1 -solid 0 -compsolid 0 -compound 1 -shape 12
++
++checknbshapes res_edge -vertex 2 -edge 3 -wire 1 -face 1 -shell 0 -solid 0 -compsolid 0 -compound 1 -shape 8
++
++checknbshapes res_vertex -vertex 1 -edge 1 -wire 0 -face 0 -shell 0 -solid 0 -compsolid 0 -compound 1 -shape 3
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/tests/bugs/vis/bug26870 OCCT-6.9.1p1_SRC/tests/bugs/vis/bug26870
+--- OCCT-6.9.1_SRC/tests/bugs/vis/bug26870	1970-01-01 03:00:00.000000000 +0300
++++ OCCT-6.9.1p1_SRC/tests/bugs/vis/bug26870	2016-04-26 15:52:06.000000000 +0300
+@@ -0,0 +1,37 @@
++puts "============"
++puts "CR26870"
++puts "============"
++puts ""
++
++##########################################################################################
++puts "Visualization - deactivated selections are not updated after object's re-computation"
++##########################################################################################
++
++pload VISUALIZATION MODELING
++
++vinit
++box b 1 1 1
++vdisplay b
++vfit
++
++vselmode b 2 1
++vselmode b 4 1
++vselmode b 4 0
++
++box b 3 3 3
++vdisplay b
++vfit
++
++vselmode 4 1
++
++# pick a point onto previously computed face
++vmoveto 80 265
++if {[vreadpixel 90 206 name] == "CYAN1 1"} {
++  puts "ERROR: previously computed entities are highlighted! Selection mode 4 was not updated after redisplaying the box."
++}
++# pick a point onto box
++if {[vreadpixel 29 216 name] == "YELLOW 1"} {
++  puts "ERROR: the box's face is not highlighted! Selection mode 4 was not updated after redisplaying the box."
++}
++
++set only_screen 1

Copied: opencascade/repos/community-testing-x86_64/PKGBUILD (from rev 190212, opencascade/trunk/PKGBUILD)
===================================================================
--- community-testing-x86_64/PKGBUILD	                        (rev 0)
+++ community-testing-x86_64/PKGBUILD	2016-09-23 14:51:31 UTC (rev 190213)
@@ -0,0 +1,65 @@
+# Maintainer: Florian Pritz <bluewind at xinu.at>
+# Contributor: Giuseppe Borzi <gborzi at ieee.org>
+# Contributor: Brice M<E9>alier <mealier_brice at yahoo.fr>
+# Contributor: Michele Mocciola <mickele>
+pkgname=opencascade
+pkgver=6.9.1
+pkgrel=7
+pkgdesc="Open CASCADE Technology, 3D modeling & numerical simulation"
+arch=('i686' 'x86_64')
+url="http://www.opencascade.org"
+license=('custom')
+depends=('tk' 'mesa' 'libxmu' 'ftgl' 'vtk6')
+source=("https://sources.archlinux.org/other/community/opencascade/opencascade-$pkgver.tgz" "env.sh" "opencascade.sh" "opencascade.conf" 'salome-occt-6.9.1.patch')
+md5sums=('7f2e645b5010d190c9bb35dc457f9a7c'
+         'a96f28ee7f4273ae1771ee033a2a3af3'
+         'd9368b8d348ced3ec4462012977552d2'
+         '2924ecf57c95d25888f51071fdc72ad0'
+         '88db8e6b9afa132d1893bbb814250350')
+
+# This works around a bug that is corrected in OCCT 7.0.0
+export CCFLAGS+=" -O2 -fno-delete-null-pointer-checks"
+export CXXFLAGS+=" -O2 -fno-delete-null-pointer-checks"
+
+prepare() {
+  cd "$srcdir/$pkgname-$pkgver"
+
+  # fix build with vtk 6.3.0
+  sed -i '/CSF_VTK_LIB/s/-6\.1//g' configure.ac
+
+  # fix for automake 1.13
+  sed -i -e 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/' configure.ac
+
+  # Included in OCCT 7.0.0
+  patch -i "$srcdir/salome-occt-6.9.1.patch" -p1
+
+  ./build_configure
+}
+
+build() {
+  cd "$srcdir/$pkgname-$pkgver"
+
+  # fix build with vtk 6.3.0
+  CXXFLAGS+=' -DvtkFloatingPointType=double'
+
+  # Change to --enable-production with OCCT 7.0.0
+  ./configure --disable-debug --disable-production \
+    --with-vtk-library=/opt/vtk6/lib/ --with-vtk-include=/opt/vtk6/include/vtk/ \
+    --prefix=/opt/$pkgname
+  make
+}
+
+package() {
+  cd "$srcdir/$pkgname-$pkgver"
+
+  # no DESTDIR support so use prefix. This has to suffix match the prefix in ./configure
+  make prefix="$pkgdir/opt/$pkgname" install
+  cp -r src/UnitsAPI/ "${pkgdir}/opt/$pkgname/src"
+  install -D -m644 "${srcdir}/opencascade.conf" "${pkgdir}/etc/ld.so.conf.d/opencascade.conf"
+  install -D -m 755 "${srcdir}/opencascade.sh" "${pkgdir}/etc/profile.d/opencascade.sh"
+  install -m 755 "${srcdir}/env.sh" "${pkgdir}/opt/$pkgname"
+  install -dm755 "$pkgdir/usr/share/licenses/$pkgname/"
+  install -m644 LICENSE_LGPL_21.txt OCCT_LGPL_EXCEPTION.txt "$pkgdir/usr/share/licenses/$pkgname"
+}
+
+# vim:set ts=2 sw=2 et:

Copied: opencascade/repos/community-testing-x86_64/PKGBUILD-7.0.0 (from rev 190212, opencascade/trunk/PKGBUILD-7.0.0)
===================================================================
--- community-testing-x86_64/PKGBUILD-7.0.0	                        (rev 0)
+++ community-testing-x86_64/PKGBUILD-7.0.0	2016-09-23 14:51:31 UTC (rev 190213)
@@ -0,0 +1,54 @@
+# Maintainer: Florian Pritz <bluewind at xinu.at>
+# Contributor: Giuseppe Borzi <gborzi at ieee.org>
+# Contributor: Brice M<E9>alier <mealier_brice at yahoo.fr>
+# Contributor: Michele Mocciola <mickele>
+pkgname=opencascade
+pkgver=7.0.0
+pkgrel=1
+pkgdesc="Open CASCADE Technology, 3D modeling & numerical simulation"
+arch=('i686' 'x86_64')
+url="http://www.opencascade.org"
+license=('custom')
+depends=('tk' 'mesa' 'libxmu' 'ftgl' 'libxi')
+makedepends=('cmake')
+source=("https://sources.archlinux.org/other/community/opencascade/opencascade-$pkgver.tgz" "env.sh" "opencascade.sh" "opencascade.conf")
+md5sums=('fa1458aba1ce96c85d7876b35a04af6c'
+         'a96f28ee7f4273ae1771ee033a2a3af3'
+         'd9368b8d348ced3ec4462012977552d2'
+         '2924ecf57c95d25888f51071fdc72ad0')
+
+build() {
+  cd "$srcdir/$pkgname-$pkgver"
+
+  #export CFLAGS+=" -L/opt/vtk6/lib"
+  #export CXXFLAGS+=" -L/opt/vtk6/lib"
+
+  mkdir build
+  cd build
+  cmake \
+    -DCMAKE_INSTALL_PREFIX="$pkgdir/opt/$pkgname" \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DUSE_VTK=OFF \
+    ..
+    #-D3RDPARTY_VTK_INCLUDE_DIR=/opt/vtk6/include/vtk/ \
+    #-D3RDPARTY_VTK_LIBRARY_DIR=/opt/vtk6/lib/ \
+  make
+}
+
+package() {
+  cd "$srcdir/$pkgname-$pkgver"
+  cd build
+
+  # no DESTDIR support so use prefix. This has to suffix match the prefix in ./configure
+  make install/fast
+
+  cd ..
+  cp -r src/UnitsAPI/ "${pkgdir}/opt/$pkgname/src"
+  install -D -m644 "${srcdir}/opencascade.conf" "${pkgdir}/etc/ld.so.conf.d/opencascade.conf"
+  install -D -m 755 "${srcdir}/opencascade.sh" "${pkgdir}/etc/profile.d/opencascade.sh"
+  install -m 755 "${srcdir}/env.sh" "${pkgdir}/opt/$pkgname"
+  install -dm755 "$pkgdir/usr/share/licenses/$pkgname/"
+  install -m644 LICENSE_LGPL_21.txt OCCT_LGPL_EXCEPTION.txt "$pkgdir/usr/share/licenses/$pkgname"
+}
+
+# vim:set ts=2 sw=2 et:

Copied: opencascade/repos/community-testing-x86_64/env.sh (from rev 190212, opencascade/trunk/env.sh)
===================================================================
--- community-testing-x86_64/env.sh	                        (rev 0)
+++ community-testing-x86_64/env.sh	2016-09-23 14:51:31 UTC (rev 190213)
@@ -0,0 +1,22 @@
+#!/bin/sh -f
+
+export PATH="$PATH:$CASROOT/bin"
+export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$CASROOT/lib"
+
+export CSF_LANGUAGE=us
+export MMGT_CLEAR=1
+export CSF_EXCEPTION_PROMPT=1
+
+export CSF_SHMessage="$CASROOT"/src/SHMessage
+export CSF_MDTVTexturesDirectory="$CASROOT"/src/Textures
+export CSF_XSMessage="$CASROOT"/src/XSMessage
+export CSF_StandardDefaults="$CASROOT"/src/StdResource
+export CSF_PluginDefaults="$CASROOT"/src/StdResource
+export CSF_XCAFDefaults="$CASROOT"/src/StdResource
+export CSF_StandardLiteDefaults="$CASROOT"/src/StdResource
+export CSF_UnitsLexicon="$CASROOT"/src/UnitsAPI/Lexi_Expr.dat
+export CSF_UnitsDefinition="$CASROOT"/src/UnitsAPI/Units.dat
+export CSF_IGESDefaults="$CASROOT"/src/XSTEPResource
+export CSF_STEPDefaults="$CASROOT"/src/XSTEPResource
+export CSF_XmlOcafResource="$CASROOT"/src/XmlOcafResource
+export CSF_GraphicShr="$CASROOT"/lib/libTKOpenGl.so

Copied: opencascade/repos/community-testing-x86_64/opencascade.conf (from rev 190212, opencascade/trunk/opencascade.conf)
===================================================================
--- community-testing-x86_64/opencascade.conf	                        (rev 0)
+++ community-testing-x86_64/opencascade.conf	2016-09-23 14:51:31 UTC (rev 190213)
@@ -0,0 +1 @@
+/opt/opencascade/lib

Copied: opencascade/repos/community-testing-x86_64/opencascade.sh (from rev 190212, opencascade/trunk/opencascade.sh)
===================================================================
--- community-testing-x86_64/opencascade.sh	                        (rev 0)
+++ community-testing-x86_64/opencascade.sh	2016-09-23 14:51:31 UTC (rev 190213)
@@ -0,0 +1,2 @@
+export CASROOT=/opt/opencascade
+source /opt/opencascade/env.sh

Copied: opencascade/repos/community-testing-x86_64/salome-occt-6.9.1.patch (from rev 190212, opencascade/trunk/salome-occt-6.9.1.patch)
===================================================================
--- community-testing-x86_64/salome-occt-6.9.1.patch	                        (rev 0)
+++ community-testing-x86_64/salome-occt-6.9.1.patch	2016-09-23 14:51:31 UTC (rev 190213)
@@ -0,0 +1,744 @@
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/drv/BRepFill/BRepFill_Pipe.jxx OCCT-6.9.1p1_SRC/drv/BRepFill/BRepFill_Pipe.jxx
+--- OCCT-6.9.1_SRC/drv/BRepFill/BRepFill_Pipe.jxx	2015-09-25 17:35:58.000000000 +0300
++++ OCCT-6.9.1p1_SRC/drv/BRepFill/BRepFill_Pipe.jxx	2016-04-26 16:10:42.000000000 +0300
+@@ -4,6 +4,7 @@
+ #include <StdFail_NotDone.hxx>
+ #include <TopoDS_Wire.hxx>
+ #include <TopoDS_Shape.hxx>
++#include <TopTools_ListOfShape.hxx>
+ #include <TopoDS_Face.hxx>
+ #include <TopoDS_Edge.hxx>
+ #include <TopoDS_Vertex.hxx>
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/drv/BRepOffsetAPI/BRepOffsetAPI_MakePipe.jxx OCCT-6.9.1p1_SRC/drv/BRepOffsetAPI/BRepOffsetAPI_MakePipe.jxx
+--- OCCT-6.9.1_SRC/drv/BRepOffsetAPI/BRepOffsetAPI_MakePipe.jxx	2015-09-25 17:36:04.000000000 +0300
++++ OCCT-6.9.1p1_SRC/drv/BRepOffsetAPI/BRepOffsetAPI_MakePipe.jxx	2016-04-26 16:10:47.000000000 +0300
+@@ -1,4 +1,5 @@
+ #include <TopoDS_Wire.hxx>
+ #include <TopoDS_Shape.hxx>
+ #include <BRepFill_Pipe.hxx>
++#include <TopTools_ListOfShape.hxx>
+ #include <BRepOffsetAPI_MakePipe.hxx>
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/inc/BRepFill_Pipe.hxx OCCT-6.9.1p1_SRC/inc/BRepFill_Pipe.hxx
+--- OCCT-6.9.1_SRC/inc/BRepFill_Pipe.hxx	2015-09-25 17:35:58.000000000 +0300
++++ OCCT-6.9.1p1_SRC/inc/BRepFill_Pipe.hxx	2016-04-26 16:10:42.000000000 +0300
+@@ -18,6 +18,7 @@
+ #include <TopTools_MapOfShape.hxx>
+ #include <BRepFill_DataMapOfShapeHArray2OfShape.hxx>
+ #include <Standard_Integer.hxx>
++#include <TopTools_DataMapOfShapeListOfShape.hxx>
+ #include <GeomAbs_Shape.hxx>
+ #include <GeomFill_Trihedron.hxx>
+ #include <Standard_Boolean.hxx>
+@@ -28,6 +29,7 @@
+ class StdFail_NotDone;
+ class TopoDS_Wire;
+ class TopoDS_Shape;
++class TopTools_ListOfShape;
+ class TopoDS_Face;
+ class TopoDS_Edge;
+ class TopoDS_Vertex;
+@@ -65,6 +67,9 @@
+   
+   Standard_EXPORT  const  TopoDS_Shape& LastShape()  const;
+   
++  //! Returns the list of shapes generated from the shape <S>.
++  Standard_EXPORT   void Generated (const TopoDS_Shape& S, TopTools_ListOfShape& L) ;
++  
+   //! Returns the face created from an edge of the spine
+   //! and an edge of the profile.
+   //! if the edges are not in the spine or the profile
+@@ -131,6 +136,7 @@
+   Standard_Integer myCurIndexOfSectionEdge;
+   TopoDS_Shape myFirst;
+   TopoDS_Shape myLast;
++  TopTools_DataMapOfShapeListOfShape myGenMap;
+   Standard_Integer myDegmax;
+   Standard_Integer mySegmax;
+   GeomAbs_Shape myContinuity;
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/inc/BRepOffsetAPI_MakePipe.hxx OCCT-6.9.1p1_SRC/inc/BRepOffsetAPI_MakePipe.hxx
+--- OCCT-6.9.1_SRC/inc/BRepOffsetAPI_MakePipe.hxx	2015-09-25 17:36:04.000000000 +0300
++++ OCCT-6.9.1p1_SRC/inc/BRepOffsetAPI_MakePipe.hxx	2016-04-26 16:10:47.000000000 +0300
+@@ -18,6 +18,7 @@
+ class TopoDS_Wire;
+ class TopoDS_Shape;
+ class BRepFill_Pipe;
++class TopTools_ListOfShape;
+ 
+ 
+ //! Describes functions to build pipes.
+@@ -68,6 +69,8 @@
+   //! Returns the TopoDS Shape of the top of the prism.
+   Standard_EXPORT   TopoDS_Shape LastShape() ;
+   
++  Standard_EXPORT virtual  const  TopTools_ListOfShape& Generated (const TopoDS_Shape& S) ;
++  
+   Standard_EXPORT   TopoDS_Shape Generated (const TopoDS_Shape& SSpine, const TopoDS_Shape& SProfile) ;
+   
+   Standard_EXPORT   Standard_Real ErrorOnSurface()  const;
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/src/BRepFill/BRepFill_Pipe.cdl OCCT-6.9.1p1_SRC/src/BRepFill/BRepFill_Pipe.cdl
+--- OCCT-6.9.1_SRC/src/BRepFill/BRepFill_Pipe.cdl	2015-09-16 18:27:02.000000000 +0300
++++ OCCT-6.9.1p1_SRC/src/BRepFill/BRepFill_Pipe.cdl	2016-04-26 15:51:10.000000000 +0300
+@@ -15,11 +15,11 @@
+ -- commercial license or contractual agreement.
+ 
+ 
+-class Pipe from BRepFill 
++class Pipe from BRepFill
+ 
+ 	---Purpose: Create a  shape by sweeping a shape  (the profile)
+ 	--          along a wire (the spine).
+-	--          
++	--
+ 	--          For each edge  or vertex from the spine  the  user
+ 	--          may ask for the shape generated from each subshape
+ 	--          of the profile.
+@@ -28,38 +28,40 @@
+ 
+     HArray2OfShape from TopTools,
+     MapOfShape     from TopTools,
++		ListOfShape from TopTools,
+     DataMapOfShapeHArray2OfShape from BRepFill,
++		DataMapOfShapeListOfShape from TopTools,
+     LocationLaw  from BRepFill,
+     Shape  from TopoDS,
+     Face   from TopoDS,
+     Wire   from TopoDS,
+     Edge   from TopoDS,
+-    Vertex from TopoDS,  
++    Vertex from TopoDS,
+     Pnt    from  gp,
+     Trsf   from  gp,
+     Shape  from GeomAbs,
+     Trihedron from GeomFill
+ 
+ raises
+-    DomainError from Standard, 
++    DomainError from Standard,
+     NotDone     from StdFail
+ 
+ is
+ 
+     Create returns Pipe from BRepFill;
+-    
+-    Create ( Spine   : Wire from TopoDS; 
++
++    Create ( Spine   : Wire from TopoDS;
+     	     Profile : Shape from TopoDS;
+ 	     aMode   : Trihedron from GeomFill = GeomFill_IsCorrectedFrenet;
+ 	     ForceApproxC1 : Boolean from Standard = Standard_False;
+-             GeneratePartCase : Boolean from Standard = Standard_False) 
++             GeneratePartCase : Boolean from Standard = Standard_False)
+     returns Pipe from BRepFill;
+-    
+-    Perform (me : in out;  Spine   : Wire from TopoDS; 
++
++    Perform (me : in out;  Spine   : Wire from TopoDS;
+     	    	    	   Profile : Shape from TopoDS;
+-                           GeneratePartCase : Boolean from Standard = Standard_False) 
++                           GeneratePartCase : Boolean from Standard = Standard_False)
+     is static;
+-    
++
+     Spine(me) returns Shape from TopoDS
+ 	---C++ : return const &
+     is static;
+@@ -74,7 +76,7 @@
+ 
+     ErrorOnSurface (me)
+     returns Real from Standard;
+-    
++
+     FirstShape(me) returns Shape from TopoDS
+ 	---C++ : return const &
+     is static;
+@@ -83,27 +85,30 @@
+ 	---C++ : return const &
+     is static;
+ 
++    Generated(me: in out; S: Shape from TopoDS; L: in out ListOfShape from TopTools);
++    ---Purpose: Returns the list of shapes generated from the shape <S>.
++
+     Face(me : in out; ESpine, EProfile : Edge from TopoDS)
+     returns Face from TopoDS
+ 	---Purpose: Returns the face created from an edge of the spine
+ 	--          and an edge of the profile.
+     raises
+-    	DomainError from Standard 
++    	DomainError from Standard
+ 	---Purpose: if the edges are not in the spine or the profile
+-	
++
+     is static;
+-    
++
+     Edge(me : in out; ESpine : Edge from TopoDS; VProfile : Vertex from TopoDS)
+     returns Edge from TopoDS
+ 	---Purpose: Returns the edge created from an edge of the spine
+ 	--          and a vertex of the profile.
+     raises
+-    	DomainError from Standard 
++    	DomainError from Standard
+ 	---Purpose: if the edge or the vertex are not in  the spine or
+ 	--          the profile.
+-	
++
+     is static;
+-    
++
+     Section(me; VSpine : Vertex from TopoDS)
+     returns Shape from TopoDS
+ 	---Purpose: Returns  the shape created from the profile at the
+@@ -111,50 +116,50 @@
+     raises
+     	DomainError from Standard
+ 	---Purpose: if the vertex is not in the Spine
+-    is static; 
+-     
+-     
+-    PipeLine(me : in out;  Point :  Pnt  from  gp)  
++    is static;
++
++
++    PipeLine(me : in out;  Point :  Pnt  from  gp)
+ 	---Purpose: Create a Wire by sweeping the Point along the <spine>
+-    returns  Wire  from  TopoDS 
++    returns  Wire  from  TopoDS
+     raises
+     	DomainError from Standard
+-	---Purpose: if the <Spine> is undefined      
++	---Purpose: if the <Spine> is undefined
+     is  static;
+ 
+ 
+     --
+     --  Private methods
+-    --  
+-    
+-    MakeShape(me : in out; S : Shape from TopoDS; 
++    --
++
++    MakeShape(me : in out; S : Shape from TopoDS;
+     	    	    	   FirstShape,  LastShape  :  Shape  from  TopoDS)
+     returns Shape from TopoDS
+ 	---Purpose: Auxiliary  recursive  method  used  to  build  the
+-	--          result. 
++	--          result.
+     is static private;
+ 
+ 
+-    FindEdge(me;  S : Shape from TopoDS;  
+-    	          E : Edge  from  TopoDS;  
+-		  Init  : in  out Integer)	 
++    FindEdge(me;  S : Shape from TopoDS;
++    	          E : Edge  from  TopoDS;
++		  Init  : in  out Integer)
+ 	---Purpose: Auxiliary recursive method used to find the edge's index
+     returns  Integer
+     is static private;
+ 
+-    FindVertex(me;  S : Shape from TopoDS;  
+-    	            V : Vertex  from  TopoDS;  
+-		    Init  : in  out Integer) 
++    FindVertex(me;  S : Shape from TopoDS;
++    	            V : Vertex  from  TopoDS;
++		    Init  : in  out Integer)
+     returns  Integer
+-    is static private; 
+-  
++    is static private;
++
+     DefineRealSegmax(me : in out)
+-    is static private; 
+-    
++    is static private;
++
+     RebuildTopOrBottomFace(me; aFace: Shape from TopoDS;
+     	    	    	       IsTop: Boolean from Standard)
+-    is static private; 
+-    
++    is static private;
++
+     ShareFaces(me: in out; theShape: Shape from TopoDS;
+                            theInitialFacesLen: Integer;
+                            theInitialEdgesLen: Integer;
+@@ -164,30 +169,31 @@
+ 	--          Returns the shared shape. If theShape is not modified this
+ 	--          method returns it.
+     returns Shape from TopoDS
+-    is static private; 
+-     
++    is static private;
++
+ fields
+     mySpine   : Wire  from TopoDS;
+     myProfile : Shape from TopoDS;
+-    myShape   : Shape from TopoDS; 
+-    myTrsf    : Trsf  from  gp; 
++    myShape   : Shape from TopoDS;
++    myTrsf    : Trsf  from  gp;
+     myLoc     : LocationLaw  from BRepFill;
+-    mySections: HArray2OfShape from TopTools; 
+-    myFaces   : HArray2OfShape from TopTools;  
+-    myEdges   : HArray2OfShape from TopTools;  
+-    myReversedEdges : MapOfShape from TopTools;  
++    mySections: HArray2OfShape from TopTools;
++    myFaces   : HArray2OfShape from TopTools;
++    myEdges   : HArray2OfShape from TopTools;
++    myReversedEdges : MapOfShape from TopTools;
+     myTapes   : DataMapOfShapeHArray2OfShape from BRepFill;
+     myRails   : DataMapOfShapeHArray2OfShape from BRepFill;
+     myCurIndexOfSectionEdge : Integer from Standard;
+-    myFirst   :  Shape  from  TopoDS; 
+-    myLast    :  Shape  from  TopoDS; 
+-     
++    myFirst   :  Shape  from  TopoDS;
++    myLast    :  Shape  from  TopoDS;
++		myGenMap  : DataMapOfShapeListOfShape from TopTools;
++
+     myDegmax  : Integer from Standard;
+     mySegmax  : Integer from Standard;
+     myContinuity : Shape from GeomAbs;
+     myMode    : Trihedron from GeomFill;
+     myForceApproxC1 : Boolean from Standard;
+-    
++
+     myErrorOnSurf : Real from Standard;
+-    
++
+ end Pipe;
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/src/BRepFill/BRepFill_Pipe.cxx OCCT-6.9.1p1_SRC/src/BRepFill/BRepFill_Pipe.cxx
+--- OCCT-6.9.1_SRC/src/BRepFill/BRepFill_Pipe.cxx	2015-09-16 18:27:02.000000000 +0300
++++ OCCT-6.9.1p1_SRC/src/BRepFill/BRepFill_Pipe.cxx	2016-04-26 15:51:10.000000000 +0300
+@@ -69,6 +69,38 @@
+ static Standard_Boolean Affich = 0;
+ #endif
+ 
++// ---------------------------------------------------------------------------------
++// static function: UpdateMap
++// purpose:
++// ---------------------------------------------------------------------------------
++static Standard_Boolean UpdateMap(const TopoDS_Shape&                 theKey,
++                                  const TopoDS_Shape&                 theValue,
++                                  TopTools_DataMapOfShapeListOfShape& theMap)
++{
++  if(!theMap.IsBound(theKey))
++  {
++    TopTools_ListOfShape thelist;
++    theMap.Bind(theKey, thelist);
++  }
++  TopTools_ListOfShape& aList = theMap.ChangeFind(theKey);
++  TopTools_ListIteratorOfListOfShape anIt(aList);
++  Standard_Boolean found = Standard_False;
++
++  for(; anIt.More(); anIt.Next())
++  {
++    if(theValue.IsSame(anIt.Value()))
++    {
++      found = Standard_True;
++      break;
++    }
++  }
++
++  if(!found)
++    aList.Append(theValue);
++  
++  return !found;
++}
++
+ static void ReverseModifiedEdges(TopoDS_Shape& aShape,
+                                  TopTools_MapOfShape& Emap)
+ {
+@@ -374,6 +406,47 @@
+   return myLast;
+ }
+ 
++//=======================================================================
++//function : Generated
++//purpose  : 
++//=======================================================================
++void BRepFill_Pipe::Generated(const TopoDS_Shape&   theShape,
++                              TopTools_ListOfShape& theList) 
++{
++  theList.Clear();
++
++  if (theShape.IsSame(myProfile))
++    theList.Append(myShape);
++  else
++  {
++    if (theShape.ShapeType() == TopAbs_FACE ||
++        theShape.ShapeType() == TopAbs_WIRE)
++    {
++      if(myGenMap.IsBound(theShape))
++        theList = myGenMap.Find(theShape);
++    }
++    else if (theShape.ShapeType() == TopAbs_EDGE)
++    {
++      TopoDS_Iterator itw(mySpine);
++      for (; itw.More(); itw.Next())
++      {
++        const TopoDS_Edge& aSpineEdge = TopoDS::Edge(itw.Value());
++        const TopoDS_Shape& aFace = Face(aSpineEdge, TopoDS::Edge(theShape));
++        theList.Append(aFace);
++      }
++    }
++    else if (theShape.ShapeType() == TopAbs_VERTEX)
++    {
++      TopoDS_Iterator itw(mySpine);
++      for (; itw.More(); itw.Next())
++      {
++        const TopoDS_Edge& aSpineEdge = TopoDS::Edge(itw.Value());
++        const TopoDS_Shape& anEdge = Edge(aSpineEdge, TopoDS::Vertex(theShape));
++        theList.Append(anEdge);
++      }
++    }
++  }
++}
+ 
+ //=======================================================================
+ //function : Face
+@@ -640,6 +713,7 @@
+       MkSw.Build( myReversedEdges, myTapes, myRails,
+                   BRepFill_Modified, myContinuity, GeomFill_Location, myDegmax, mySegmax );
+       result = MkSw.Shape();
++      UpdateMap(TheS.Located(myProfile.Location()), result, myGenMap);
+       myErrorOnSurf = MkSw.ErrorOnSurface();
+ 
+       Handle(TopTools_HArray2OfShape) aSections = MkSw.Sections();
+@@ -662,6 +736,7 @@
+       MkSw.Build( myReversedEdges, myTapes, myRails,
+                   BRepFill_Modified, myContinuity, GeomFill_Location, myDegmax, mySegmax );
+       result = MkSw.Shape();
++      UpdateMap(TheS.Located(myProfile.Location()), result, myGenMap);
+       myErrorOnSurf = MkSw.ErrorOnSurface();
+       //Correct <myFirst> and <myLast>
+       ReverseModifiedEdges(myFirst, myReversedEdges);
+@@ -769,6 +844,7 @@
+       BS.Add(solid,TopoDS::Shell(aLocalShape));
+ //      BS.Add(solid,TopoDS::Shell(result.Reversed()));
+     }
++    UpdateMap(TheS.Located(myProfile.Location()), solid, myGenMap);
+     return solid;
+   }
+   else {
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cdl OCCT-6.9.1p1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cdl
+--- OCCT-6.9.1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cdl	2015-09-16 18:27:03.000000000 +0300
++++ OCCT-6.9.1p1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cdl	2016-04-26 15:51:11.000000000 +0300
+@@ -36,8 +36,8 @@
+     ListOfShape from TopTools
+ 
+ is
+- 
+-    
++
++
+     Create( Spine   : Wire  from TopoDS;
+     	    Profile : Shape from TopoDS )
+ 	---Purpose: Constructs a pipe by sweeping the shape Profile along
+@@ -52,7 +52,7 @@
+     	-- Standard_DomainError if the profile is a solid or a
+     	-- composite solid.
+     returns MakePipe from BRepOffsetAPI;
+-    
++
+     Create( Spine   : Wire  from TopoDS;
+     	    Profile : Shape from TopoDS;
+ 	    aMode   : Trihedron from GeomFill;
+@@ -72,7 +72,7 @@
+     Build(me : in out)
+     is redefined;
+ 	---Purpose: Builds the resulting shape (redefined from MakeShape).
+-	---Level: Public    
++	---Level: Public
+ 
+ 
+     FirstShape (me : in out)
+@@ -84,6 +84,11 @@
+     ---Purpose: Returns the TopoDS Shape of the top of the prism.
+     returns Shape from TopoDS;
+ 
++    Generated (me: in out; S: Shape from TopoDS)
++    returns ListOfShape from TopTools
++    is redefined;
++    ---C++: return const &
++    ---Level: Public
+ 
+     Generated (me: in out; SSpine, SProfile : Shape from TopoDS)
+         ---Level: Public
+@@ -99,4 +104,4 @@
+ 
+     myPipe : Pipe from BRepFill;
+ 
+-end MakePipe; 
++end MakePipe;
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cxx OCCT-6.9.1p1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cxx
+--- OCCT-6.9.1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cxx	2015-09-16 18:27:03.000000000 +0300
++++ OCCT-6.9.1p1_SRC/src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cxx	2016-04-26 15:51:11.000000000 +0300
+@@ -109,14 +109,23 @@
+   return myPipe.LastShape();
+ }
+ 
++//=======================================================================
++//function : Generated
++//purpose  : standard method
++//=======================================================================
++const TopTools_ListOfShape& BRepOffsetAPI_MakePipe::Generated(const TopoDS_Shape& S) 
++{
++  myPipe.Generated(S, myGenerated);
++  return myGenerated;
++}
+ 
+ //=======================================================================
+ //function : Generated
+-//purpose  : 
++//purpose  : returns generated elementary subshape
+ //=======================================================================
+ 
+-TopoDS_Shape BRepOffsetAPI_MakePipe::Generated (const TopoDS_Shape& SSpine,
+-					  const TopoDS_Shape& SProfile)
++TopoDS_Shape BRepOffsetAPI_MakePipe::Generated(const TopoDS_Shape& SSpine,
++                                               const TopoDS_Shape& SProfile)
+ {
+   if (SProfile.ShapeType () == TopAbs_EDGE) {
+     return myPipe.Face (TopoDS::Edge (SSpine), TopoDS::Edge (SProfile));
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/src/QABugs/QABugs_19.cxx OCCT-6.9.1p1_SRC/src/QABugs/QABugs_19.cxx
+--- OCCT-6.9.1_SRC/src/QABugs/QABugs_19.cxx	2015-09-16 18:27:29.000000000 +0300
++++ OCCT-6.9.1p1_SRC/src/QABugs/QABugs_19.cxx	2016-04-26 15:51:28.000000000 +0300
+@@ -53,6 +53,7 @@
+ #include <GeomFill_Trihedron.hxx>
+ #include <BRepOffsetAPI_MakePipe.hxx>
+ #include <Standard_Atomic.hxx>
++#include <TopTools_ListIteratorOfListOfShape.hxx>
+ 
+ #include <Standard_Version.hxx>
+ 
+@@ -4306,6 +4307,95 @@
+   return 0;
+ }
+ 
++//========================================================================
++//function : OCC27065
++//purpose  : Tests overloaded method "Generated" of BRepOffsetAPI_MakePipe
++//========================================================================
++static Standard_Integer OCC27065(Draw_Interpretor& di,
++                                 Standard_Integer n, const char** a)
++{
++  if (n < 3) return 1;
++  BRep_Builder BB;
++
++  TopoDS_Shape SpineShape = DBRep::Get(a[1],TopAbs_WIRE);
++  if ( SpineShape.IsNull()) return 1;
++  TopoDS_Wire Spine = TopoDS::Wire(SpineShape);
++
++  TopoDS_Shape Profile = DBRep::Get(a[2]);
++  if ( Profile.IsNull()) return 1;
++
++  BRepOffsetAPI_MakePipe aPipeBuilder(Spine, Profile);
++  if (!aPipeBuilder.IsDone())
++  {
++    di << "Error: failed to create pipe\n";
++    return 1;
++  }
++
++  TopExp_Explorer Explo(Profile, TopAbs_SHELL);
++  TopoDS_Shape aShape;
++  TopTools_ListIteratorOfListOfShape itl;
++  if (Explo.More())
++  {
++    aShape = Explo.Current();
++    TopoDS_Compound res1;
++    BB.MakeCompound(res1);
++    itl.Initialize(aPipeBuilder.Generated(aShape));
++    for (; itl.More(); itl.Next())
++      BB.Add(res1, itl.Value());
++    DBRep::Set("res_shell", res1);
++  }
++
++  Explo.Init(Profile, TopAbs_FACE);
++  if (Explo.More())
++  {
++    aShape = Explo.Current();
++    TopoDS_Compound res2;
++    BB.MakeCompound(res2);
++    itl.Initialize(aPipeBuilder.Generated(aShape));
++    for (; itl.More(); itl.Next())
++      BB.Add(res2, itl.Value());
++    DBRep::Set("res_face", res2);
++  }
++
++  Explo.Init(Profile, TopAbs_WIRE);
++  if (Explo.More())
++  {
++    aShape = Explo.Current();
++    TopoDS_Compound res3;
++    BB.MakeCompound(res3);
++    itl.Initialize(aPipeBuilder.Generated(aShape));
++    for (; itl.More(); itl.Next())
++      BB.Add(res3, itl.Value());
++    DBRep::Set("res_wire", res3);
++  }
++
++  Explo.Init(Profile, TopAbs_EDGE);
++  if (Explo.More())
++  {
++    aShape = Explo.Current();
++    TopoDS_Compound res4;
++    BB.MakeCompound(res4);
++    itl.Initialize(aPipeBuilder.Generated(aShape));
++    for (; itl.More(); itl.Next())
++      BB.Add(res4, itl.Value());
++    DBRep::Set("res_edge", res4);
++  }
++
++  Explo.Init(Profile, TopAbs_VERTEX);
++  if (Explo.More())
++  {
++    aShape = Explo.Current();
++    TopoDS_Compound res5;
++    BB.MakeCompound(res5);
++    itl.Initialize(aPipeBuilder.Generated(aShape));
++    for (; itl.More(); itl.Next())
++      BB.Add(res5, itl.Value());
++    DBRep::Set("res_vertex", res5);
++  }
++
++  return 0;
++}
++
+ void QABugs::Commands_19(Draw_Interpretor& theCommands) {
+   const char *group = "QABugs";
+ 
+@@ -4397,5 +4487,9 @@
+ 
+   theCommands.Add ("OCC26313", "OCC26313 result shape", __FILE__, OCC26313, group);
+ 
++  theCommands.Add ("OCC27065",
++                   "OCC27065 spine profile",
++                   __FILE__, OCC27065, group);
++
+   return;
+ }
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/src/SelectMgr/SelectMgr_SelectionManager.cxx OCCT-6.9.1p1_SRC/src/SelectMgr/SelectMgr_SelectionManager.cxx
+--- OCCT-6.9.1_SRC/src/SelectMgr/SelectMgr_SelectionManager.cxx	2015-09-16 18:27:36.000000000 +0300
++++ OCCT-6.9.1p1_SRC/src/SelectMgr/SelectMgr_SelectionManager.cxx	2016-04-26 15:51:32.000000000 +0300
+@@ -687,6 +687,7 @@
+   for(theObject->Init(); theObject->More(); theObject->Next())
+   {
+     const Handle(SelectMgr_Selection)& aSelection = theObject->CurrentSelection();
++    aSelection->UpdateStatus (SelectMgr_TOU_Full);
+     Standard_Integer aSelMode = aSelection->Mode();
+ 
+     for (TColStd_MapIteratorOfMapOfTransient aSelectorIter (mySelectors); aSelectorIter.More(); aSelectorIter.Next())
+@@ -697,10 +698,10 @@
+           ClearSelectionStructures (theObject, aSelMode, aCurSelector);
+           theObject->RecomputePrimitives(aSelMode);
+           RestoreSelectionStructures (theObject, aSelMode, aCurSelector);
++          aSelection->UpdateStatus (SelectMgr_TOU_None);
++          aSelection->UpdateBVHStatus (SelectMgr_TBU_None);
+       }
+     }
+-    aSelection->UpdateStatus (SelectMgr_TOU_None);
+-    aSelection->UpdateBVHStatus (SelectMgr_TBU_None);
+   }
+ }
+ 
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/tests/bugs/modalg_6/bug27065_1 OCCT-6.9.1p1_SRC/tests/bugs/modalg_6/bug27065_1
+--- OCCT-6.9.1_SRC/tests/bugs/modalg_6/bug27065_1	1970-01-01 03:00:00.000000000 +0300
++++ OCCT-6.9.1p1_SRC/tests/bugs/modalg_6/bug27065_1	2016-04-26 14:43:27.000000000 +0300
+@@ -0,0 +1,24 @@
++puts "============"
++puts "OCC27065"
++puts "============"
++puts ""
++###############################
++## BRepOffsetAPI_MakePipe misses definition of virtual method Generated()
++###############################
++
++pload QAcommands
++
++restore [locate_data_file bug24840_comp.brep] sh
++explode sh
++OCC27065 sh_1 sh_2
++fit
++
++checknbshapes res_shell -vertex 56 -edge 130 -wire 99 -face 99 -shell 24 -solid 24 -compsolid 1 -compound 1 -shape 434
++
++checknbshapes res_face -vertex 8 -edge 12 -wire 6 -face 6 -shell 1 -solid 1 -compsolid 0 -compound 1 -shape 35
++
++checknbshapes res_wire -vertex 8 -edge 12 -wire 4 -face 4 -shell 1 -solid 0 -compsolid 0 -compound 1 -shape 30
++
++checknbshapes res_edge -vertex 4 -edge 4 -wire 1 -face 1 -shell 0 -solid 0 -compsolid 0 -compound 1 -shape 11
++
++checknbshapes res_vertex -vertex 2 -edge 1 -wire 0 -face 0 -shell 0 -solid 0 -compsolid 0 -compound 1 -shape 4
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/tests/bugs/modalg_6/bug27065_2 OCCT-6.9.1p1_SRC/tests/bugs/modalg_6/bug27065_2
+--- OCCT-6.9.1_SRC/tests/bugs/modalg_6/bug27065_2	1970-01-01 03:00:00.000000000 +0300
++++ OCCT-6.9.1p1_SRC/tests/bugs/modalg_6/bug27065_2	2016-04-26 14:43:27.000000000 +0300
+@@ -0,0 +1,28 @@
++puts "============"
++puts "OCC27065"
++puts "============"
++puts ""
++###############################
++## BRepOffsetAPI_MakePipe misses definition of virtual method Generated()
++###############################
++
++pload QAcommands
++
++restore [locate_data_file bug23903_base.brep] base
++restore [locate_data_file bug23903_path.brep] sp
++explode base
++shape pr Sh
++add base_1 pr
++add base_2 pr
++OCC27065 sp pr
++fit
++
++checknbshapes res_shell -vertex 2 -edge 5 -wire 3 -face 3 -shell 2 -solid 2 -compsolid 1 -compound 1 -shape 19
++
++checknbshapes res_face -vertex 2 -edge 4 -wire 2 -face 2 -shell 1 -solid 1 -compsolid 0 -compound 1 -shape 13
++
++checknbshapes res_wire -vertex 2 -edge 4 -wire 2 -face 2 -shell 1 -solid 0 -compsolid 0 -compound 1 -shape 12
++
++checknbshapes res_edge -vertex 2 -edge 3 -wire 1 -face 1 -shell 0 -solid 0 -compsolid 0 -compound 1 -shape 8
++
++checknbshapes res_vertex -vertex 1 -edge 1 -wire 0 -face 0 -shell 0 -solid 0 -compsolid 0 -compound 1 -shape 3
+diff -Naur --exclude=CVS --exclude=.git --exclude=samples --exclude=cmake --exclude=Makefile.am --exclude=CMakeLists.txt --exclude=adm OCCT-6.9.1_SRC/tests/bugs/vis/bug26870 OCCT-6.9.1p1_SRC/tests/bugs/vis/bug26870
+--- OCCT-6.9.1_SRC/tests/bugs/vis/bug26870	1970-01-01 03:00:00.000000000 +0300
++++ OCCT-6.9.1p1_SRC/tests/bugs/vis/bug26870	2016-04-26 15:52:06.000000000 +0300
+@@ -0,0 +1,37 @@
++puts "============"
++puts "CR26870"
++puts "============"
++puts ""
++
++##########################################################################################
++puts "Visualization - deactivated selections are not updated after object's re-computation"
++##########################################################################################
++
++pload VISUALIZATION MODELING
++
++vinit
++box b 1 1 1
++vdisplay b
++vfit
++
++vselmode b 2 1
++vselmode b 4 1
++vselmode b 4 0
++
++box b 3 3 3
++vdisplay b
++vfit
++
++vselmode 4 1
++
++# pick a point onto previously computed face
++vmoveto 80 265
++if {[vreadpixel 90 206 name] == "CYAN1 1"} {
++  puts "ERROR: previously computed entities are highlighted! Selection mode 4 was not updated after redisplaying the box."
++}
++# pick a point onto box
++if {[vreadpixel 29 216 name] == "YELLOW 1"} {
++  puts "ERROR: the box's face is not highlighted! Selection mode 4 was not updated after redisplaying the box."
++}
++
++set only_screen 1



More information about the arch-commits mailing list