occt.git
8 years ago0026468: Out of range exception on current master
aml [Wed, 22 Jul 2015 13:13:46 +0000 (16:13 +0300)]
0026468: Out of range exception on current master

Problem with different ranges fixed.

test cases update.

8 years ago0026310: Very slow boolean cut operations on cylinders
nbv [Wed, 22 Jul 2015 13:10:27 +0000 (16:10 +0300)]
0026310: Very slow boolean cut operations on cylinders

1. JoinWLines algorithm has been improved.
2. Reference to the V-boundaries is deleted when computing step.
3. Decreasing the tolerance when computing parameters of WLine.
4. Adding boundary point is forbidden if it lies in prolongation of found ones.
5. Possible reason of exception has been eliminated.
6. Processing of critical point has been improved.

Test cases for this issue have been created.
Correction of some test case(s).

Test case bugs/modalg_6/bug26310_4 is added

Update of test-cases for issue #26310

8 years ago0026454: Visualization, TKOpenGl - do not require deprecated function of GL_ARB_verte...
kgv [Fri, 17 Jul 2015 08:17:45 +0000 (11:17 +0300)]
0026454: Visualization, TKOpenGl - do not require deprecated function of GL_ARB_vertex_type_2_10_10_10_rev in core profile

8 years ago0026446: GeomConvert::ConcatC1 produces not expected curve
aml [Thu, 16 Jul 2015 09:10:38 +0000 (12:10 +0300)]
0026446: GeomConvert::ConcatC1 produces not expected curve

Concatenation fixed.

8 years ago0026435: Visualization - V3d_View::ConvertToGrid returns wrong coordinates for non...
apl [Tue, 14 Jul 2015 17:21:24 +0000 (20:21 +0300)]
0026435: Visualization - V3d_View::ConvertToGrid returns wrong coordinates for non-orthogonal projection

8 years ago0026418: Unjustified limitation on tolerance of a input shape in BRepOffset_MakeOffset
aml [Tue, 21 Jul 2015 08:19:14 +0000 (11:19 +0300)]
0026418: Unjustified limitation on tolerance of a input shape in BRepOffset_MakeOffset

Performance improvements and regression elimination.
Handling of degenerated case added.

Update of test-case offset faces_type_a A2 according to the new behavior
Test-case for issue #26418

8 years ago0026364: Foundation Classes, TKMath - Optimize BVH binned algorithm
dbp [Tue, 23 Jun 2015 09:34:06 +0000 (12:34 +0300)]
0026364: Foundation Classes, TKMath - Optimize BVH binned algorithm

8 years ago0026292: Visualization - Parallelize queue-based BVH builders (subclasses of BVH_Queu...
dbp [Fri, 17 Jul 2015 11:29:50 +0000 (14:29 +0300)]
0026292: Visualization - Parallelize queue-based BVH builders (subclasses of BVH_QueueBuilder)

8 years ago0026408: Exception during fixshape procedure.
gka [Tue, 21 Jul 2015 07:35:52 +0000 (10:35 +0300)]
0026408: Exception during fixshape procedure.

Attached invalid shape is represented by solid containing one face twice.
Protection from such case was added in ShapeFix_Shell class.
Creation of COMPSOLID was modified for case when shells composing COMPSOLID have the same shared faces in order to prevent hanging.
Small modification.Protection to avoid exception
Test-case for issue #26408

8 years ago0026424: Visualization, TKOpenGl - fix text rendering in core profile
kgv [Mon, 20 Jul 2015 17:58:55 +0000 (20:58 +0300)]
0026424: Visualization, TKOpenGl - fix text rendering in core profile

OpenGl_Context::init() - fix condition on initializing alien OpenGL context within core profile.
OpenGl_Font::renderGlyph() - use GL_RED data format in core profile.
OpenGl_Text::render() - do not use GL_ALPHA_TEST in core profile.

Test-case for issue #26424

8 years ago0026351: Wrong result found by the projection algorithm
aml [Wed, 24 Jun 2015 12:44:28 +0000 (15:44 +0300)]
0026351: Wrong result found by the projection algorithm

C2 continuity intervals changed to Knots intervals in case of Bspline curve.
Fixed incorrect extremaPC usage.

Test case for issue CR26351
Update of test-cases according to the new behavior

8 years ago0026423: Complete documentation of CPnts_AbscissaPoint Adv/Perform methods
BenjaminBihler [Mon, 20 Jul 2015 15:21:58 +0000 (18:21 +0300)]
0026423: Complete documentation of CPnts_AbscissaPoint Adv/Perform methods

8 years ago0026407: BRepMesh_Delaun should not take into account frontier edges on first pass...
oan [Mon, 20 Jul 2015 13:25:14 +0000 (16:25 +0300)]
0026407: BRepMesh_Delaun should not take into account frontier edges on first pass of algorithm

Correction of new vertices insertion: remove all triangles shot by point even if they contain frontier edges in order to prevent cases of free edge glued with frontier;
findNextPolygonLink: choose link with opposite direction to previous one as the last resort in case if the is no another option;
Enlarge bounding boxes by Precision::PConfusion() in order to not to miss possible intersections;

Test-case for issue #26407

Return NoIntersection in case of end point touch and isConsiderEndPointTouch flag is not set

Update of test-cases according to the new behavior

8 years ago0026308: Segmentation fault in BSplCLib::LocateParameter
nbv [Mon, 20 Jul 2015 12:23:00 +0000 (15:23 +0300)]
0026308: Segmentation fault in BSplCLib::LocateParameter

Detection of "jumping" knot value has been improved.
Test-case for issue #26308
Comment has been added in test case bugs/modalg_6/bug26308.

8 years ago0026406: BRepPrimAPI_MakeRevol crash when rotating Paraboloid face.
ifv [Mon, 20 Jul 2015 11:59:07 +0000 (14:59 +0300)]
0026406: BRepPrimAPI_MakeRevol crash when rotating Paraboloid face.

Test-case for issue #26406

8 years ago0026387: BRepPrimAPI_MakePrism crash when extruding Paraboloid face.
ifv [Mon, 20 Jul 2015 11:07:11 +0000 (14:07 +0300)]
0026387: BRepPrimAPI_MakePrism crash when extruding Paraboloid face.

Test-cases for issue #26387

8 years ago0025048: Wrong return value of GeomLib_Tool::Parameter
ifv [Fri, 10 Jul 2015 11:10:14 +0000 (14:10 +0300)]
0025048: Wrong return value of GeomLib_Tool::Parameter

8 years ago0026398: Tricheck command should be extended to show free nodes and links breaking...
oan [Mon, 20 Jul 2015 10:06:21 +0000 (13:06 +0300)]
0026398: Tricheck command should be extended to show free nodes and links breaking mesh consistency

Remark from MSV

8 years ago0026457: Failed build with OCCT_DEBUG enabled
abv [Fri, 17 Jul 2015 16:20:06 +0000 (19:20 +0300)]
0026457: Failed build with OCCT_DEBUG enabled

Debug code enabled with OCCT_DEBUG macro corrected for compiling with new handles.

QANCollection_Handle.cxx simplified so as to avoid need of using /bigobj option when building by Visual Studio; templates of project files, CMake projects, and test perf fclasses handle corrected accordingly.

Script genproj corrected to recognize VTK and to build DRAWEXE as executable (rather than DLL).

8 years ago0024002: Overall code and build procedure refactoring -- Mac OSX
abv [Fri, 17 Jul 2015 08:43:33 +0000 (11:43 +0300)]
0024002: Overall code and build procedure refactoring -- Mac OSX

Draw_Window_1.mm, Cocoa_Window.mm - fix compilation issues on OS X
CMake env.build.sh - fix libraries path

MSVC project templates - /bigobj flag added for all configurations (x64, x86, release and debug)

Standard_Type.hxx - enforce initialization of all type descriptors at library load

8 years ago0026453: NCollection_StlIterator - declare reference getters as const
kgv [Fri, 17 Jul 2015 06:44:38 +0000 (09:44 +0300)]
0026453: NCollection_StlIterator - declare reference getters as const

8 years ago0026448: Method Prepend() of sequence breaks it if argument is empty sequence
abv [Wed, 15 Jul 2015 21:34:02 +0000 (00:34 +0300)]
0026448: Method Prepend() of sequence breaks it if argument is empty sequence

Check for empty input sequence added in methods Append() and Prepend() of TCollection and NCollection sequences.

Test bugs fclasses bug26448 added

8 years ago0022827: Make non-CPP source files (CDLs, headers) to appear in MS VS project files...
ibs [Fri, 10 Jul 2015 10:44:52 +0000 (13:44 +0300)]
0022827: Make non-CPP source files (CDLs, headers) to appear in MS VS project files -- documentation

Generation of OCCT overview documentation added as building of "Overview" project.
BUILD_OCCT_OVERVIEW variable introduced to offer generation OCCT overview documentation in html format.
Overview md files added to overview OCCT project.

"Building with CMake" article updated; overview.html copy into an install directory.
CMAKE_BUILD_TYPE for single-configuration generators described; BUILD_CONFIGURATION removed.

8 years ago0024002: Overall code and build procedure refactoring - samples
apn [Fri, 10 Jul 2015 13:50:28 +0000 (16:50 +0300)]
0024002: Overall code and build procedure refactoring - samples

Modified MFC samples; minor fix in headers (for building products)

8 years ago0024786: Move functionality of WOK command wgenproj to OCCT tool genproj
ski [Wed, 9 Jul 2014 09:37:07 +0000 (13:37 +0400)]
0024786: Move functionality of WOK command wgenproj to OCCT tool genproj

WOK scripts used in generation of MSVC projects are put to adm/genproj.tcl
Batch script genproj.bat added, replacing 'wgenproj' command of WOK.

WOK tool for configuring custom.bat is also copied; it is called by genproj if custom.bat does not exist

Environment variable SHORTCUT_HEADERS can be defined in custom.bat to have headers put in inc just shortcuts to actual headers, instead of copies.
Corresponding option "copy OCCT short-cut headers instead of original one to inc folder" is added to genconf dialog

8 years ago0026389: The Visual Studio solution of OCCT generated by CMake should have all build...
ski [Wed, 8 Jul 2015 12:33:25 +0000 (15:33 +0300)]
0026389: The Visual Studio solution of OCCT generated by CMake should have all build configurations

the choice of OCCT build type moved to generated projects
debug library search removed from 3rdparty search mechanism
draw.bat receive 3 arguments: compiler, bitness and build type

8 years ago0022827: Make non-CPP source files (CDLs, headers) to appear in MS VS project files
ski [Mon, 19 Jan 2015 09:29:42 +0000 (12:29 +0300)]
0022827: Make non-CPP source files (CDLs, headers) to appear in MS VS project files

Header files(*.h, *.hxx, *.lxx, *.gxx) were included in Visual Studio projects.

8 years ago0026388: Setting debugging environment of the Visual Studio solution of OCCT generate...
ibs [Thu, 2 Jul 2015 13:55:21 +0000 (16:55 +0300)]
0026388: Setting debugging environment of the Visual Studio solution of OCCT generated by CMake

0. debugging environment added to DRAWEXE vcxproj
1. OCCT header files copied to inc directory of an installation folder. (the grouping of header files removed)
1. collect reference files of all OCCT header files in <binary dir>/inc during cmake configuration process
2. tcl installation procedure installs all dlls found in tcl bin folder (for win. this approach takes into account installing of zlib library that may be located in tcl bin folder)
4. each a OCCT project include just 3rdparty paths and <cmake binary dir>/inc folder

8 years ago0025114: CMake-based build tools for OCCT 7.0
ibs [Thu, 2 Jul 2015 15:17:54 +0000 (18:17 +0300)]
0025114: CMake-based build tools for OCCT 7.0

All CMake meta-projects for OCCT are put to OCCT code (including fragments previously generated by WOK).

"/bigobj" compiler flag added to TKQADraw because of the size of its object file

[GeomToStep & Graphic3d] private headers are included from current dir of including source file

8 years ago0024023: Revamp the OCCT Handle - non-cost reference cast
abv [Wed, 24 Jun 2015 21:45:56 +0000 (00:45 +0300)]
0024023: Revamp the OCCT Handle - non-cost reference cast

Code corrected to avoid passing object to function as non-const reference to handle of the base type where it is not necessary.

8 years ago0024023: Revamp the OCCT Handle - gcc and clang
abv [Fri, 3 Jul 2015 08:31:43 +0000 (11:31 +0300)]
0024023: Revamp the OCCT Handle - gcc and clang

Adaptations for compiling with GCC 4.7 and 4.8:
- Construction semantics is used for Handle objects being initialized by const Handle objects of derived type, to avoid overload resolution error in GCC 4.7.
- Missing includes added.
- Fixed bugs related to misuse of direct casts of handle.
- Eliminate CLang warnings on uninitialized and unused variables, functions, and expressions

8 years ago0024023: Revamp the OCCT Handle -- StepToGeom
abv [Fri, 3 Jul 2015 08:24:43 +0000 (11:24 +0300)]
0024023: Revamp the OCCT Handle -- StepToGeom

StepToGeom package refactored to avoid C-style casts of handles to derived types.

Instead of 45 classes, each defining single static method, it now defines 45 static methods in the main package class.
Results of conversion are returned in normal way rather than via function parameter.

Conflicts:
src/StepToGeom/StepToGeom_MakeSurfaceOfRevolution.cxx

8 years ago0024870: Provide OCCT RTTI test cases
abv [Tue, 30 Jun 2015 07:25:48 +0000 (10:25 +0300)]
0024870: Provide OCCT RTTI test cases

Test commands for checking performance and functionality of OCCT handles and RTTI added.
New test case added for that: test perf fclasses handle.

Implementation of opencascade::handle improved to enable compile-time error if two handles of incompatible types are compared.
Comparison of handle to NULL is not possible any more; method IsNull() should be used instead.

Method LDOM_MemManager::Doc() is removed to avoid cyclic dependency of headers; constructor of LDOM_Document(LDOM_MemManager&) is used directly instead.

Inclusion of headers corrected for compilation after previous patch.

8 years ago0024002: Overall code and build procedure refactoring -- manual
abv [Wed, 1 Jul 2015 14:13:27 +0000 (17:13 +0300)]
0024002: Overall code and build procedure refactoring -- manual

Documentation comments (mostly to package items, in package CDL) lost by CDL extraction are transferred to headers manually.
Some wrong comments (artifacts of CDL-generated code) are removed.
Missing header files added.
Yacc and Lex files removed from StepFile/FILES to avoid problems when building by WOK

Conflicts:
src/BRepOffsetAPI/BRepOffsetAPI_Sewing.hxx
src/Quantity/Quantity_AbsorbedDose.hxx
src/Quantity/Quantity_Acceleration.hxx
src/Quantity/Quantity_AcousticIntensity.hxx
src/Quantity/Quantity_Activity.hxx
src/Quantity/Quantity_Admittance.hxx
src/Quantity/Quantity_AmountOfSubstance.hxx
src/Quantity/Quantity_AngularVelocity.hxx
src/Quantity/Quantity_Area.hxx
src/Quantity/Quantity_Capacitance.hxx
src/Quantity/Quantity_CoefficientOfExpansion.hxx
src/Quantity/Quantity_Concentration.hxx
src/Quantity/Quantity_Conductivity.hxx
src/Quantity/Quantity_Consumption.hxx
src/Quantity/Quantity_Density.hxx
src/Quantity/Quantity_DoseEquivalent.hxx
src/Quantity/Quantity_ElectricCapacitance.hxx
src/Quantity/Quantity_ElectricCharge.hxx
src/Quantity/Quantity_ElectricCurrent.hxx
src/Quantity/Quantity_ElectricFieldStrength.hxx
src/Quantity/Quantity_ElectricPotential.hxx
src/Quantity/Quantity_Energy.hxx
src/Quantity/Quantity_Enthalpy.hxx
src/Quantity/Quantity_Entropy.hxx
src/Quantity/Quantity_Force.hxx
src/Quantity/Quantity_Frequency.hxx
src/Quantity/Quantity_Illuminance.hxx
src/Quantity/Quantity_Impedance.hxx
src/Quantity/Quantity_Inductance.hxx
src/Quantity/Quantity_KinematicViscosity.hxx
src/Quantity/Quantity_KineticMoment.hxx
src/Quantity/Quantity_Length.hxx
src/Quantity/Quantity_Luminance.hxx
src/Quantity/Quantity_LuminousEfficacity.hxx
src/Quantity/Quantity_LuminousExposition.hxx
src/Quantity/Quantity_LuminousFlux.hxx
src/Quantity/Quantity_LuminousIntensity.hxx
src/Quantity/Quantity_MagneticFieldStrength.hxx
src/Quantity/Quantity_MagneticFlux.hxx
src/Quantity/Quantity_MagneticFluxDensity.hxx
src/Quantity/Quantity_Mass.hxx
src/Quantity/Quantity_MassFlow.hxx
src/Quantity/Quantity_MolarConcentration.hxx
src/Quantity/Quantity_MolarMass.hxx
src/Quantity/Quantity_MolarVolume.hxx
src/Quantity/Quantity_Molarity.hxx
src/Quantity/Quantity_MomentOfAForce.hxx
src/Quantity/Quantity_MomentOfInertia.hxx
src/Quantity/Quantity_Momentum.hxx
src/Quantity/Quantity_PlaneAngle.hxx
src/Quantity/Quantity_Power.hxx
src/Quantity/Quantity_Pressure.hxx
src/Quantity/Quantity_Reluctance.hxx
src/Quantity/Quantity_Resistance.hxx
src/Quantity/Quantity_Resistivity.hxx
src/Quantity/Quantity_SolidAngle.hxx
src/Quantity/Quantity_SoundIntensity.hxx
src/Quantity/Quantity_SpecificHeatCapacity.hxx
src/Quantity/Quantity_Speed.hxx
src/Quantity/Quantity_SurfaceTension.hxx
src/Quantity/Quantity_Temperature.hxx
src/Quantity/Quantity_ThermalConductivity.hxx
src/Quantity/Quantity_Torque.hxx
src/Quantity/Quantity_Velocity.hxx
src/Quantity/Quantity_Viscosity.hxx
src/Quantity/Quantity_Volume.hxx
src/Quantity/Quantity_VolumeFlow.hxx
src/Quantity/Quantity_Weight.hxx
src/Quantity/Quantity_Work.hxx
src/V3d/V3d_Coordinate.hxx

8 years ago0024002: Overall code and build procedure refactoring -- automatic
abv [Sun, 12 Jul 2015 04:42:38 +0000 (07:42 +0300)]
0024002: Overall code and build procedure refactoring -- automatic

Automatic upgrade of OCCT code by command "occt_upgrade . -nocdl":
- WOK-generated header files from inc and sources from drv are moved to src
- CDL files removed
- All packages are converted to nocdlpack

8 years ago0024023: Revamp the OCCT Handle -- ambiguity
abv [Thu, 2 Jul 2015 14:06:37 +0000 (17:06 +0300)]
0024023: Revamp the OCCT Handle -- ambiguity

Code corrected to avoid ambiguous situations due to changed implementation of Handle (overloaded methods accepting handles of different types).
In Adaptor3d_CurveOnSurface added method Load() with two parameters, allowing to avoid ambiguity of cast of handles when calling separate methods Load() for curve and surface, replacing by single call.
In DrawTrSurf and IGESData_IGESWriter, template variants of methods Set() and Send(), respectively, are added to avoid ambiguity when these methods are called with handles to derived types (using SFINAE).
In NCollection_DefineHSequence, method Append() accepting handle to another HSequence is made template, to be available only if argument has compatible type.

8 years ago0024023: Revamp the OCCT Handle -- downcast (manual)
abv [Thu, 2 Jul 2015 13:44:46 +0000 (16:44 +0300)]
0024023: Revamp the OCCT Handle -- downcast (manual)

Manual corrections of C-style casts of Handle types

8 years ago0024023: Revamp the OCCT Handle -- downcast (automatic)
abv [Thu, 2 Jul 2015 13:41:05 +0000 (16:41 +0300)]
0024023: Revamp the OCCT Handle -- downcast (automatic)

Automatic update by command "occt_upgrade . -downcast"

C-style cast of Handle to that of derived type (now illegal) is replaced by call to DownCast()
Const reference local variables of Handle type initialized by result of DownCast are replaced by normal variables.

8 years ago0024023: Revamp the OCCT Handle -- plugin
abv [Mon, 29 Jun 2015 06:17:43 +0000 (09:17 +0300)]
0024023: Revamp the OCCT Handle -- plugin

Definition of PLUGINFACTORY function changed to return Standard_Transient* instead of Handle(Standard_Transient), which cannot be returned by C-style function.
Default implementation of PLUGINFACTORY() instantiated by macro PLUGIN() is corrected accordingly.
Methods Factory() in persistence packages are made returning const & to handle; this is to reflect the fact that returned handle should point to existing object (usually statically allocated) rather than new one.

8 years ago0024023: Revamp the OCCT Handle -- GC
abv [Wed, 24 Jun 2015 21:39:28 +0000 (00:39 +0300)]
0024023: Revamp the OCCT Handle -- GC

Implementation of operator of type casting to resulting object simplified in classes of GC and GCE2d packages

8 years ago0024023: Revamp the OCCT Handle -- general
abv [Tue, 30 Jun 2015 07:25:12 +0000 (10:25 +0300)]
0024023: Revamp the OCCT Handle -- general

Missing headers added; includes of headers "Handle_...hxx" removed.

Misuses of macro Handle() and its use in typedefs corrected.

Alias classes Profile and Option are removed from IFSelect; ones defined in MoniTool are used directly.

Removed header files defining only Handle classes (except Image_PixMap_Handle.hxx)

Classes SelectMgr_BaseFrustum and now inherit Standard_Transient and can be manipulated by Handle (not NCollection_Handle)

Fixed reference-type local variable pointing to temporary object

Use of handle in conditional expressions and comparisons to NULL are replaced by call to method IsNull()

8 years ago0024023: Revamp the OCCT Handle -- automatic
abv [Thu, 2 Jul 2015 13:30:15 +0000 (16:30 +0300)]
0024023: Revamp the OCCT Handle -- automatic

Automatic upgrade by command "occt_upgrade . -handle"

8 years ago0024023: Revamp the OCCT Handle -- handle
abv [Wed, 1 Jul 2015 08:00:57 +0000 (11:00 +0300)]
0024023: Revamp the OCCT Handle -- handle

Macro defining Handle class is replaced by template class implementing the same concept (defined in Standard_Handle.hxx and Standard_Transient.hxx), opencascade::handle<>.

Header file Standard_DefineHandle.hxx becomes deprecated: the only useful macro DEFINE_STANDARD_RTTI is defined now in Standard_Type.hxx. Standard_DefineHandle.hxx is kept for compatibility, it defines macros previously used for definition of Handles and RTTI as empty. Macro DEFINE_STANDARD_HANDLE(C1,C2) is also kept for compatibility; now it expands to typedef "Handle_C1" to corresponding handle class.

Definitions of macro Handle() and STANDARD_TYPE() moved from Standard_Macro.hxx to Standard_Handle.hxx (new file) and Standard_Type.hxx, respectively.

New template class NCollection_Shared added, allowing to define sub-class manipulated by handle, for any non-transient class.

Adaptations for compiling with GCC 4.7

8 years ago0024859: Replace SortTools by STL equivalents
abv [Tue, 30 Jun 2015 07:47:45 +0000 (10:47 +0300)]
0024859: Replace SortTools by STL equivalents

Package SortTools and its derived classes are removed; STL sort algorithms are used instead.
Comparator objects are mostly reimplemented as local classes.

8 years ago0024750: Replace instantiations of TCollection generic classes by NCollection templat...
abv [Mon, 2 Jun 2014 06:08:25 +0000 (09:08 +0300)]
0024750: Replace instantiations of TCollection generic classes by NCollection templates -- manual changes

Forward declaration of TCollection instances as classes are replaced by inclusion of corresponding header.
Cyclic dependencies between declaration of collection class and its item are resolved by forward declaring a class in collection header.

8 years ago0024750: Replace instantiations of TCollection generic classes by NCollection templat...
abv [Sun, 28 Jun 2015 12:16:42 +0000 (15:16 +0300)]
0024750: Replace instantiations of TCollection generic classes by NCollection templates -- automatic

Automatic upgrade of code by command "occt_upgrade . -tcollection"

8 years ago0024947: Redesign OCCT legacy type system -- final corrections
abv [Thu, 14 Aug 2014 13:20:14 +0000 (17:20 +0400)]
0024947: Redesign OCCT legacy type system -- final corrections

Remaining missing includes added manually

8 years ago0024947: Redesign OCCT legacy type system -- automatic
abv [Sat, 11 Jul 2015 08:06:11 +0000 (11:06 +0300)]
0024947: Redesign OCCT legacy type system -- automatic

Automatic upgrade with command "occt_upgdare . -rtti"

8 years ago0024947: Redesign OCCT legacy type system
abv [Fri, 22 May 2015 03:40:28 +0000 (06:40 +0300)]
0024947: Redesign OCCT legacy type system

Global static functions instantiating RTTI descriptors for class types (used though STANDARD_TYPE macro) are replaced by template static method Instance() of the class Standard_Type.
Implementation of RTTI is revised accordingly (global registry of type descriptors added to ensure single instance of each type descriptor shared by all dynamic libraries).
Obsolete methods of Standard_Type class (IsInstance(), Ancestors()) are removed; new method Parent() is added returning type descriptor of the parent class.
Class Standard_AncestorIterator is removed; this iteration can be easily done by recursive calls to Standard_Type::Parent().

Definition of macro STANDARD_TYPE() moved from Standard_Macro.hxx to Standard_DefineHandle.hxx.
Inclusion of Standard_Type.hxx and the class header is now necessary for use of method DownCast() and function STANDARD_TYPE() for the class.
In general, Standard_Type.hxx should be included now instead of Standard_DefineHandle.hxx in places where these macros are used.

Macro DEFINE_STANDARD_EXCEPTION changed to define all methods inline; macro IMPLEMENT_STANDARD_EXCEPTION becomes obsolete.
Macros IMPLEMENT_DOWNCAST, IMPLEMENT_STANDARD_* become deprecated, they are still defined (as empty) for compatibility.

Implementation of Handle classes became fully inline.
Method get() is added in Handle classes returning pointer to the contained object.

RTTI removed from NCollection_Handle class.

Standard_Persistent is made empty descendant of Standard_Transient, instead of implementing its own hierarchy with reference counting.

Unused enumerations Standard_InternalType, Standard_WayOfLife, Standard_KindOfType are removed.
Global function HashCode() accepting Handle(Standard_Transient) is removed; HashCode() for Standard_CString with length should be used instead.

DRAW command dtryload is added for testing dynamic load / unload of the specified library.
New test perf fclasses bug24947 uses this command to measure performance of multiple (1000 times) loading / unloading OCCT libs on example of TKSTEP.

8 years ago0026369: Modeling Data - Geom_OffsetSurface direction is wrong for indirect conical...
apl [Mon, 6 Jul 2015 08:30:57 +0000 (11:30 +0300)]
0026369: Modeling Data - Geom_OffsetSurface direction is wrong for indirect conical surface

8 years ago0026394: Visualization - eliminate unused variable in SelectMgr_RectangularFrustum
vpa [Thu, 2 Jul 2015 17:00:32 +0000 (20:00 +0300)]
0026394: Visualization - eliminate unused variable in SelectMgr_RectangularFrustum

Unnecessary calculations were removed

8 years ago0026404: Visualization, Ray Tracing - use solid background color when gradient color...
kgv [Thu, 9 Jul 2015 11:25:31 +0000 (14:25 +0300)]
0026404: Visualization, Ray Tracing - use solid background color when gradient color is disabled

Test-case for issue #26404

8 years ago0026390: IntTools_Context should provide possibility to set tolerance used by PointOn...
oan [Thu, 2 Jul 2015 09:52:42 +0000 (12:52 +0300)]
0026390: IntTools_Context should provide possibility to set tolerance used by PointOnSurf projector instead using of strict value 1.e-12

New method SetPOnSProjectionTolerance to set projection tolerance has been added IntTools_Context. By default it is set to 1.e-12

8 years ago0026379: Wrong result produced by the volume maker algorithm
emv [Thu, 9 Jul 2015 11:17:49 +0000 (14:17 +0300)]
0026379: Wrong result produced by the volume maker algorithm

1. class BOPAlgo_ShellSplitter
static method void RefineShell(TopoDS_Shell& theShell,
                               BOPCol_ListOfShape& aLShX)
Added protection from INTERNAL edges.

2. class BOPAlgo_MakerVolume
method void BOPAlgo_MakerVolume::MakeBox(BOPCol_MapOfShape& theBoxFaces)
Creation of the overlapping box of proper size.

Test-cases for issue #26379

8 years ago0026356: Wrong result done by projection algorithm
aml [Thu, 9 Jul 2015 11:12:21 +0000 (14:12 +0300)]
0026356: Wrong result done by projection algorithm

Changed internal one dimension search algorithm in case of fast changing curve.

Test-case for issue #26356

8 years agoRemoving from UDLIST physically removed units
bugmaster [Fri, 3 Jul 2015 11:52:34 +0000 (14:52 +0300)]
Removing from UDLIST physically removed units

8 years ago0025613: Wrong distance found by xdistef command for attached shapes
nbv [Thu, 2 Jul 2015 11:44:35 +0000 (14:44 +0300)]
0025613: Wrong distance found by xdistef command for attached shapes

1. Divide B-spline curve on sub-intervals (bounded by knots values).
2. Class BRepLib_CheckCurveOnSurface_TargetFunc has been optimized for future implementation to checkshape algorithm (Adaptors are used instead of Geom_Curve(Surface)).
3. Parallelization of new algorithm.

The algorithm is based on math_PSO class.

Test cases for issue 25613 have been created.

Changes in accordance with the last remarks

8 years ago0026383: Incorrect tolerance computing in IntTools_FaceFace::ComputeTolerance()
aml [Wed, 1 Jul 2015 06:44:28 +0000 (09:44 +0300)]
0026383: Incorrect tolerance computing in IntTools_FaceFace::ComputeTolerance()

Projection of points 3d curve on faces deleted from ComputeTolerance().

8 years ago0026341: Uninitialized field in ShapeFix_Face
abv [Thu, 2 Jul 2015 11:33:54 +0000 (14:33 +0300)]
0026341: Uninitialized field in ShapeFix_Face

Parameter RemoveSmallAreaFaceMode in ShapeFix_Face is properly initialized; some other minor corrections

8 years ago0026342: No materials are read from STEP
ink [Thu, 2 Jul 2015 11:30:42 +0000 (14:30 +0300)]
0026342: No materials are read from STEP

Changed number of  arguments for descriptive_representation_item (for the case when description is absent).

Test case for issue CR26342

8 years ago0026352: Wrong intersection points found
mkv [Thu, 2 Jul 2015 11:27:47 +0000 (14:27 +0300)]
0026352: Wrong intersection points found

Small correction of test case for issue CR26352

8 years ago0026339: [Regression in 6.9.0] Projecting a curve hangs
aml [Thu, 2 Jul 2015 11:19:13 +0000 (14:19 +0300)]
0026339: [Regression in 6.9.0] Projecting a curve hangs

Changed computation of point projection to more correct.
Calculation periodicity information added to cache.
Test case for issue CR26339

Small correction of test case for issue CR26339

8 years ago0026184: GeomAPI_ExtremaCurveCurve hangs on parallel b-spline curves
aml [Thu, 2 Jul 2015 10:52:41 +0000 (13:52 +0300)]
0026184: GeomAPI_ExtremaCurveCurve hangs on parallel b-spline curves

Class CellFilterNDim added.
Class CellFulterNDim used in GlobOptMin to improve performance in case of many solutions.
Memory leak eliminated.

Test cases for issue CR26184

Small correction of test cases for issue CR26184

8 years ago0026332: BRepOffsetAPI_ThruSections algorithm fails on two wires with different numbe...
jgv [Thu, 2 Jul 2015 10:46:39 +0000 (13:46 +0300)]
0026332: BRepOffsetAPI_ThruSections algorithm fails on two wires with different number of edges

Correction according to remark.

Correction of mistake.

Test case for issue CR26332

8 years ago0026296: Errors in BRepOffsetAPI_MakeOffset: failure because of wrong direction of...
jgv [Thu, 2 Jul 2015 10:39:51 +0000 (13:39 +0300)]
0026296: Errors in BRepOffsetAPI_MakeOffset: failure because of wrong direction of bisector.

Test cases for issue CR26296

Fix of regressions.

Small correction of test cases for issue CR26296

8 years agoEliminating instability in test cases
mkv [Fri, 26 Jun 2015 10:40:08 +0000 (13:40 +0300)]
Eliminating instability in test cases

8 years ago0023028: Visualization, TKOpenGl - eliminate global static variables
isk [Mon, 22 Jun 2015 12:01:37 +0000 (15:01 +0300)]
0023028: Visualization, TKOpenGl - eliminate global static variables

OpenGl_CappingAlgo - move global variables to OpenGl_Workspace class fields.
OpenGl_View::ShaderSource::Source() - drop static for local variable.
OpenGl_Window - drop redundant global constant THE_DEFAULT_BG_COLOR.

8 years ago0026219: ShapeUpgrade_UnifySameDomain fails with StdFail_NotDone exception
isn [Thu, 25 Jun 2015 11:47:00 +0000 (14:47 +0300)]
0026219: ShapeUpgrade_UnifySameDomain fails with StdFail_NotDone exception

Avoid merging edges if the collapsed vertex has a third connected edge.
Fix the problem when merged edges have different location.
Test case for issue CR26219

Additional fix to improve robustness.

Test cases for issue CR26219

Small correction of test cases for issue CR26219

8 years ago0026363: Visualization, TKOpenGl - missing RayTracing shader files should be properly...
kgv [Tue, 23 Jun 2015 07:12:03 +0000 (10:12 +0300)]
0026363: Visualization, TKOpenGl - missing RayTracing shader files should be properly reported in Release mode

OpenGl_View::ShaderSource::Load() - print error about missing files.

8 years ago0026330: BRepOffsetAPI_ThruSections creates invalid shape
ifv [Thu, 25 Jun 2015 10:08:47 +0000 (13:08 +0300)]
0026330: BRepOffsetAPI_ThruSections creates invalid shape

Test case for issue CR26330

8 years ago0026357: Visualization - Panning zooms view if aspect ratio > 1
apl [Fri, 19 Jun 2015 12:15:11 +0000 (15:15 +0300)]
0026357: Visualization - Panning zooms view if aspect ratio > 1

8 years ago0026345: Shape Healer application crashes trying to run Shape Processing
anv [Tue, 16 Jun 2015 09:27:09 +0000 (12:27 +0300)]
0026345: Shape Healer application crashes trying to run Shape Processing

Empty element, that was added to the Array, causes an exception while accessing myUserMap

LoadResourceManager is receives environment variable name, but stat is waiting for full path

8 years ago0026316: Infinite modification of the shapes in General Fuse operation
emv [Thu, 25 Jun 2015 09:50:37 +0000 (12:50 +0300)]
0026316: Infinite modification of the shapes in General Fuse operation

Check the validity of the intersection point between Faces.

Test case for issue CR26316

Correction of the test case for the issue.

Small correction of test case for issue CR26316

8 years ago0026359: Revolution shape of Parabola Curve has no triangles
kgv [Thu, 25 Jun 2015 09:47:26 +0000 (12:47 +0300)]
0026359: Revolution shape of Parabola Curve has no triangles

Adaptor3d_IsoCurve::Circle() - prevent parallel check with NULL-vector

Test case for issue CR26359

8 years ago0025556: Visualization - support stereo pair formats recognized by consumer display...
kgv [Sat, 20 Jun 2015 13:08:12 +0000 (16:08 +0300)]
0025556: Visualization - support stereo pair formats recognized by consumer display devices

Graphic3d_StereoMode - add new enumeration for stereoscopic outputs:
- Graphic3d_StereoMode_QuadBuffer
- Graphic3d_StereoMode_Anaglyph
- Graphic3d_StereoMode_RowInterlaced
- Graphic3d_StereoMode_ColumnInterlaced
- Graphic3d_StereoMode_ChessBoard
- Graphic3d_StereoMode_SideBySide
- Graphic3d_StereoMode_OverUnder

Graphic3d_RenderingParams - add new options controlling stereo output:
- StereoMode
- ToReverseStereo
- AnaglyphFilter

OpenGl_ShaderManager - add predefined GLSL programs for new stereo outputs.
OpenGl_Workspace::Redraw() - do not implicitly disable stereo to allow stereo dump as is.
OpenGl_Caps - add flag swapInterval to control VSync.
OpenGl_Workspace::BufferDump() - handle cases with non-applicable GL_PACK_ROW_LENGTH.

CALL_DEF_WINDOW - drop unused fields; add fields "left" and "top"
to reverse stereo pair for interlaced output depending on window position.

Draw Harness, ViewerTest:
- Extend syntax of command vstereo to setup stereo.
- Extend vdump command to allow dump of stereoscopic pair in different formats.
- Extend command vcaps with option vsync.
- Use mouse scroll to zoom and adjust ZFocus in WinAPI.
- Use "/" and "*" to adjust IOD.

v3d/glsl/stereo - add test case for stereo modes.

Cocoa_LocalPool, OSD_EnvironmentIterator - fix compilation issues on OS X Snow Leopard.

8 years ago0026273: Comments to methods are misplaced in gp_Vec.cdl
abv [Fri, 19 Jun 2015 08:45:29 +0000 (11:45 +0300)]
0026273: Comments to methods are misplaced in gp_Vec.cdl

Location of comments corrected

Grammar fix

8 years ago0026241: Sewing algorithm computes tolerance of joint vertex too rough
ika [Thu, 18 Jun 2015 11:03:53 +0000 (14:03 +0300)]
0026241: Sewing algorithm computes tolerance of joint vertex too rough

Upgrade method of computing vertex tolerance.
Update function, which used the old method.
Test case for issue CR26241
Delete obsolete variables.
Small correction of test cases for issue CR26241

8 years ago0026314: Method SetShape working not correctly.
ink [Thu, 18 Jun 2015 10:54:09 +0000 (13:54 +0300)]
0026314: Method SetShape working not correctly.

Test-cases for issues #25441 and #26314
small correction

Small corrections of test-cases for issues #25441 and #26314

8 years ago0025760: Visualization - precision factor added to ZNear, ZFar in method ZFitAll...
apl [Thu, 18 Jun 2015 10:44:54 +0000 (13:44 +0300)]
0025760: Visualization - precision factor added to ZNear, ZFar in method ZFitAll() of Graphic3d_Camera is not enough

Small correction of test cases for issue CR25760

8 years ago0025981: Wrong result obtained by projection algorithm.
aml [Thu, 18 Jun 2015 10:39:46 +0000 (13:39 +0300)]
0025981: Wrong result obtained by projection algorithm.

Adjust periodic added.

processing of V parameter periodicity added.

Test case for issue CR25981

8 years ago0026305: BRepFeat_MakePrism returns inconsistent results && 026315: BRepFeat_MakeRevo...
ifv [Thu, 18 Jun 2015 10:36:16 +0000 (13:36 +0300)]
0026305: BRepFeat_MakePrism returns inconsistent results && 026315: BRepFeat_MakeRevol fails to create revol from shape

Test-cases for issues #26305 and #26315

8 years ago0025820: No Intersection Curves between surface of revolution and planes
nbv [Thu, 18 Jun 2015 10:30:34 +0000 (13:30 +0300)]
0025820: No Intersection Curves between surface of revolution and planes

Thin shapes processing has been improved.

Test-cases for issue #25820

Comment has been changed

8 years ago0026320: Import Points does not work in QT SSP sample
anv [Tue, 9 Jun 2015 06:31:28 +0000 (09:31 +0300)]
0026320: Import Points does not work in QT SSP sample

Updating source enumeration after CSFDB format removal

8 years ago0025305: Visualization, TKOpenGl - support stipple line aspects within built-in GLSL...
isk [Mon, 8 Jun 2015 13:13:31 +0000 (16:13 +0300)]
0025305: Visualization, TKOpenGl - support stipple line aspects within built-in GLSL programs

OpenGl_LineAttributes - drop display lists for stipple lines.
OpenGl_Context - add methods OpenGl_Context::SetTypeOfLine() and OpenGl_Context::SetLineWidth() to setup line aspects.
OpenGl_ShaderManager::prepareStdProgramFlat() - support new bit OpenGl_PO_StippleLine.

vaspects command - add -setlinetype option.

8 years ago0026324: Visualization - fix iteration through corrupted memory in AIS_LocalContext...
vpa [Mon, 8 Jun 2015 14:52:17 +0000 (17:52 +0300)]
0026324: Visualization - fix iteration through corrupted memory in AIS_LocalContext::FindSelectedOwnerFromShape

The signature of SelectMgr_ViewerSelector::ActiveOwners is changed to return output parameter to avoid crash

8 years ago0026153: Draw Harness, ViewerTest - "verase" does not remove selection highlight...
isk [Thu, 14 May 2015 14:04:15 +0000 (17:04 +0300)]
0026153: Draw Harness, ViewerTest - "verase" does not remove selection highlight for shaded object

8 years ago0025201: Visualization - Implementing soft shadows and ambient occlusion in OCCT...
dbp [Mon, 20 Apr 2015 07:15:34 +0000 (10:15 +0300)]
0025201: Visualization - Implementing soft shadows and ambient occlusion in OCCT ray-tracing core

8 years ago0026278: Canonical recognition from time to time raises exception on the attached...
omy [Mon, 1 Jun 2015 14:39:42 +0000 (17:39 +0300)]
0026278: Canonical recognition from time to time raises exception on the attached shape

Corrected array boundaries to avoid Standard_OutOfRange exception in BSplSLib and BSplSLib_Cache on the given shapes.
Code formatting has been corrected for ShapeFix_Edge.

8 years ago0026151: Wrong result obtained by intersection algorithm.
nbv [Wed, 3 Jun 2015 13:52:54 +0000 (16:52 +0300)]
0026151: Wrong result obtained by intersection algorithm.

1. Methods IntPolyh_MaillageAffinage::GetMinDeflection() and IntPolyh_MaillageAffinage::GetMaxDeflection() have been created (see cdl-file for more detail information).
2. Extended check, if starting point of WLine is a tangent point, has been implemented in IntWalk_PWalking::Perform(...) method.

Test cases for issue CR26151

8 years agoAdjusting testing cases after integration fix for issue 24357
apv [Fri, 5 Jun 2015 11:57:53 +0000 (14:57 +0300)]
Adjusting testing cases after integration fix for issue 24357

8 years ago0026306: Access to deleted object in ShapeFix_FixSmallSolid
abv [Wed, 3 Jun 2015 07:01:40 +0000 (10:01 +0300)]
0026306: Access to deleted object in ShapeFix_FixSmallSolid

Code corrected to avoid accessing element of sequence by reference after it is removed.

8 years ago0026149: Visualization - depth buffer should not be written within Z-layers without...
isz [Wed, 3 Jun 2015 06:58:10 +0000 (09:58 +0300)]
0026149: Visualization - depth buffer should not be written within Z-layers without Graphic3d_ZLayerDepthWrite flag

OpenGl_Workspace::updateMaterial() - do not activate writing into Depth buffer without Graphic3d_ZLayerDepthWrite flag.
Add method OpenGl_Workspace::UseDepthWrite() to track glDepthMask() state.

Drop the following outdated API methods conflicting with Z-layers API:
- V3d_View::EnableDepthTest(), V3d_View::IsDepthTestEnabled()
- Visual3d_View::ZBufferIsActivated(), Visual3d_View::SetZBufferActivity(), Visual3d_View::EnableDepthTest(), Visual3d_View::IsDepthTestEnabled()
- Graphic3d_GraphicDriver::SetDepthTestEnabled(), Graphic3d_GraphicDriver::IsDepthTestEnabled()

Activate Z-buffer by default, and manage it state only by Z-layer flags.

8 years ago0026307: Minor improvements in snowflake sample
abv [Wed, 3 Jun 2015 07:21:23 +0000 (10:21 +0300)]
0026307: Minor improvements in snowflake sample

- background is set to while, and lines are black
- dimension line added
- category is corrected

8 years ago0026284: Visualization - eliminate recursion in SelectMgr_SelectionManager
vpa [Thu, 4 Jun 2015 11:37:52 +0000 (14:37 +0300)]
0026284: Visualization - eliminate recursion in SelectMgr_SelectionManager

Small correction of test case for issue CR26284

8 years ago0026206: BRepClass_FaceClassifier returns TopAbs_OUT for internal point
msv [Thu, 4 Jun 2015 11:34:51 +0000 (14:34 +0300)]
0026206: BRepClass_FaceClassifier returns TopAbs_OUT for internal point

Classifier has been corrected to not take into account a probing point if the probing line appears to be tangent to the boundary at this point.

But allow to use tangent point if all points on the edge are tangent.
Modify bad test cases.

Test case for issue CR26206

8 years ago0026304: Visualization - wrong calculation of point in SelectMgr_RectangularFrustum...
vpa [Tue, 2 Jun 2015 15:45:45 +0000 (18:45 +0300)]
0026304: Visualization - wrong calculation of point in SelectMgr_RectangularFrustum::DetectedPoint

8 years ago0024357: BRepBuilderAPI_Sewing returns result with too high tolerance.
gka [Thu, 4 Jun 2015 11:22:33 +0000 (14:22 +0300)]
0024357: BRepBuilderAPI_Sewing returns result with too high tolerance.

In method Approx_SameParameter::Build() for case when 2D and 3D curves is not same parameter calculation of maximal deviation is modified by following way :

Projection is considered as done only if parameter projected point falls within the current interval of parameters.

In the Approx_SameParameter considering tolerance after static method ProjectPointOnCurve was added.

In BRepAlgoAPI_Sewing catch of exception was added and computation of tolerance of edge if same parameter was changed in according to check in BRepCheck_Analyzer

In method Approx_SameParameter::Build() for case when 2D and 3D curves is not same parameter calculation of maximal deviation is modified by following way :

Modification in order to avoid warning

Test case for issue CR24357

8 years ago0026230: Segmentation fault because a NULL curve is used without precaution in case...
ifv [Fri, 29 May 2015 08:25:56 +0000 (11:25 +0300)]
0026230: Segmentation fault because a NULL curve is used without precaution in case of a projection failure

8 years ago0026075: Make Extrema_GenExtCC return IsParallel flag in case of parallel curves
aml [Thu, 4 Jun 2015 11:13:58 +0000 (14:13 +0300)]
0026075: Make Extrema_GenExtCC return IsParallel flag in case of parallel curves

1) Added check for parallel curves.
2) Changed unefficient o(n^2) duplicates deleting algorithm to o(n) algorithm.
3) Deleted useless upper level duplicates deleting algorithm.

Test-case for issue #26075

8 years ago0026210: Sample Modeling: operation "Make revol" has text in window caption "Make...
ski [Thu, 28 May 2015 09:20:52 +0000 (12:20 +0300)]
0026210: Sample Modeling: operation "Make revol" has text in window caption "Make a prism"

Titles for revol operation were updated.
Wrongly merged mfcsample projects were corrected.