6 years ago0025692: Boolean operations minor improvement
István Csanády [Thu, 8 Jan 2015 17:18:00 +0000 (20:18 +0300)]
0025692: Boolean operations minor improvement

Method IntPolyh_MaillageAffinage::TriContact() improved so that local objects for detailed analysis are not created if algorithm exits by simple conditions checked at the beginning.

6 years ago0020040: Difference in treatment of closed curves in BRep_Builder::UpdateEdge
azv [Thu, 22 Jan 2015 14:42:06 +0000 (17:42 +0300)]
0020040: Difference in treatment of closed curves in BRep_Builder::UpdateEdge

Test case was added

Modified test cases to extract the shell from the solid and check it for closeness.

6 years ago0025656: Specification of semantic of Closed flag of an edge
azv [Tue, 30 Dec 2014 04:37:51 +0000 (07:37 +0300)]
0025656: Specification of semantic of Closed flag of an edge

1. Using of the "Closed" flag was unified:
  a) this flag is applicable for TopoDS_Wire and TopoDS_Shell only, because these entities may hedge an area in 2D space or a volume in 3D space correspondingly;
  b) other types of TopoDS shapes are passing over this flag;
  c) changing of this flag should be controlled by high-level algorithms (not BRep_Builder).
2. Implemented verification of the closedness of edges. An edge is closed if and only if its first and last vertices are the same.
3. Test cases were changed according to new behavior.

6 years ago0024394: Visualization - implement more general way for rendering of immediate objects
kgv [Thu, 22 Jan 2015 14:29:37 +0000 (17:29 +0300)]
0024394: Visualization - implement more general way for rendering of immediate objects

Move OpenGl_Structure::myZLayer to base class Graphic3d_CStructure.
Graphic3d_ZLayerId - introduce new pre-defined ZLayers.
Do not clear Depth buffer twice for default ZLayer.

AIS_InteractiveContext::Display() - add new argument AIS_DisplayStatus to specify displaying status.

Drop unused Graphic3d_CPick and related methods.
Drop OpenGl_Structure::myNamedStatus - use flags from parent class Graphic3d_CStructure directly.
OpenGl_LayerList ::ChangeLayer(), ::ChangePriority - fix structure remove from unexpected layer.
Merge class OpenGl_PriorityList into OpenGl_Layer.

PrsMgr_PresentationManager::mySelectionColor - store selection color as field of Presentation Manager.
PrsMgr_Presentation class - do not declare private methods as virtual.
PrsMgr_Presentation::Highlight() - extend method syntax and drop methods ::Color() and ::BoundBox().

PrsMgr_PresentableObject - store ZLayer in presentable object
to display object presentations in required layer directly
(without displaying it in wrong layer first).

test/mesh/end - force re-displaying the shape to compute mesh anew

Test-case for issue

6 years ago0025722: Wrong implementation of SetFuzzyValue method
emv [Thu, 22 Jan 2015 14:24:00 +0000 (17:24 +0300)]
0025722: Wrong implementation of SetFuzzyValue method

The following methods
  void BOPAlgo_ArgumentAnalyzer::SetFuzzyValue(const Standard_Real theFuzz)
  void BOPAlgo_Builder::SetFuzzyValue(const Standard_Real theFuzz)
  void BOPAlgo_PaveFiller::SetFuzzyValue(const Standard_Real theFuzz)
  void BOPDS_DS::SetFuzzyValue(const Standard_Real theFuzz)
  void BRepAlgoAPI_BuilderAlgo::SetFuzzyValue(const Standard_Real theFuzz)
  void BRepAlgoAPI_Check::SetFuzzyValue(const Standard_Real theFuzz)
have been corrected.

Added test case bugs/modalg_5/bug25722

6 years ago0025721: Wrong result obtained by Common operator.
pkv [Thu, 22 Jan 2015 14:19:07 +0000 (17:19 +0300)]
0025721: Wrong result obtained by Common operator.

class BOPTools_Set
    void BOPTools_Set::Add(const TopoDS_Shape& theS,
                       const TopAbs_ShapeEnum theType)
  has been changed. The treatment of INTERNAL edges has been added.

Added test case bugs/modalg_5/bug25721

6 years ago0025569: Tests 24959_1 and 24959_2 are not correct
ski [Wed, 21 Jan 2015 11:56:10 +0000 (14:56 +0300)]
0025569: Tests 24959_1 and 24959_2 are not correct

Test cases were corrected to check triangulation deflection

6 years ago0025697: Regression : Section obtained after command "bsection" in Test Harness is...
nbv [Thu, 22 Jan 2015 14:06:33 +0000 (17:06 +0300)]
0025697: Regression : Section obtained after command "bsection" in Test Harness is incorrect.

Interface of bopcurves DDRAW-command were extended. Now it is possible to obtain
a) only 3D-curves;
b) 3D-curves and 2D-curves on one of surfaces intersected (surface can be selected);
c) 3D-curves and 2D-curves on every surface intersected.

Use "help bopcurves" to see detail information.

Added test cases bugs/modalg_5/bug25697_1 bug25697_2

Small changes in test case bugs/modalg_5/bug25697_2

6 years ago0025597: Invalid curve on surface in the result of General Fuse operation
emv [Thu, 22 Jan 2015 13:54:54 +0000 (16:54 +0300)]
0025597: Invalid curve on surface in the result of General Fuse operation

1. The tool of computing the max distance between 3D curve and its 2d representation on the face
has been moved from static methods in BOPTools_AlgoTools class to BRepLib_CheckCurveOnSurface class.
2. The tools has been applied to 2d curves built during Boolean Operation
and to some intersection curves.
3. The functions
  Standard_Boolean BOPTools_AlgoTools::ComputeTolerance
    (const TopoDS_Face& theFace,
     const TopoDS_Edge& theEdge,
     Standard_Real& theMaxDist,
     Standard_Real& theMaxPar)
  Standard_Boolean IntTools_Tools::ComputeTolerance
    (const Handle(Geom_Curve)& theCurve3D,
     const Handle(Geom2d_Curve)& theCurve2D,
     const Handle(Geom_Surface)& theSurf,
     const Standard_Real theFirst,
     const Standard_Real theLast,
     Standard_Real& theMaxDist,
     Standard_Real& theMaxPar)
have been developed for easy access to BRepLib_CheckCurveOnSurface functionality.

class IntTools_FaceFace
method void IntTools_FaceFace::ComputeTolReached3d()
Case for Plane/BSpline intersection added for treatment.

Test case for issue CR25597

Fix for regression boolean bsection N7.

class BOPAlgo_PaveFiller
  void BOPAlgo_PaveFiller::UpdateFaceInfo
    (BOPDS_DataMapOfPaveBlockListOfPaveBlock& theDME,
     const BOPCol_DataMapOfIntegerInteger& theDMV)
Updating Face Info information with new vertices created in PostTreatFF.

Correction boolean/bsection/N2

Updated test cases.

6 years ago0025703: Visualization - Decrease number of samplers used in ray-tracing mode
dbp [Wed, 14 Jan 2015 08:04:27 +0000 (11:04 +0300)]
0025703: Visualization - Decrease number of samplers used in ray-tracing mode

This patch eliminates 3 samplers used in ray-tracing mode:

//! Texture buffer of data records of bottom-level BVH nodes.
Handle(OpenGl_TextureBufferArb) myObjectNodeInfoTexture;
//! Texture buffer of minimum points of bottom-level BVH nodes.
Handle(OpenGl_TextureBufferArb) myObjectMinPointTexture;
//! Texture buffer of maximum points of bottom-level BVH nodes.
Handle(OpenGl_TextureBufferArb) myObjectMaxPointTexture;

Serialized data contained in corresponding texture buffers were added to global scene buffers:

//! Texture buffer of data records of high-level BVH nodes.
Handle(OpenGl_TextureBufferArb) mySceneNodeInfoTexture;
 //! Texture buffer of minimum points of high-level BVH nodes.
Handle(OpenGl_TextureBufferArb) mySceneMinPointTexture;
//! Texture buffer of maximum points of high-level BVH nodes.
Handle(OpenGl_TextureBufferArb) mySceneMaxPointTexture;

This modifications leads also to small performance improvement (~2%) due to higher texture cache efficiency. Some modifications in traversal function (GLSL code) also improve performance (~3%).

6 years ago0025694: Change STEP exporter to use AP214 IS by default
Roman Lygin [Thu, 22 Jan 2015 13:42:58 +0000 (16:42 +0300)]
0025694: Change STEP exporter to use AP214 IS by default

Test-case for issue #25694

6 years ago0025663: Expand math_PSO class description
aml [Fri, 26 Dec 2014 09:56:35 +0000 (12:56 +0300)]
0025663: Expand math_PSO class description

math_PSO class description extended.

6 years agoAdjusting new testing cases
mkv [Fri, 16 Jan 2015 10:32:55 +0000 (13:32 +0300)]
Adjusting new testing cases

6 years ago0025661: Visualization - AIS_InteractiveContext::Load() is not symmetric to the local...
san [Thu, 25 Dec 2014 16:09:57 +0000 (19:09 +0300)]
0025661: Visualization - AIS_InteractiveContext::Load() is not symmetric to the local context method

Register theIObj in the selection manager to prepare further activation of selection

6 years ago0025621: CAST analysis - Avoid constructors not supplying an initial value for all...
azn [Thu, 25 Dec 2014 07:00:13 +0000 (10:00 +0300)]
0025621: CAST analysis - Avoid constructors not supplying an initial value for all non-static data members

The constructors of classes from following files have been fixed to ensure that all non-static fields are initialized:


6 years ago0025662: Project command produce wrong 2dcurve
aml [Thu, 15 Jan 2015 12:40:25 +0000 (15:40 +0300)]
0025662: Project command produce wrong 2dcurve

Concatenation algorithm fixed to work over periodic bspline surfaces.

Test case for issue CR25662

6 years ago0025649: crvtpoints command return wrong deflection in output.
aml [Thu, 15 Jan 2015 12:37:10 +0000 (15:37 +0300)]
0025649: crvtpoints command return wrong deflection in output.

Deflection computation algorithm changed to PSO+NewtonMinimum.

Correction of test case

6 years ago0025660: Project command produce wrong 2dcurve
aml [Thu, 15 Jan 2015 12:33:15 +0000 (15:33 +0300)]
0025660: Project command produce wrong 2dcurve

Changed starting point of Newton optimization.

Test case for issue CR25660

6 years ago0025596: GCPnts_TangentialDeflection creates wrong point distribution for visualization
aml [Fri, 12 Dec 2014 10:40:06 +0000 (13:40 +0300)]
0025596: GCPnts_TangentialDeflection creates wrong point distribution for visualization

Added check to small step after adding new point to prevent possible jump over local splash. If check failed then old step restored.

6 years ago0025466: Visualization - Impossible to change the display mode when a local context...
kgv [Thu, 15 Jan 2015 12:25:52 +0000 (15:25 +0300)]
0025466: Visualization - Impossible to change the display mode when a local context is opened

Remove irrelevant check from method AIS_InteractiveContext::SetDisplayMode().

Test case for issue CR25466

6 years ago0025664: Visualization - dynamic highlighting should not be discarded on re-displayin...
kgv [Tue, 13 Jan 2015 07:48:04 +0000 (10:48 +0300)]
0025664: Visualization - dynamic highlighting should not be discarded on re-displaying independent object

Clear list of immediate presentations in proper place - in AIS_LocalContext::manageDetected()
instead of AIS_LocalContext::Unhilight().

6 years ago0025700: Ensuring uniform control of the functionalities of the Boolean operations...
pkv [Wed, 14 Jan 2015 06:43:30 +0000 (09:43 +0300)]
0025700: Ensuring uniform control of the functionalities of the Boolean operations algorithm at the level of DRAW application

Class BOPTest_Chronometer
The class definition that depends on TBB has been removed

For the following commands:
>bop s1 s2 [tol]
>bopcommon r s1 s2 [tol]
>bfuse r s1 s2 [tol]
>bcut s1 s2 [tol]
>btuc r s1 s2 [tol]
>bsection r s1 s2 [-n2d/-n2d1/-n2d2] [-na] [tol]
>mkvolume r b1 b2 ... [-c] [-ni] [-s] [tol]
>bopcheck Shape [level of check: 0 - 9] [-t -s] [-tol tol]
>bopargcheck Shape1 [[Shape2] [-F/O/C/T/S/U] [/R|F|T|V|E|I|P|C|S]] [#BF] [-tol tol]
>bfillds [-s -t] [tol]
the syntax has been changed. Parameter [tol] has been removed.

The value "tol"  (i.e. Fuzzy Value) is option for the algorithm.

If it is necessary, the value "tol" can be set by the command:
>bfuzzyvalue value

for more details

For the following commands:
>bopcheck Shape [level of check: 0 - 9] [-t -s] [-tol tol]
>bfillds [-s -t] [tol]
>bbuild r [-s -t]
>bbop r op [-s -t]
the syntax has been changed. Parameter [-s] has been removed.
Parameter [-s] was to provide the sequential mode of the computations.

The mode of the computations is option for the algorithm.

The mode of the computations can be set by the command:
 >brunparallel [0/1]
       1 -sets the parallel mode of the computations
       0 -sets the sequential mode of the computations

for more details

6 years ago0025691: Visualization, TKService - fix font corruption on FreeType 2.5.4
kgv [Wed, 7 Jan 2015 20:29:06 +0000 (23:29 +0300)]
0025691: Visualization, TKService - fix font corruption on FreeType 2.5.4

6 years ago0023922: Systematic review of TODO tests
ski [Thu, 15 Jan 2015 12:06:54 +0000 (15:06 +0300)]
0023922: Systematic review of TODO tests

Small corrections for test cases with "TEST INCOMPLETE" result.

TODO statements with "TEST INCOMPLETE" were checked and corrected.

6 years ago0025657: Bad result of Fillet operation
jgv [Thu, 15 Jan 2015 12:04:05 +0000 (15:04 +0300)]
0025657: Bad result of Fillet operation

Comments have been precised.

Test case for issue CR25657

Fix of regression

Additional test case.

6 years ago0023626: It's impossible to open files containing localisation characters in the...
ski [Tue, 9 Dec 2014 13:24:00 +0000 (16:24 +0300)]
0023626: It's impossible to open files containing localisation characters in the name

Files containing localisation characters can be opened and saved now properly.

6 years ago0025523: Fail to read back solid written to STEP
ink [Thu, 15 Jan 2015 11:51:21 +0000 (14:51 +0300)]
0025523: Fail to read back solid written to STEP

Fixed a exception occurred during reading step file

Test case for issue CR25523

6 years ago0025634: Checking of compliance of vertices and pcurve fails
vro [Thu, 15 Jan 2015 11:47:07 +0000 (14:47 +0300)]
0025634: Checking of compliance of vertices and pcurve fails

A fix + a checkedge draw-command to check the fix.

Test case for issue CR25634

6 years ago0025616: Avoid Classes using "new" to allocate Instances but not defining a copy...
azn [Thu, 15 Jan 2015 11:41:27 +0000 (14:41 +0300)]
0025616: Avoid Classes using "new" to allocate Instances but not defining a copy Constructor

The empty copy constructor, assignemnts operator, default constructors added to the following classes:
The following classes use “new” function without Handles:
- Select3D_PointData
- BSB_T3Bits
- IntPatch_InfoPD
- LDOM_StringElem
- BinomAllocator
- ProjLib_OnSurface
- Standard_MMgrFactory

Useless declaration of default constructor have been deleted.

6 years ago0025532: Visualization - fix cross-references between AIS_ConnectedInteractive and...
dbp [Thu, 15 Jan 2015 11:37:12 +0000 (14:37 +0300)]
0025532: Visualization - fix cross-references between AIS_ConnectedInteractive and connected presentation

New test case added.

6 years ago0025222: Visualization - provide distance field builder in the Math/BVH package
dbp [Thu, 15 Jan 2015 11:33:23 +0000 (14:33 +0300)]
0025222: Visualization - provide distance field builder in the Math/BVH package

A distance field is a representation where, at each point within the field, the distance from that point to the closest point on the object is specified.
In addition to distance, other properties may be derived from the distance field, such as the direction to the surface, and when the distance field is signed, we may also determine if the point is internal or external to objects within the domain.
The distance field has been found to be a useful construction within the areas of computer vision, physics, and computer graphics. In particular, distance fields can be used for generating realistic visual effects and collision detection.

Fix compilation warning when using GCC.

6 years ago0025629: Visualization, AIS_InteractiveContext - code clean up
kgv [Wed, 24 Dec 2014 09:15:53 +0000 (12:15 +0300)]
0025629: Visualization, AIS_InteractiveContext - code clean up

Drop confusing method AIS_InteractiveContext::Clear() which is the same as ::Remove().
AIS_InteractiveContext::Display() - fix double viewer update on first display of presentation.
AIS_InteractiveContext::DisplayedObjects() - fix objects retrieval from local contexts.
AIS_InteractiveContext::Load() - do not bind object twice.

Drop code blocks for debug output.
Code clean up.

6 years ago0025650: Visualization - AIS_Line::ComputeSelection() should not ignore the selection...
san [Wed, 24 Dec 2014 07:37:09 +0000 (10:37 +0300)]
0025650: Visualization - AIS_Line::ComputeSelection() should not ignore the selection mode argument

Only selection mode 0 is supported from now on.

6 years ago0025669: Unable to compile BOPTest package in WOK
emv [Sat, 27 Dec 2014 05:18:30 +0000 (08:18 +0300)]
0025669: Unable to compile BOPTest package in WOK

package BOPTest
BOPTest_Chronometer.hxx has been added to FILES.

6 years agoCosmetic update testing cases.
mkv [Fri, 26 Dec 2014 10:02:51 +0000 (13:02 +0300)]
Cosmetic update testing cases.

6 years ago0025570: New Tcl sample scripts created for CAD Assistant
abv [Tue, 23 Dec 2014 04:03:42 +0000 (07:03 +0300)]
0025570: New Tcl sample scripts created for CAD Assistant

Three new sample scripts created during development of CAD Assistant for Android added in samples/tcl:

- Penrose.tcl: creation of Penrose triangle made of boxes resembling ones from OCC logo
- pencil.tcl: creation of colored pencil model
- snowflake.tcl: creation of 2d drawing of snowflake

6 years ago0025545: TopLoc_Location::Transformation() provokes data races
msv [Thu, 25 Dec 2014 15:31:11 +0000 (18:31 +0300)]
0025545: TopLoc_Location::Transformation() provokes data races

Get rid of postponed calculation of transformation.
Remove unused methods.
Add command OCC25545 to reproduce the bug with data races.

- Get rid of C++11 lambda construction
- make code compilable with no HAVE_TBB defined
- add test case bugs/fclasses/bug25545

6 years ago0025351: Visualization - provide pseudo random number generator in OCCT ray-tracing...
dbp [Tue, 23 Dec 2014 11:39:18 +0000 (14:39 +0300)]
0025351: Visualization - provide pseudo random number generator in OCCT ray-tracing core

6 years ago0025627: SelectedShape() and HasSelectedShape() of AIS_InteractiveContext class do...
vpa [Fri, 19 Dec 2014 12:24:09 +0000 (15:24 +0300)]
0025627: SelectedShape() and HasSelectedShape() of AIS_InteractiveContext class do not work as expected.

Location calculation in SelectedShape() was corrected;
Method HasSelectedShape() that does not take into account shape decomposition was added.

Test case for issue 25627

6 years ago0025651: GL_LUMINANCE8 should be defined for android case
ibs [Fri, 19 Dec 2014 15:40:31 +0000 (18:40 +0300)]
0025651: GL_LUMINANCE8 should be defined for android case


6 years ago0025612: Introduce possibility to disable adaptive reconfigutation of triangles in...
oan [Thu, 25 Dec 2014 15:17:56 +0000 (18:17 +0300)]
0025612: Introduce possibility to disable adaptive reconfigutation of triangles in BRepMesh

Remarks from PDN: flag has been renamed to ControlSurfaceDeflection

Test-case for issue #25612

6 years ago0025489: GCPnts_TangentialDeflection gives incorrect distribution of points
aml [Thu, 25 Dec 2014 15:11:28 +0000 (18:11 +0300)]
0025489: GCPnts_TangentialDeflection gives incorrect distribution of points

Fixed last point handling: now we try to check interval with last point instead of adding it to output set of points.

Test case for issue CR25489

Correction of test case for issue CR25489

6 years ago0025600: Wrong result of Boolean FUSE operation
emv [Thu, 25 Dec 2014 15:08:44 +0000 (18:08 +0300)]
0025600: Wrong result of Boolean FUSE operation

class BOPTools_AlgoTools
1. method Standard_Boolean FindPointInFace(const TopoDS_Face& aF,
                                 const gp_Pnt& aP,
                                 gp_Dir& aDB,
                                 gp_Pnt& aPOut,
                                 Handle(IntTools_Context)& theContext,
                                 GeomAPI_ProjectPointOnSurf& aProjPL,
                                 const Standard_Real aDt,
                                 const Standard_Real aTolE)
Use different method of finding a point in the face if the start and projected points are close to each other.

2. method Standard_Real MinStep3D(const TopoDS_Edge& theE1,
                        const TopoDS_Face& theF1,
                        const BOPTools_ListOfCoupleOfShape& theLCS,
                        const gp_Pnt& aP)
The min 3D step has been increased for the spherical faces.

Test case for issue CR25600

Correction of test case for issue CR25600

6 years ago0025531: Difference in intersection result on Windows and Linux platform is very...
nbv [Thu, 25 Dec 2014 15:04:55 +0000 (18:04 +0300)]
0025531: Difference in intersection result on Windows and Linux platform is very significant

1. Dump of WLine is shown with more precise.
2. Equation solving with more precise.
3. Dump of Multy-line.
4. Code optimization.

Some test cases were updated in accordance with their new behaviour.

Correction of test cases for issue CR25531

6 years ago0025625: Boolean COMMON cannot be built
emv [Thu, 25 Dec 2014 15:00:32 +0000 (18:00 +0300)]
0025625: Boolean COMMON cannot be built

class BOPTools_AlgoTools2D
method void BOPTools_AlgoTools2D::Make2D (const TopoDS_Edge& aE,
                                   const TopoDS_Face& aF,
                                   Handle(Geom2d_Curve)& aC2D,
                                   Standard_Real& aFirst,
                                   Standard_Real& aLast,
                                   Standard_Real& aToler)

Perform projection with the tolerance of the edge.

Test case for issue CR25625

6 years ago0024411: SplitShape produces shape with incorrectly parameterized periodic 3D curve
azv [Thu, 25 Dec 2014 14:57:55 +0000 (17:57 +0300)]
0024411: SplitShape produces shape with incorrectly parameterized periodic 3D curve

Implemented additional flag into Geom_TrimmedCurve to adjust or not the periodic curve inside the first period.

API of Geom2d_TrimmedCurve is changed according to Geom_TrimmedCurve.

Test-case for issue #24411

6 years ago0025614: Provide API access to the new fuctionalities of Boolean Components
pkv [Thu, 25 Dec 2014 14:55:02 +0000 (17:55 +0300)]
0025614: Provide API access to the new fuctionalities of Boolean Components

I. New features:
1.1. class BOPAlgo_PaveFiller
void BOPAlgo_PaveFiller::SetArguments(const TopTools_ListOfShape& theLS)
has been added to provide the setting argumemts  through

1.2. class BOPAlgo_Builder
void BOPAlgo_Builder::SetArguments(const TopTools_ListOfShape& theLS)
has been added to provide the setting argumemts  through

1.3. class BOPAlgo_BOP
void BOPAlgo_BOP::SetTools(const TopTools_ListOfShape& theLS)
has been added to provide the setting tools through

1.4. class BRepAlgoAPI_BuilderAlgo
  (const BOPAlgo_PaveFiller& aPF)
has been added to provide the construction
of the object using BOPAlgo_PaveFiller object

void BRepAlgoAPI_BuilderAlgo::SetArguments
 (const TopTools_ListOfShape& theLS)
has been added to provide the setting argumemts

const TopTools_ListOfShape& BRepAlgoAPI_BuilderAlgo::Arguments()const
has been added to provide access to the argumemts

1.5. class BRepAlgoAPI_BooleanOperation
void BRepAlgoAPI_BooleanOperation::SetTools
  (const TopTools_ListOfShape& theLS)
has been added to provide the setting tools

const TopTools_ListOfShape& BRepAlgoAPI_BooleanOperation::Tools()const
has been added to provide access to the tools

1.6. class BRepAlgoAPI_Common
(const BOPAlgo_PaveFiller& aPF)
has been added to provide the construction
of the object using BOPAlgo_PaveFiller object

1.7. class BRepAlgoAPI_Cut
(const BOPAlgo_PaveFiller& aPF)
has been added to provide the construction
of the object using BOPAlgo_PaveFiller object

1.8. class BRepAlgoAPI_Fuse
(const BOPAlgo_PaveFiller& aPF)
has been added to provide the construction
of the object using BOPAlgo_PaveFiller object

1.9. class BRepAlgoAPI_Section
(const BOPAlgo_PaveFiller& aPF)
has been added to provide the construction
of the object using BOPAlgo_PaveFiller object

1.10. class BOPTest
void BOPTest::APICommands(Draw_Interpretor& theCommands)
has been added to provide tcl commands to launch the algorithms
implemented in BRepAlgoAPI package using DRAWEXE application.

 >bapibuild r
   performs General Fuse algorithm.
     r -the result of the operation

 >bapibop r type
   performs Boolean Operation agorithm
      r -the result of the operation
      type -type of the operation:

void BOPTest::OptionCommands(Draw_Interpretor& theCommands)
has been added to provide tcl commands to set/get the options that is
necessary for the algorithms implemented in BRepAlgoAPI package.

   dump the state of current options

  >brunparallel [0/1]
   1 -sets the parallel mode of the computations
   0 -sets the sequential mode of the computations

  >bfuzzyvalue value
    sets the fuzzy value

II. Changes:
II.1. class BRepAlgoAPI_BuilderAlgo
const TopTools_ListOfShape& BRepAlgoAPI_BuilderAlgo::Generated
  (const TopoDS_Shape& aS)
const TopTools_ListOfShape& BRepAlgoAPI_BuilderAlgo::Modified
  (const TopoDS_Shape& aS)
Standard_Boolean BRepAlgoAPI_BuilderAlgo::IsDeleted
  (const TopoDS_Shape& aS)
Standard_Boolean BRepAlgoAPI_BuilderAlgo::HasModified() const
Standard_Boolean BRepAlgoAPI_BuilderAlgo::HasGenerated() const
Standard_Boolean BRepAlgoAPI_BuilderAlgo::HasDeleted() const
has been redefined to provide access to the history

II.1. class BOPTest
void BOPTest::APICommands(Draw_Interpretor& theCommands)
has been added to provide tcl commands to launch the algorithms
implemented in BRepAlgoAPI package using DRAWEXE application.

void BOPTest::OptionCommands(Draw_Interpretor& theCommands)
has been added to provide tcl commands to set/get the options that is
necessary for the algorithms implemented in BRepAlgoAPI package.

II.2. class BRepAlgoAPI
void BRepAlgoAPI::DumpOper(const Standard_CString theFilePath,
                           const TopoDS_Shape& theShape1,
                           const TopoDS_Shape& theShape2,
                           const TopoDS_Shape& theResult,
                           BOPAlgo_Operation theOperation,
                           Standard_Boolean isNonValidArgs)
has been removed. The contents has been shifted into the file:

II.3. classes QANewModTopOpe_Glue, QANewModTopOpe_Intersection
the modifications have been done to provide the consistency with the
modifications in BRepAlgoAPI package [I].
III. Modified entities:

Test cases for issue CR25614

6 years ago0025584: Wrong result obtained by PerformInfinitePoint Test
azv [Thu, 25 Dec 2014 14:14:37 +0000 (17:14 +0300)]
0025584: Wrong result obtained by PerformInfinitePoint Test

Implemented additional verification of periodicity of B-spline surfaces when calculating UV-bounds

Test case for issue CR25584

6 years ago0025592: Bad result of Fillet operation
jgv [Thu, 25 Dec 2014 13:47:08 +0000 (16:47 +0300)]
0025592: Bad result of Fillet operation

Comments have been added.

Test case for issue CR25592

6 years ago0025591: Command mkshell produces wrong shell
azv [Thu, 25 Dec 2014 13:42:49 +0000 (16:42 +0300)]
0025591: Command mkshell produces wrong shell

The functionality to decide, whether the edge is degenerated, was shared via BRepLib_MakeFace. The verification of producing degenerated edges was added to BRepLib_MakeShell.

Test case for issue CR25591

6 years ago0025608: TKernel, NCollection_UtfIterator - fix iteration of surrogate pairs in UTF-16
kgv [Sat, 13 Dec 2014 12:00:07 +0000 (15:00 +0300)]
0025608: TKernel, NCollection_UtfIterator - fix iteration of surrogate pairs in UTF-16

6 years ago0025275: Diferent result of reading operation from *.igs and *.stp file for WINDOWS...
nbv [Thu, 4 Dec 2014 06:51:24 +0000 (09:51 +0300)]
0025275: Diferent result of reading operation from *.igs and *.stp file for WINDOWS and LINUX platform

Symbol SUB (ASCII-code 0x1A) should be considered as End-Of-File both on WINDOWS and LINUX (and on other) system.

6 years ago0025580: Visualization, TKOpenGl - create GLushort index buffer in OpenGl_Quadric...
kgv [Tue, 9 Dec 2014 14:54:49 +0000 (18:54 +0400)]
0025580: Visualization, TKOpenGl - create GLushort index buffer in OpenGl_Quadric::createArrays() when sufficient

6 years ago0025604: To provide info on what has been done by DropSmallSolids operator
eap [Fri, 12 Dec 2014 17:09:46 +0000 (20:09 +0300)]
0025604: To provide info on what has been done by DropSmallSolids operator

6 years agoAdjusting new testing case for issue 25378
mkv [Tue, 16 Dec 2014 12:46:58 +0000 (15:46 +0300)]
Adjusting new testing case for issue 25378

6 years agoCorrection of the merge CR25519 and CR25593
oan [Mon, 15 Dec 2014 10:11:05 +0000 (13:11 +0300)]
Correction of the merge CR25519 and CR25593

6 years ago0025520: To provide info on what has been done by Shape Process and Shape Fix
bugmaster [Fri, 12 Dec 2014 11:19:09 +0000 (14:19 +0300)]
0025520: To provide info on what has been done by Shape Process and Shape Fix

Messages are registered in ShapeExtend_MsgRegistrator added to ShapeCutom and ShapeUpgrade packages
All operators of ShapeProcess_OperLibrary are instrumented with MsgRegistrator

0025520: To provide info on what has been done by Shape Process and Shape Fix

Update SHAPE.fr

Fix some messages (minor change)

6 years agoResolving compilation problem
oan [Fri, 12 Dec 2014 07:49:02 +0000 (10:49 +0300)]
Resolving compilation problem

6 years ago0025529: ShapeProcessAPI: introduce DropSmallSolids operator
myn [Thu, 11 Dec 2014 14:31:28 +0000 (17:31 +0300)]
0025529: ShapeProcessAPI: introduce DropSmallSolids operator

Implemented DropSmallSolids operator

Source code corrected and optimized; tests added

tests improved

6 years ago0024938: BRepMesh_IncrementalMesh hangs
apn [Thu, 11 Dec 2014 14:22:01 +0000 (17:22 +0300)]
0024938: BRepMesh_IncrementalMesh hangs

Added test case bugs/mesh/bug24938

Small corrections in test case bugs/mesh/bug24938

6 years ago0025378: Building of triangulation for distored surfaces can take very long using...
oan [Thu, 11 Dec 2014 14:15:42 +0000 (17:15 +0300)]
0025378: Building of triangulation for distored surfaces can take very long using BRepMesh_IncrementalMesh

New parameter MinSize has been introduced to BRepMesh and GCPnts_TangentialDeflection;

Check length of remaining part of curve for min size parameter instead of distance between two points to avoid large gaps in case highly distorted BSpline surfaces;

Produce fine mesh for sphere and fix other surface;

Test cases for issue CR25378

Correction of test cases for issue CR25378

6 years ago0025509: Wrong shape considered as valid by checkshape
pkv [Thu, 11 Dec 2014 13:53:12 +0000 (16:53 +0300)]
0025509: Wrong shape considered as valid by checkshape

New features:

1. class BRepCheck_Solid
The class is to check a solid per se.
The scan area is:
 i.  Shells that overlaps each other
     Status:  BRepCheck_InvalidImbricationOfShells

 ii.  Detached parts of the solid (vertices, edges)
       that have non-internal orientation
       Status:  BRepCheck_BadOrientationOfSubshape

 iii.  For closed, non-internal shells:
 iii.1 Shells containing entities  of the solid that
      are outside towards the shells
      Status:  BRepCheck_SubshapeNotInShape

 iii.2 Shells that encloses other Shells
     (for non-holes)
      Status:  BRepCheck_EnclosedRegion


1. enumeration BRepCheck_Status
has been added

2. class BRepCheck
void BRepCheck::Print(const BRepCheck_Status stat,
                      Standard_OStream& OS)
has been modified to take into account II.1

3. class BRepCheck_Analyzer
void BRepCheck_Analyzer::Put(const TopoDS_Shape& S,
                             const Standard_Boolean B)
has been modified to take into account I.1

4. class BRepTest
void StructuralDump(Draw_Interpretor& theCommands,
 const BRepCheck_Analyzer &theAna,
 const Standard_CString   ShName,
 const Standard_CString   Pref,
 const TopoDS_Shape       &theShape)
has been modified to take into account I.1, II.1

Test cases for issue CR25509

Correction of test cases for issue CR25509

6 years ago0023493: Incorrect QAGetPixelColor usage
ski [Thu, 11 Dec 2014 13:47:12 +0000 (16:47 +0300)]
0023493: Incorrect QAGetPixelColor usage

Usage of QAGetPixelColor were checked and corrected.

Using simple comparison instead of regexp.

Improved usage of command vreadpixel for standard colors.

Command QAGetPixelColor was dropped from TKQADraw.

Procedures "checkcolor" and auxiliary "checkpoint" were moved to DrawResources/TestCommands.tcl

Some test cases using "checkcolor" for picking line color were simplified.

Procedures checkcolor and checkpoint were changed to handle situation when pixel is out of view.

Removed unnecessary use of command "vaspects -setwidth" in tests.

Revert -setwidth change in test bugs/vis/bug23525

6 years ago0025568: SIGSEGV in thrusections with edge without 3D curve
msv [Thu, 11 Dec 2014 13:42:45 +0000 (16:42 +0300)]
0025568: SIGSEGV in thrusections with edge without 3D curve

-Set algorithm flag NotDone if there is a non-degenerated edge with absent 3D curve.
-Check IsDone flag in thrusection command.
-Add test case bugs/modalg_5/bug25568.

Small correction of test case for issue CR25568

6 years ago0025558: It is impossible to restore attached shape
aml [Thu, 11 Dec 2014 13:40:37 +0000 (16:40 +0300)]
0025558: It is impossible to restore attached shape

Condition of adding one last knot corrected.

Test-case for issue #25558

6 years ago0025124: [Feature request] Removal of continuity checks for offset geometries
nbv [Wed, 10 Dec 2014 13:18:05 +0000 (16:18 +0300)]
0025124: [Feature request] Removal of continuity checks for offset geometries

Sometimes curve or surface, which is defined as C0, has continuity G1 or above. Offset can be built from these shapes.
Therefore, this extended checking was added into SetBasisCurve and SetBasisSurface methods.

Main changes in function BRepOffset_Tool::ExtentFace(...):
*  "return" is added if intersection (in 2D-space) between two edges in a face cannot be found.

Basis curve/surface continuity value found (if G1-checking is OK) is set up as BasisContinuity (see myBasisCurveContinuity and myBasisSurfContinuity members which is returned by GetBasisCurveContinuity and GetBasisSurfContinuity() methods). This fact is used in Geom2dAdaptor and in GeomAdaptor classes.

Possibility is entered, which allows for basis elements of offset curve/surface to avoid of C0-checking.

Test cases were changed according to their new behavior.

Test-cases for issue #25124

6 years ago0025193: Bad Intersection curveobtained by Surface/Surface Intersection Algorithm.
jgv [Thu, 11 Dec 2014 13:34:23 +0000 (16:34 +0300)]
0025193: Bad Intersection curveobtained by Surface/Surface Intersection Algorithm.

Test case for issue CR25193

Correction of test case for issue CR25193

6 years ago0025561: OCCT can't compile with OCCT_DEBUG flag
aml [Mon, 8 Dec 2014 06:22:35 +0000 (09:22 +0300)]
0025561: OCCT can't compile with OCCT_DEBUG flag

Restored function "Value" with old signature used in OCCT_DEBUG block.

6 years ago0025546: Visualization - remove unused methods and classes from package Aspect
kgv [Thu, 11 Dec 2014 13:29:53 +0000 (16:29 +0300)]
0025546: Visualization - remove unused methods and classes from package Aspect

Remove global methods Aspect::ToCString(), Aspect::ValuesOfFOSP(), Aspect::Inverse().
Remove class Aspect_Edge, Aspect_Array1OfEdge and Aspect_EdgeDefinitionError.
Remove enumerations Aspect_TypeOfFont, Aspect_TypeOfText, Aspect_CardinalPoints,
Aspect_TypeOfRenderingMode, Aspect_TypeOfColorSpace, Aspect_FormatOfSheetPaper.

update MFC samples

6 years ago0024643: No section curve between plane and cone
ifv [Thu, 11 Dec 2014 13:27:38 +0000 (16:27 +0300)]
0024643: No section curve between plane and cone

Test case for issue CR24643

Correction of test case for issue CR24643

6 years ago0025575: Visualization - remove V3d_Static.hxx
kgv [Tue, 9 Dec 2014 11:27:43 +0000 (14:27 +0300)]
0025575: Visualization - remove V3d_Static.hxx

6 years ago0025519: BRepMesh can break mesh regularity for BSpline surfaces
oan [Thu, 11 Dec 2014 13:19:31 +0000 (16:19 +0300)]
0025519: BRepMesh can break mesh regularity for BSpline surfaces

Compute parameters to produce regular grid and add new internal points according to calculated values.
Use intervals as an additional parameters to determine regular grid for BSpline surfaces.

Test case for issue CR25519

Correction of test case for issue CR25519

Correction of test cases for issue CR25519

6 years ago0025559: SIGSEGV in TKMath when computing max tolerance of curve on surface
aml [Thu, 11 Dec 2014 13:17:04 +0000 (16:17 +0300)]
0025559: SIGSEGV in TKMath when computing max tolerance of curve on surface

Fixed possible being outside the boundaries. Changed check math_Recipes to work with NaN, Inf, Ind.

Test case for issue CR25559

6 years ago0025547: static class mehtods not exported in BrepMesh_GeomTool
oan [Thu, 11 Dec 2014 13:14:38 +0000 (16:14 +0300)]
0025547: static class mehtods not exported in BrepMesh_GeomTool

Test case for issue CR25547

6 years ago0025555: Wrong result of classification of a point relative to solid
azv [Thu, 11 Dec 2014 13:06:35 +0000 (16:06 +0300)]
0025555: Wrong result of classification of a point relative to solid

Implemented additional verification that the point found by Extrema is placed inside the face. This way turns off searching the additional inner point.

Test case for issue CR25555

6 years ago0025468: GeomConvert_ApproxSurface should have a constructor for adaptors
azv [Fri, 5 Dec 2014 11:29:49 +0000 (14:29 +0300)]
0025468: GeomConvert_ApproxSurface should have a constructor for adaptors

Additional constructors were implemented into classes:

6 years ago0025492: the selected subshape does not have topological relationship with orginal...
aba [Wed, 3 Dec 2014 15:21:00 +0000 (18:21 +0300)]
0025492: the selected subshape does not have topological relationship with orginal shape in OCC680:

returned identity owner location if the selectable object has identity transformation.

6 years ago0025557: Draw command "openoffset" fails on customer's shape with big values of offset
jgv [Thu, 11 Dec 2014 12:43:42 +0000 (15:43 +0300)]
0025557: Draw command "openoffset" fails on customer's shape with big values of offset

Test cases for issue CR25557

6 years ago0025453: SIGSEGV in BRepFill_Sweep::BuildShell
msv [Thu, 11 Dec 2014 12:40:05 +0000 (15:40 +0300)]
0025453: SIGSEGV in BRepFill_Sweep::BuildShell

Fixed the bug causing exception when the first edge in generated sweep occurs to be degenerated.

Comments have been added.

Test-case for issue #25453

6 years ago0025544: Visualization, TKOpenGl - support grayscale textures
kgv [Thu, 4 Dec 2014 12:31:31 +0000 (15:31 +0300)]
0025544: Visualization, TKOpenGl - support grayscale textures

Image_PixMap::ImgFormat - extend enumeration by ImgAlpha and ImgAlphaF.
OpenGl_Workspace::setTextureParams() - specify GL_REPLACE for 1-component textures with disabled modulation.
OpenGl_Texture::GetDataFormat() - return GL_LUMINANCE format for ImgGray format and GL_ALPHA for ImgAlpha.

vmarkerstest - override pixel format for grayscale images to ImgAlpha.

Add test case bugs/vis/bug25544_graytexture.

6 years ago0021593: Small improvement
oan [Wed, 3 Dec 2014 08:51:58 +0000 (11:51 +0300)]
0021593: Small improvement

New parameter for BRepMesh; Test case

7 years agoAdjusting new testing cases
bugmaster [Fri, 5 Dec 2014 11:39:29 +0000 (14:39 +0300)]
Adjusting new testing cases

7 years ago0025398: Modeling Algorithms - Provide shape proximity detector
dbp [Fri, 5 Dec 2014 09:16:11 +0000 (12:16 +0300)]
0025398: Modeling Algorithms - Provide shape proximity detector

Correction of test case for issue CR25398

7 years ago0025518: Colors are not written to IGES 5.3
ink [Thu, 4 Dec 2014 12:48:16 +0000 (15:48 +0300)]
0025518: Colors are not written to IGES 5.3

Writing of colors to IGES Face (510) and Solid (186) entities allowed since this is used by CAD systems (even if not allowed by IGES standard).
Color assigned to surface, face and solid entities to ensure that different CAD systems will recognize them.

Test-case for issue #25518

7 years ago0023983: Cpulimit doesn't kill test cases
ski [Thu, 4 Dec 2014 12:09:23 +0000 (15:09 +0300)]
0023983: Cpulimit doesn't kill test cases

Modified command cpulimit using OSD_Timer and method ElapsedTime()

Enabled elapsed time control on Linux.

Added resetting of elapsed timer.

Unused variables were removed

Definition of OSD_Timer aTimer was replaced.

Correction of thread terminating on linux.

7 years ago0024988: Wrong result done by projection algorithm
aml [Thu, 4 Dec 2014 12:04:22 +0000 (15:04 +0300)]
0024988: Wrong result done by projection algorithm

Wrong border 1.0e-9 jump has deleted. Added periodicity information when projecting to surface.
Period "jump" bug fixes.

AppCont_LeastSquare conversion to non cdl class.
AppCont_Function + AppCont_FunctionTool combined in one class providing the same functionality and converted to non cdl.
Testcase modification.

Test cases for issue CR24988

Fixed incorrect comparison.

7 years ago0025465: Excess vertex in the result of CUT operation
nbv [Thu, 4 Dec 2014 08:23:14 +0000 (11:23 +0300)]
0025465: Excess vertex in the result of CUT operation

Branches CR25465 and CR25488 were squashed and rebased on the current MASTER (12/01/2014)

7 years ago0025511: Visualization - drop redundant viewer option V3d_View::Transparency()
kgv [Thu, 4 Dec 2014 11:52:49 +0000 (14:52 +0300)]
0025511: Visualization - drop redundant viewer option V3d_View::Transparency()

Visual3d_ViewManager, activate texturing by default.

Update Qt sample

7 years ago0024944: New custom-built Tcl is source of distribution problems
abv [Thu, 4 Dec 2014 11:46:41 +0000 (14:46 +0300)]
0024944: New custom-built Tcl is source of distribution problems

Option to link to MS run-time library statically added in description of building of Tcl/Tk from sources

Spelling corrections

Order of sections corrected in "Debug tools and hints"

7 years ago0025528: Visualization - Exception on removing an interactive object from a local...
san [Thu, 4 Dec 2014 11:14:14 +0000 (14:14 +0300)]
0025528: Visualization - Exception on removing an interactive object from a local context

AIS_LocalContext::Remove() corrected to unbind the argument from
myActiveObjects at the very end. Also some code clean up applied
(e.g. duplicated AddOrRemoveSelected() call removed, formatting corrected).

code formatting

7 years ago0025484: Visualization - group sub-shapes with the same style in XCAFPrs_AISObject...
kgv [Sat, 22 Nov 2014 12:19:49 +0000 (15:19 +0300)]
0025484: Visualization - group sub-shapes with the same style in XCAFPrs_AISObject::Compute()

7 years agoAdjusting CPU time for new testing cases.
mkv [Mon, 1 Dec 2014 08:01:56 +0000 (11:01 +0300)]
Adjusting CPU time for new testing cases.

7 years ago0025470: Wrong result of COMMON operation
emv [Fri, 28 Nov 2014 10:25:00 +0000 (13:25 +0300)]
0025470: Wrong result of COMMON operation

Fix for correct splitting of infinite faces.

Test cases for issue CR25470

7 years ago0025514: TKernel, OSD_Timer - do not accumulate error in timer within queries in...
kgv [Fri, 28 Nov 2014 10:22:41 +0000 (13:22 +0300)]
0025514: TKernel, OSD_Timer - do not accumulate error in timer within queries in running state

Test-case for issue #25514

Update of test-case

7 years ago0025487: Extrema_GenExtPS needs to be optimized
aml [Fri, 28 Nov 2014 10:19:30 +0000 (13:19 +0300)]
0025487: Extrema_GenExtPS needs to be optimized

Better caching and cashe usage in Extrema_GenExtPS.

Test-cases for issue #25487

Update of test-cases

7 years ago0025503: BRepMesh - IncrementalMesh always re-meshes the shape even if existing trian...
msv [Fri, 28 Nov 2014 10:03:57 +0000 (13:03 +0300)]
0025503: BRepMesh - IncrementalMesh always re-meshes the shape even if existing triangulation satisfies the given deflection

Test case for issue CR25503

Correction of test cases for issue CR25503

7 years ago0025304: Visualization, TKOpenGl - support texturing within built-in GLSL programs
kgv [Tue, 25 Nov 2014 05:52:08 +0000 (08:52 +0300)]
0025304: Visualization, TKOpenGl - support texturing within built-in GLSL programs

7 years ago0025474: Visualization, TKOpenGl - support lighting + colored vertices within built...
kgv [Sun, 23 Nov 2014 14:29:38 +0000 (17:29 +0300)]
0025474: Visualization, TKOpenGl - support lighting + colored vertices within built-in GLSL programs

7 years ago0025477: Boolean Operations with additional tolerance - Fuzzy Boolean operations
emv [Fri, 28 Nov 2014 09:23:58 +0000 (12:23 +0300)]
0025477: Boolean Operations with additional tolerance - Fuzzy Boolean operations

Implementation of Fuzzy Boolean operations. Such operations allow to perform Boolean operations on the shapes
with near-coincidence between the entities of these shapes, i.e. between shapes in which some entities from one shape
are intended to be coincide with some entities from the other, but the coincidence is not precise.

API for Boolean operations has been improved to have a possibility to add new options.

Modified entities:
1. New option of setting additional tolerance have been added to the following classes:
class BOPAlgo_ArgumentAnalyzer
class BOPAlgo_BOP
class BOPAlgo_Builder
class BOPAlgo_MakerVolume
class BOPAlgo_PaveFiller
class BOPDS_DS
class BRepAlgoAPI_BooleanOperation
class BRepAlgoAPI_Check
class BRepAlgoAPI_Common
class BRepAlgoAPI_Cut
class BRepAlgoAPI_Fuse
class BRepAlgoAPI_Section

2. Following draw commands have been modified to support new functionality:
BOP commands:
bop b1 b2 [tol]
bcommon r b1 b2 [tol]
bcut r b1 b2 [tol]
bfuse r b1 b2 [tol]
bsection r s1 s2 [-n2d/-n2d1/-n2d2] [-na] [tol]
mkvolume r b1 b2 ... [-c] [-ni] [-s] [tol]
bfillds [-s -t] [tol]

Check commands:
bopcheck Shape [level of check: 0 - 9] [-t -s] [-tol tol]
bopargcheck [-F/O/C/T/S/U] [/R|F|T|V|E|I|P|C|S]] [#BF] [-tol tol]

3. Two new classes have been added to API to provide the root interface for algorithms
class BRepAlgoAPI_Algo
class BRepAlgoAPI_BuilderAlgo

Fix to eliminate the warning.

Test-cases for issue #25477

7 years ago0025507: Visualization - the method V3d_View::Place() is incorrect
osa [Fri, 28 Nov 2014 09:19:35 +0000 (12:19 +0300)]
0025507: Visualization - the method V3d_View::Place() is incorrect

Test was updated

Correction of test case for issue CR25507