occt.git
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.

8 years ago0026193: Incomplete intersection curve
nbv [Thu, 4 Jun 2015 11:05:33 +0000 (14:05 +0300)]
0026193: Incomplete intersection curve

1. Conditions for adjusting and for breaking Walking-lines have been amended.
2. Processing of case when WLine should be broken has been changed.

Test cases for issues 26193 and 26208 have been added

Cosmetic correction of test-cases

Modification of test-case according to the new behavior.

8 years ago0026281: BRepCheck_Edge::Tolerance() raises exception on the given shapes
nbv [Thu, 4 Jun 2015 11:01:53 +0000 (14:01 +0300)]
0026281: BRepCheck_Edge::Tolerance() raises exception on the given shapes

The reason of the exception has been eliminated

Test-cases for issue #26281

8 years ago0026287: Bug in NCollection_AccAllocator::Free() sometimes causes crash in debug...
myn [Thu, 28 May 2015 13:20:14 +0000 (16:20 +0300)]
0026287: Bug in NCollection_AccAllocator::Free() sometimes causes crash in debug mode

8 years ago0026233: BRepOffset_MakeOffset makes incorrect result
ifv [Thu, 4 Jun 2015 09:40:47 +0000 (12:40 +0300)]
0026233: BRepOffset_MakeOffset makes incorrect result

Test-case for issue #26233

8 years ago0026276: Visualization, TKOpenGl - add missing Standard_EXPORT to matrix management...
omy [Thu, 28 May 2015 07:27:24 +0000 (10:27 +0300)]
0026276: Visualization, TKOpenGl - add missing Standard_EXPORT to matrix management methods in OpenGl_Context

These methods are useful for applying matrices transformations.

8 years ago0026275: Visualization, TKOpenGl - add public constructor for OpenGl_ShaderProgram
omy [Thu, 28 May 2015 08:18:40 +0000 (11:18 +0300)]
0026275: Visualization, TKOpenGl - add public constructor for OpenGl_ShaderProgram

8 years agoTemporally removing several cases from boolean/gdml_private group.
bugmaster [Tue, 2 Jun 2015 11:29:40 +0000 (14:29 +0300)]
Temporally removing several cases from boolean/gdml_private group.

8 years agoUpdate testing cases after integration issue 26253
mkv [Fri, 29 May 2015 11:12:48 +0000 (14:12 +0300)]
Update testing cases after integration issue 26253

8 years ago0026185: BRepOffsetAPI_MakeOffset: regressions on some customer's cases
jgv [Thu, 28 May 2015 12:25:42 +0000 (15:25 +0300)]
0026185: BRepOffsetAPI_MakeOffset: regressions on some customer's cases

Minor correction.

Test-cases for issue #26185

Modifications in test-cases according to developer's notes

8 years ago0026253: Wrong result obtained by General Fuse operator.
pkv [Thu, 28 May 2015 12:21:57 +0000 (15:21 +0300)]
0026253: Wrong result obtained by General Fuse operator.

Replace BOPCol_MapOfShape by BOPCol_IndexedMapOfShape to provide
the same order of shells in the result

Test case for issue CR26253

Correction of test case for issue CR26253

8 years ago0026261: Create a tool to remove tails from any wire
abk [Tue, 19 May 2015 17:03:11 +0000 (20:03 +0300)]
0026261: Create a tool to remove tails from any wire

A tool to remove tails from the wires of a shape was created.
The tool is based on mechanism 'ShapeFix',
is located in types 'ShapeFix_Wire' and 'ShapeAnalysis_Wire',
is enabled through method 'ShapeFix_Wire::FixTailMode' and
is initialized by methods 'ShapeFix_Wire::SetMaxTailAngle' and 'ShapeFix_Wire::SetMaxTailWidth' and
is called through method 'ShapeFix_Wire::FixTails'.
The status of any performing of the last method is accessible through method 'ShapeFix_Wire::StatusFixTails'.
The tail angle is checked only at the tail start.

Mechanism 'ShapeFix' was modified:
- the tool is disabled by default;
- algorithm 'Fix notched edges' is disabled then the tool is enabled;
- the tool and the last algorithm work in turns then the tool works on the request.

'Draw' command 'fixshape' was extended by options '-maxtaila' and '-maxtailw' to test the tool.

'Draw' tests to test the tool were created.

Algorithm 'fixshape' was changed in type 'ShapeProcess_OperLibrary' to
- use new parameters named 'FixTailMode', 'MaxTailAngle' (in degrees) and 'MaxTailWidth' from the algorithm context;
- apply the tool after the shape will be fully fixed if the tool was enabled.

Place holders for the new parameters were created in the resource file of mechsnism 'STEPControl_Reader'.

Test cases for issue CR26261

8 years ago0026259: Extend commands '{l|s|v}props' to output the values with the full precision
abk [Fri, 22 May 2015 12:51:47 +0000 (15:51 +0300)]
0026259: Extend commands '{l|s|v}props' to output the values with the full precision

Additional option '-full' was added to 'Draw' commands 'lprops', 'sprops' and 'vprops'
to output the values not only with the short but and with the full precision.

8 years ago0026022: Extrema_ExtCC gives not precise solution
aml [Thu, 21 May 2015 04:34:49 +0000 (07:34 +0300)]
0026022: Extrema_ExtCC gives not precise solution

Conditional optimization added to Newton optimization algorithm.
Test case for issue CR26022

8 years ago0026221: Visualization - use NCollection_IndexedMap instead of NCollection_Sequence...
dbp [Mon, 25 May 2015 06:43:06 +0000 (09:43 +0300)]
0026221: Visualization - use NCollection_IndexedMap instead of NCollection_Sequence in OpenGl_Layer to improve performance

8 years ago0024682: Move out B-spline cache from curves and surfaces to dedicated classes BSplCL...
azv [Thu, 28 May 2015 10:36:57 +0000 (13:36 +0300)]
0024682: Move out B-spline cache from curves and surfaces to dedicated classes BSplCLib_Cache and BSplSLib_Cache

1. B-spline cache was moved into separated classes: BSplCLib_Cache for 2D and 3D curves and BSplSLib_Cache for surfaces.

2. The cache is used now in corresponding adaptor classes (Geom2dAdaptor_Curve, GeomAdaptor_Curve and GeomAdaptor_Surface) when the curve or surface is a B-spline.

3. Algorithms were changed to use adaptors for B-spline calculations instead of curves or surfaces.

4. Precised calculation of derivatives of surface of revolution is implemented for the points of surface placed on the axis of revolution (Geom_SurfaceOfRevolution.cxx)

5. Small modifications are made to adjust algorithms to new behavior of B-spline calculation.

6. Test cases were modified according to the modern behavior.

7. Changes in BOPAlgo_WireSplitter, BOPTools_AlgoTools, BRepLib_CheckCurveOnSurface and ShapeAnalysis_Wire to use adaptors instead of geometric entities

8. Allow Geom2dAdaptor and GeomAdaptor in case of offset curve to use corresponding adaptor for basis curve

Modification of test-cases according to the new behavior.

8 years ago0026063: GeomAPI_ExtremaCurveSurface have inexact API
aml [Thu, 28 May 2015 09:44:41 +0000 (12:44 +0300)]
0026063: GeomAPI_ExtremaCurveSurface have inexact API

Reason of exception was eliminated.

Test-case for issue #26063

8 years ago0026263: Inconsistent results of bopargcheck snd checkcurveonsurf commands.
pkv [Mon, 25 May 2015 10:08:25 +0000 (13:08 +0300)]
0026263: Inconsistent results of bopargcheck snd checkcurveonsurf commands.

Changes:
class BOPTest
- static function:
Standard_Integer checkcurveonsurf(Draw_Interpretor& di,
                                  Standard_Integer n,
                                  const char** a)
has been changed.
The condition that provides selection of faulty curves has been modified
to be coherent with the same condition in  class BOPAlgo_Analyzer.

8 years ago0024994: missing implematation of constructor: BRepClass_FaceClassifier
isn [Mon, 25 May 2015 09:24:32 +0000 (12:24 +0300)]
0024994: missing implematation of constructor: BRepClass_FaceClassifier

8 years ago0026262: mixing qvector.h and math_Memory.hxx won't compile
abv [Mon, 25 May 2015 08:21:59 +0000 (11:21 +0300)]
0026262: mixing qvector.h and math_Memory.hxx won't compile

Files math_Memory.cxx and .hxx removed: function memmove() should be available on all modern platforms in standard C library

8 years ago0026044: Optimize math_GlobOptMin class to enter options for solutions of some specif...
aml [Tue, 19 May 2015 11:27:06 +0000 (14:27 +0300)]
0026044: Optimize math_GlobOptMin class to enter options for solutions of some specified problems

Possibility to search single optimum added.

8 years ago0026180: Modeling Algorithms - Provide shape self-intersection detector
dbp [Thu, 28 May 2015 09:16:22 +0000 (12:16 +0300)]
0026180: Modeling Algorithms - Provide shape self-intersection detector

Small correction of test case for issue CR26180

Fix GCC compilation warnings.

8 years agoAdded parameter highlight_percent in command testdiff.
apn [Thu, 21 May 2015 12:11:12 +0000 (15:11 +0300)]
Added parameter highlight_percent in command testdiff.

It highlights considerable (>value in %) deviations of CPU and memory (default value is 5%).

8 years agoCorrecting erroneous results of merge
vpa [Thu, 21 May 2015 15:19:38 +0000 (18:19 +0300)]
Correcting erroneous results of merge

8 years ago0026237: Change platform in TODOs from Debian\Mandriva to Linux
apn [Thu, 21 May 2015 12:50:31 +0000 (15:50 +0300)]
0026237: Change platform in TODOs from Debian\Mandriva to Linux

Change platform in occt test cases in TODOs from Debian\Mandriva to Linux

Small corrections in test cases. Return procedure _tests_platform_def.

8 years ago0024927: Getting rid of "Persistent" functionality -- Documentation
dln [Tue, 2 Sep 2014 07:21:21 +0000 (11:21 +0400)]
0024927: Getting rid of "Persistent" functionality -- Documentation

First version of upgrade manual (new developer guide) added, describing methods that can be used to convert data files written with old persistence, to formats supported by OCCT 7.0

8 years ago0024927: Getting rid of "Persistent" functionality -- Storable
dln [Fri, 15 Aug 2014 06:03:58 +0000 (10:03 +0400)]
0024927: Getting rid of "Persistent" functionality -- Storable

Delete "Storable" class from "Standard" package and all use of it

8 years ago0024927: Getting rid of "Persistent" functionality -- Samples and data
dln [Tue, 26 Aug 2014 12:15:24 +0000 (16:15 +0400)]
0024927: Getting rid of "Persistent" functionality -- Samples and data

Support of old persistence (CSFDB format) is removed from OCCT samples (C#, MFC and Qt)

Motor model from data/csfdb is converted from CSFDB to BRep format and put to data/occ (Motor-c.brep)

8 years ago0024927: Getting rid of "Persistent" functionality -- Tests
dln [Fri, 29 Aug 2014 07:24:24 +0000 (10:24 +0300)]
0024927: Getting rid of "Persistent" functionality -- Tests

All uses of "MDTV-Standard" and "MDTV-Design" in tests changed to "BinOcaf", and "MDTV-XCAF" changed to "BinXCAF".
Formats changed: .std to .cbf, .dxc to .dbf.

Test groups renamed accordingly:
xcaf: brep_to_dxc -> brep_to_xbf, igs_to_dxc -> igs_to_xbf, stp_to_dxc -> stp_to_xbf, dxc -> xbf/A1, dxc_add_CL -> xbf_add_CL
xml: ocaf_std -> ocaf_cbf, xcaf_dxc -> xcaf_xbf