set(BUILD_SHARED_LIBS ON)
-IF("${BUILD_TYPE}" STREQUAL "${CMAKE_BUILD_TYPE}" AND "${BUILD_BITNESS}" STREQUAL "${BUILD_BITNESS1}")
+IF("${BUILD_TYPE}" STREQUAL "${CMAKE_BUILD_TYPE}")
SET(CHANGES_ARE_NEEDED OFF)
ELSE()
SET(CHANGES_ARE_NEEDED ON)
ENDIF()
-set(BUILD_BITNESS 32 CACHE STRING "Bitness of the OCCT project")
-SET_PROPERTY(CACHE BUILD_BITNESS PROPERTY STRINGS 32 64)
-
-SET(BUILD_BITNESS1 ${BUILD_BITNESS} CACHE INTERNAL "Temporary bitness is created to check whether change 3rdparty paths or not" FORCE)
+MATH(EXPR COMPILER_BITNESS "32 + 32*(${CMAKE_SIZEOF_VOID_P}/8)")
SET( CMAKE_BUILD_TYPE ${BUILD_TYPE} CACHE INTERNAL "Build type of the OCCT" FORCE )
SET(COMPILER ${CMAKE_GENERATOR})
endif()
-if (${BUILD_BITNESS} STREQUAL 64)
+if (${COMPILER_BITNESS} STREQUAL 64)
add_definitions(-D_OCC64)
endif()
ENDIF()
ENDIF()
-# set warning level 4
+# sse2
+add_definitions(/arch:SSE2)
+
+# warning level 4
IF(MSVC)
if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
FUNCTION(FIND_PRODUCT_DIR ROOT_DIR PRODUCT_NAME RESULT)
string( TOLOWER "${PRODUCT_NAME}" lower_PRODUCT_NAME )
- LIST(APPEND SEARCH_TEMPLATES "${lower_PRODUCT_NAME}.*${COMPILER}.*${BUILD_BITNESS}")
- LIST(APPEND SEARCH_TEMPLATES "${lower_PRODUCT_NAME}.*[0-9.]+.*${COMPILER}.*${BUILD_BITNESS}")
- LIST(APPEND SEARCH_TEMPLATES "${lower_PRODUCT_NAME}.*[0-9.]+.*${BUILD_BITNESS}")
+ LIST(APPEND SEARCH_TEMPLATES "${lower_PRODUCT_NAME}.*${COMPILER}.*${COMPILER_BITNESS}")
+ LIST(APPEND SEARCH_TEMPLATES "${lower_PRODUCT_NAME}.*[0-9.]+.*${COMPILER}.*${COMPILER_BITNESS}")
+ LIST(APPEND SEARCH_TEMPLATES "${lower_PRODUCT_NAME}.*[0-9.]+.*${COMPILER_BITNESS}")
LIST(APPEND SEARCH_TEMPLATES "${lower_PRODUCT_NAME}.*[0-9.]+")
LIST(APPEND SEARCH_TEMPLATES "${lower_PRODUCT_NAME}")
IF (3RDPARTY_USE_TBB)
ADD_DEFINITIONS(-DHAVE_TBB)
- IF(${BUILD_BITNESS} STREQUAL 32)
+ IF(${COMPILER_BITNESS} STREQUAL 32)
SET (TBB_ARCH_NAME ia32)
ELSE()
SET (TBB_ARCH_NAME intel64)
di << " 4.0 / 0.0 = " << res << " Does not Caught... KO"<< "\n";
Succes = Standard_False;
}
-#if defined(SOLARIS) || defined(WNT)
- catch(Standard_DivideByZero)
-#else
- catch(Standard_NumericError)
-#endif
+ catch(Standard_DivideByZero) // Solaris, Windows w/o SSE2
{
- di << " Ok"<< "\n";
+ di << " Ok" << "\n";
+ }
+ catch(Standard_NumericError) // Linux, Windows with SSE2
+ {
+ di << " Ok" << "\n";
}
catch(Standard_Failure) {
//cout << " Caught (" << Standard_Failure::Caught() << ")... KO" << endl;
di << "-- "<<res<<"="<<r<<"*"<<r<<" Does not Caught... KO"<< "\n";
Succes = Standard_False;
}
-#if defined(SOLARIS) || defined(WNT)
- catch(Standard_Overflow)
-#else
- catch(Standard_NumericError)
-#endif
+ catch(Standard_Overflow) // Solaris, Windows w/o SSE2
{
- di << " Ok"<< "\n";
+ di << " Ok" << "\n";
+ }
+ catch(Standard_NumericError) // Linux, Windows with SSE2
+ {
+ di << " Ok" << "\n";
}
catch(Standard_Failure) {
//cout << " Caught (" << Standard_Failure::Caught() << ")... KO" << endl;
//++++ Succes = Standard_False;
di<<" -- "<<res<<"="<<r<<"*"<<r<<" Does not Caught... (But) Ok"<<"\n";
}
-#if defined(SOLARIS) || defined(WNT)
- catch(Standard_Underflow)
-#else
- catch(Standard_NumericError)
-#endif
+ catch(Standard_Underflow) // could be on Solaris, Windows w/o SSE2
{
- di << " Ok"<< "\n";
+ di << " Ok" << "\n";
+ }
+ catch(Standard_NumericError) // could be on Linux, Windows with SSE2
+ {
+ di << " Ok" << "\n";
}
catch(Standard_Failure) {
//cout << " Caught (" << Standard_Failure::Caught() << ")... KO" << endl;
--- /dev/null
+# Test performance of intersection of several NURBS surfaces
+
+bsplinesurf surf1 \
+3 4 0 4 1 1 2 1 3 4 \
+3 4 0 4 1 1 2 1 3 4 \
+0 0 0 1 2 0 0 1 3 0 15 1 5 0 15 1 7 0 0 1 10 0 0 1 \
+0 2 0 1 1 3 0 1 4 2 15 1 6 3 15 1 8 2 0 1 10 3 0 1 \
+0 4 0 1 3 4 0 1 4 3 15 1 5 3 15 1 7 4 0 1 10 5 0 1 \
+0 6 0 1 3 6 0 1 4 6 15 1 5 6 15 1 8 5 0 1 10 7 0 1 \
+0 8 0 1 2 8 0 1 4 8 15 1 6 8 15 1 7 7 0 1 10 8 0 1 \
+0 10 0 1 2 10 0 1 4 10 15 1 6 10 15 1 7 10 0 1 10 10 0 1
+
+bsplinesurf surf2 \
+3 4 0 4 1 1 2 1 3 4 \
+3 4 0 4 1 1 2 1 3 4 \
+0 0 10 1 2 0 5 1 3 0 4 1 5 0 6 1 7 0 10 1 10 0 5 1 \
+0 2 5 1 1 3 7 1 4 2 7 1 6 3 4 1 8 2 4 4 10 3 7 1 \
+0 4 8 1 3 4 10 1 4 3 6 1 5 3 8 1 7 4 7 4 10 5 5 1 \
+0 6 8 1 3 6 10 1 4 6 6 1 5 6 4 1 8 5 7 4 10 7 10 1 \
+0 8 6 1 2 8 5 1 4 8 8 1 6 8 8 1 7 7 3 4 10 8 5 1 \
+0 10 8 1 2 10 10 1 4 10 6 1 6 10 5 1 7 10 3 1 10 10 10 1
+
+bsplinesurf surf3 \
+2 7 0 3 1 1 2 1 3 1 4 1 5 1 6 3 \
+2 3 0 3 1 1 2 3 \
+-20 20 10 1 20 20 10 1 20 -20 10 1 -20 -20 10 1 -10 10 10 1 10 10 10 1 10 -10 10 1 -10 -10 10 1 \
+-10 10 5 1 15 15 5 1 10 -10 5 1 -15 -15 5 1 -5 5 5 1 5 5 5 1 5 -5 5 1 -5 -5 5 1 \
+-15 15 -5 1 10 10 -5 1 15 -15 -5 1 -10 -10 -5 1 -5 5 -5 1 5 5 -5 1 5 -5 -5 1 -5 -5 -5 1 \
+-20 20 -10 1 20 20 -10 1 20 -20 -10 1 -20 -20 -10 1 -10 10 -10 1 10 10 -10 1 10 -10 -10 1 -10 -10 -10 1
+
+bsplinesurf surf4 \
+4 5 0 5 2 1 4 1 5 1 6 5 \
+4 5 0 5 1 1 4 1 6 1 7 5 \
+ 10 20 -20 1 9 19 -19 1 8 18 -18 1 7 17 -17 1 7 17 17 1 8 18 18 1 9 19 19 1 10 20 20 1 \
+ 10 -20 20 1 9 -19 19 1 8 -18 18 1 7 -17 17 1 7 -17 -17 1 8 -18 -18 1 9 -19 -19 1 10 -20 -20 1 \
+ 10 10 -10 1 9 9 -9 1 8 8 -8 1 7 7 -7 1 7 7 7 1 8 8 8 1 9 9 9 1 10 10 10 1 \
+ 10 -10 10 1 9 -9 9 1 8 -8 8 1 7 -7 7 1 7 -7 -7 1 8 -8 -8 1 9 -9 -9 1 10 -10 -10 1 \
+-10 20 -20 1 -9 19 -19 1 -8 18 -18 1 -7 17 -17 1 -7 17 17 1 -8 18 18 1 -9 19 19 1 -10 20 20 1 \
+-10 -20 20 1 -9 -19 19 1 -8 -18 18 1 -7 -17 17 1 -7 -17 -17 1 -8 -18 -18 1 -9 -19 -19 1 -10 -20 -20 1 \
+-10 10 -10 1 -9 9 -9 1 -8 8 -8 1 -7 7 -7 1 -7 7 7 1 -8 8 8 1 -9 9 9 1 -10 10 10 1 \
+-10 -10 10 1 -9 -9 9 1 -8 -8 8 1 -7 -7 7 1 -7 -7 -7 1 -8 -8 -8 1 -9 -9 -9 1 -10 -10 -10 1
+
+bsplinesurf surf5 \
+1 2 0 2 1 2 \
+5 5 0 6 2 1 3 1 6 1 7 6 \
+0 0 0 1 10 0 5 2 \
+0 10 2 1 10 10 3 1 \
+0 20 10 1 10 20 20 1 \
+0 30 0 1 10 30 0 1 \
+0 40 -1 1 10 40 5 1 \
+0 50 5 1 10 50 5 1 \
+0 60 4 1 10 60 4 1 \
+0 70 -5 1 10 70 -3 1 \
+0 80 7 1 10 80 0 1
+
+
+bsplinesurf surf6 \
+2 3 0 3 1 1 2 3 \
+5 5 0 6 2 1 3 1 6 1 7 6 \
+0 0 0 1 2 0 0 1 5 0 -1 1 10 0 5 2 \
+0 10 2 1 3 10 0 1 8 10 5 1 10 10 3 1 \
+0 20 10 1 4 20 4 1 7 20 4 1 10 20 20 1 \
+0 30 0 1 2 30 0 1 8 30 0 1 10 30 0 1 \
+0 40 -1 1 4 40 5 1 9 40 1 1 10 40 5 1 \
+0 50 5 1 4 50 10 1 6 50 10 1 10 50 5 1 \
+0 60 4 1 3 60 -3 1 7 60 -4 1 10 60 4 1 \
+0 70 -5 1 3 70 0 1 5 70 0 1 10 70 -3 1 \
+0 80 7 1 3 80 1 1 7 80 3 1 10 80 0 1
+
+bsplinesurf surf7 \
+5 5 0 6 1 1 4 1 5 1 8 6 \
+5 5 0 6 2 1 3 1 6 1 7 6 \
+0 0 0 1 2 0 0 1 5 0 -1 1 10 0 5 1 12 0 1 1 15 0 -3 1 16 0 -3 1 19 0 -4 1 24 0 0 1 \
+0 10 2 1 3 10 0 1 8 10 5 1 10 10 3 1 12 10 2 1 15 10 0 1 20 10 5 1 21 10 3 1 24 10 0 1 \
+0 20 10 1 4 20 4 1 7 20 4 1 10 20 20 1 12 20 10 1 16 20 4 1 19 20 4 1 20 20 10 1 24 20 0 1 \
+0 30 0 1 2 30 0 1 8 30 0 1 10 30 0 1 12 30 0 1 14 30 0 1 20 30 0 1 22 30 0 1 24 30 0 1 \
+0 40 -1 1 4 40 5 1 9 40 1 1 10 40 5 1 12 40 -1 1 16 40 5 1 21 40 1 1 22 40 5 1 24 40 0 1 \
+0 50 5 1 4 50 10 1 6 50 10 1 10 50 5 1 12 50 5 1 16 50 10 1 18 50 10 1 20 50 5 1 24 50 0 1 \
+0 60 4 1 3 60 -3 1 7 60 -4 1 10 60 4 1 12 60 4 1 15 60 -3 1 19 60 -4 1 20 60 4 1 24 60 0 1 \
+0 70 -5 1 3 70 0 1 5 70 0 1 10 70 -3 1 12 70 -5 1 15 70 0 1 17 70 0 1 20 70 -3 1 24 70 0 1 \
+0 80 7 1 3 80 1 1 7 80 3 1 10 80 0 1 12 80 7 1 15 80 1 1 19 80 3 1 21 80 0 1 24 80 0 1
+
+bsplinesurf surf8 \
+5 5 0 6 1 1 4 1 5 1 8 6 \
+5 5 0 6 2 1 3 1 6 1 7 6 \
+0 0 -8 1 2 0 -7 1 5 0 -9 1 10 0 -8 1 12 0 -9 1 15 0 -7 1 16 0 -8 1 19 0 -8 1 24 0 -8 1 \
+0 10 -8 1 3 10 -7 1 8 10 -9 1 10 10 -8 1 12 10 -9 1 15 10 -7 1 20 10 -8 1 21 10 -8 1 24 10 -8 1 \
+0 20 8 1 4 20 7 1 7 20 9 1 10 20 8 1 12 20 9 1 16 20 7 1 19 20 8 1 20 20 8 1 24 20 8 1 \
+0 30 8 1 2 30 7 1 8 30 9 1 10 30 8 1 12 30 9 1 14 30 7 1 20 30 8 1 22 30 8 1 24 30 8 1 \
+0 40 -8 1 4 40 -7 1 9 40 -9 1 10 40 -8 1 12 40 -9 1 16 40 -7 1 21 40 -8 1 22 40 -8 1 24 40 -8 1 \
+0 50 -8 1 4 50 -7 1 6 50 -9 1 10 50 -8 1 12 50 -9 1 16 50 -7 1 18 50 -8 1 20 50 -8 1 24 50 -8 1 \
+0 60 8 1 3 60 7 1 7 60 9 1 10 60 8 1 12 60 9 1 15 60 7 1 19 60 8 1 20 60 8 1 24 60 8 1 \
+0 70 8 1 3 70 7 1 5 70 9 1 10 70 8 1 12 70 9 1 15 70 7 1 17 70 8 1 20 70 8 1 24 70 8 1 \
+0 80 8 1 3 80 7 1 7 80 9 1 10 80 8 1 12 80 9 1 15 80 7 1 19 80 8 1 21 80 8 1 24 80 8 1
+
+bsplinesurf rsurf1 \
+3 4 0 4 1 1 2 1 3 4 \
+3 4 0 4 1 1 2 1 3 4 \
+0 0 0 1 2 0 0 1 3 0 15 1 5 0 15 1 7 0 0 1 10 0 0 1 \
+0 2 0 1 1 3 0 2 4 2 15 2 6 3 15 2 8 2 0 2 10 3 0 1 \
+0 4 0 1 3 4 0 2 4 3 15 3 5 3 15 3 7 4 0 2 10 5 0 1 \
+0 6 0 1 3 6 0 2 4 6 15 3 5 6 15 3 8 5 0 2 10 7 0 1 \
+0 8 0 1 2 8 0 2 4 8 15 2 6 8 15 2 7 7 0 2 10 8 0 1 \
+0 10 0 1 2 10 0 1 4 10 15 1 6 10 15 1 7 10 0 1 10 10 0 1
+
+bsplinesurf rsurf2 \
+3 4 0 4 1 1 2 1 3 4 \
+3 4 0 4 1 1 2 1 3 4 \
+0 0 10 1 2 0 5 1 3 0 4 1 5 0 6 1 7 0 10 1 10 0 5 1 \
+0 2 5 1 1 3 7 4 4 2 7 4 6 3 4 4 8 2 4 4 10 3 7 1 \
+0 4 8 1 3 4 10 4 4 3 6 2 5 3 8 2 7 4 7 4 10 5 5 1 \
+0 6 8 1 3 6 10 4 4 6 6 2 5 6 4 2 8 5 7 4 10 7 10 1 \
+0 8 6 1 2 8 5 4 4 8 8 4 6 8 8 4 7 7 3 4 10 8 5 1 \
+0 10 8 1 2 10 10 1 4 10 6 1 6 10 5 1 7 10 3 1 10 10 10 1
+
+bsplinesurf rsurf3 \
+2 7 0 3 1 1 2 1 3 1 4 1 5 1 6 3 \
+2 3 0 3 1 1 2 3 \
+-20 20 10 1 20 20 10 1 20 -20 10 2 -20 -20 10 2 -10 10 10 3 10 10 10 4 10 -10 10 4 -10 -10 10 2 \
+-10 10 5 1 15 15 5 2 10 -10 5 3 -15 -15 5 1 -5 5 5 1 5 5 5 3 5 -5 5 4 -5 -5 5 3 \
+-15 15 -5 3 10 10 -5 1 15 -15 -5 2 -10 -10 -5 2 -5 5 -5 3 5 5 -5 3 5 -5 -5 1 -5 -5 -5 4 \
+-20 20 -10 2 20 20 -10 4 20 -20 -10 3 -20 -20 -10 3 -10 10 -10 2 10 10 -10 2 10 -10 -10 1 -10 -10 -10 1
+
+bsplinesurf rsurf4 \
+4 5 0 5 2 1 4 1 5 1 6 5 \
+4 5 0 5 1 1 4 1 6 1 7 5 \
+ 10 20 -20 1 9 19 -19 1 8 18 -18 2 7 17 -17 2 7 17 17 1 8 18 18 1 9 19 19 4 10 20 20 1 \
+ 10 -20 20 2 9 -19 19 2 8 -18 18 1 7 -17 17 2 7 -17 -17 4 8 -18 -18 3 9 -19 -19 3 10 -20 -20 2 \
+ 10 10 -10 3 9 9 -9 4 8 8 -8 1 7 7 -7 2 7 7 7 4 8 8 8 1 9 9 9 2 10 10 10 3 \
+ 10 -10 10 4 9 -9 9 2 8 -8 8 3 7 -7 7 2 7 -7 -7 1 8 -8 -8 1 9 -9 -9 1 10 -10 -10 4 \
+-10 20 -20 4 -9 19 -19 3 -8 18 -18 3 -7 17 -17 2 -7 17 17 1 -8 18 18 2 -9 19 19 4 -10 20 20 4 \
+-10 -20 20 3 -9 -19 19 2 -8 -18 18 3 -7 -17 17 1 -7 -17 -17 4 -8 -18 -18 2 -9 -19 -19 3 -10 -20 -20 3 \
+-10 10 -10 2 -9 9 -9 1 -8 8 -8 3 -7 7 -7 1 -7 7 7 1 -8 8 8 1 -9 9 9 2 -10 10 10 2 \
+-10 -10 10 1 -9 -9 9 1 -8 -8 8 2 -7 -7 7 1 -7 -7 -7 4 -8 -8 -8 1 -9 -9 -9 1 -10 -10 -10 1
+
+bsplinesurf rsurf5 \
+1 2 0 2 1 2 \
+5 5 0 6 2 1 3 1 6 1 7 6 \
+0 0 0 1 10 0 5 2 \
+0 10 2 3 10 10 3 1 \
+0 20 10 1 10 20 20 4 \
+0 30 0 2 10 30 0 2 \
+0 40 -1 1 10 40 5 2 \
+0 50 5 1 10 50 5 1 \
+0 60 4 3 10 60 4 1 \
+0 70 -5 5 10 70 -3 2 \
+0 80 7 1 10 80 0 1
+
+bsplinesurf rsurf6 \
+2 3 0 3 1 1 2 3 \
+5 5 0 6 2 1 3 1 6 1 7 6 \
+0 0 0 1 2 0 0 1 5 0 -1 1 10 0 5 2 \
+0 10 2 3 3 10 0 1 8 10 5 3 10 10 3 1 \
+0 20 10 1 4 20 4 3 7 20 4 2 10 20 20 4 \
+0 30 0 2 2 30 0 1 8 30 0 1 10 30 0 2 \
+0 40 -1 1 4 40 5 2 9 40 1 3 10 40 5 2 \
+0 50 5 1 4 50 10 5 6 50 10 5 10 50 5 1 \
+0 60 4 3 3 60 -3 1 7 60 -4 1 10 60 4 1 \
+0 70 -5 5 3 70 0 1 5 70 0 1 10 70 -3 2 \
+0 80 7 1 3 80 1 2 7 80 3 1 10 80 0 1
+
+bsplinesurf rsurf7 \
+5 5 0 6 1 1 4 1 5 1 8 6 \
+5 5 0 6 2 1 3 1 6 1 7 6 \
+0 0 0 1 2 0 0 1 5 0 -1 1 10 0 5 2 12 0 1 1 15 0 -3 2 16 0 -3 1 19 0 -4 1 24 0 0 1 \
+0 10 2 3 3 10 0 1 8 10 5 3 10 10 3 1 12 10 2 3 15 10 0 1 20 10 5 3 21 10 3 1 24 10 0 2 \
+0 20 10 1 4 20 4 3 7 20 4 2 10 20 20 4 12 20 10 1 16 20 4 3 19 20 4 2 20 20 10 4 24 20 0 1 \
+0 30 0 2 2 30 0 1 8 30 0 1 10 30 0 2 12 30 0 2 14 30 0 1 20 30 0 1 22 30 0 2 24 30 0 3 \
+0 40 -1 1 4 40 5 2 9 40 1 3 10 40 5 2 12 40 -1 1 16 40 5 2 21 40 1 3 22 40 5 2 24 40 0 1 \
+0 50 5 1 4 50 10 5 6 50 10 5 10 50 5 1 12 50 5 1 16 50 10 5 18 50 10 5 20 50 5 1 24 50 0 2 \
+0 60 4 3 3 60 -3 1 7 60 -4 1 10 60 4 1 12 60 4 3 15 60 -3 1 19 60 -4 1 20 60 4 1 24 60 0 1 \
+0 70 -5 5 3 70 0 1 5 70 0 1 10 70 -3 2 12 70 -5 5 15 70 0 1 17 70 0 1 20 70 -3 2 24 70 0 3 \
+0 80 7 1 3 80 1 2 7 80 3 1 10 80 0 1 12 80 7 1 15 80 1 2 19 80 3 1 21 80 0 1 24 80 0 1
+
+bsplinesurf rsurf8 \
+5 5 0 6 1 1 4 1 5 1 8 6 \
+5 5 0 6 2 1 3 1 6 1 7 6 \
+0 0 -8 1 2 0 -7 1 5 0 -9 1 10 0 -8 2 12 0 -9 1 15 0 -7 2 16 0 -8 1 19 0 -8 1 24 0 -8 1 \
+0 10 -8 3 3 10 -7 1 8 10 -9 3 10 10 -8 1 12 10 -9 3 15 10 -7 1 20 10 -8 3 21 10 -8 1 24 10 -8 2 \
+0 20 8 1 4 20 7 3 7 20 9 2 10 20 8 4 12 20 9 1 16 20 7 3 19 20 8 2 20 20 8 4 24 20 8 1 \
+0 30 8 2 2 30 7 1 8 30 9 1 10 30 8 2 12 30 9 2 14 30 7 1 20 30 8 1 22 30 8 2 24 30 8 3 \
+0 40 -8 1 4 40 -7 2 9 40 -9 3 10 40 -8 2 12 40 -9 1 16 40 -7 2 21 40 -8 3 22 40 -8 2 24 40 -8 1 \
+0 50 -8 1 4 50 -7 5 6 50 -9 5 10 50 -8 1 12 50 -9 1 16 50 -7 5 18 50 -8 5 20 50 -8 1 24 50 -8 2 \
+0 60 8 3 3 60 7 1 7 60 9 1 10 60 8 1 12 60 9 3 15 60 7 1 19 60 8 1 20 60 8 1 24 60 8 1 \
+0 70 8 5 3 70 7 1 5 70 9 1 10 70 8 2 12 70 9 5 15 70 7 1 17 70 8 1 20 70 8 2 24 70 8 3 \
+0 80 8 1 3 80 7 2 7 80 9 1 10 80 8 1 12 80 9 1 15 80 7 2 19 80 8 1 21 80 8 1 24 80 8 1
+
+# intersect all surfaces
+set surfaces [list surf1 surf2 rsurf1 surf3 rsurf2 surf4 rsurf3 surf5 rsurf4 surf6 rsurf5 surf7 rsurf6 surf8 rsurf7 rsurf8]
+#set i 1
+#set shapes {}
+foreach s1 $surfaces {
+# mkface f_$s1 $s1
+# lappend shapes f_$s1
+ foreach s2 $surfaces {
+ if { $s1 != $s2 } {
+ intersect r $s1 $s2
+# if { [regexp {a 3d curve} [whatis r]] } {
+# mkedge e_$i r
+# lappend shapes e_$i
+# incr i
+# }
+ }
+ }
+}
+
+# call vinit just to prepare for snapshot
+#eval vdisplay $shapes
+vinit
+fit