vro [Thu, 22 Aug 2013 09:07:17 +0000 (13:07 +0400)]
0024061: Draw-commands for Voxels are insufficient to test the functionality
Upgrade of draw-commands + a new draw-command calling conversion of a shape into voxels.
Resolved of a problem of failure of non-regression tests on voxels (vis/bug19820).
omy [Thu, 22 Aug 2013 08:07:14 +0000 (12:07 +0400)]
0024059: Eliminate compiler warning C4701 in MSVC++ with warning level 4
Removing pPotentially uninitialized local variable
Got rid of most of warnings C4701: Potentially uninitialized local variable
Removed redundant variable definitions.
Refactored a part of AppParCurves_ResolConstraint CTOR.
Replaced 0. to Precision::Confusion for tolerance vars;
Changed values for min and max parameter vars;
Got rid of redundant variables' initialization.
vsr [Thu, 22 Aug 2013 07:21:09 +0000 (11:21 +0400)]
0011758: TCollection strings are not memory safe as reported by Purify
Custom string handling code enabled by OptJr macro removed from implementation of strings in TCollection and elsewhere.
Functions from string.h are used instead of macros from Standard_String.hxx
File Standard_String.hxx and methods ISSIMILAR and HASHCODE of TCollection*String classes are removed (to be replaced by strcasecmp).
Functions HashCode for strings reimplemented using DJB2 algorithm for C strings and SDBM algorithm for extended strings.
Adding test cases and draw-command for issue CR11758
Fix misprint added with previous integration
Fix misprint in the test command.
Remove compilation warnings (Linux).
Avoid compiler warning "dereferencing type-punned pointer will break strict-aliasing rules" on Linux
vro [Thu, 15 Aug 2013 12:28:11 +0000 (16:28 +0400)]
0023864: An & symbol is read incorrectly from a XML Ocaf file
A line is uncommented. This line sets the successfully read & symbol.
Correction and adding test cases for issue CR23864
ika [Thu, 15 Aug 2013 11:28:19 +0000 (15:28 +0400)]
0022535: Cut sphere: invalid shape after reading from STEP
In cutting sphere it's seam edge was divided into two parts(by cylinder),
but pcurves of the second were not shifted during shape healing.
Test cases correction
szy [Wed, 7 Aug 2013 15:27:29 +0000 (19:27 +0400)]
0003513: There is no check for boundary of array in method Set for array attributes
- Added check of array's boundary in Set(i, val) methods.
- Added comments to cdl files.
- removed accidental modification in TDataStd_ExtStringArray::Value(i).
- recovering accidentally lost modifications.
ika [Thu, 1 Aug 2013 08:34:52 +0000 (12:34 +0400)]
0021317: Face cannot be fixed by Shape Healing
Fix that face, in which only wire was reordered during shape healing, was not replaced.
Add test case for this fix
Add status for shifted wires in reordering.
Modified test case de/step_1/E3 according to new reference data
oan [Thu, 25 Jul 2013 09:11:00 +0000 (13:11 +0400)]
0023105: Exception during Meshing / Missing triangles
Fix compilation error on Linux
Adding test command for this fix
meshPolygon: simplify source polygon by splitting it onto parts without glued edges and loops
Check surrounded triangles during final cleaning of mesh
Correct polygon on frontier edges
Modified test cases in group mesh according to new behavior
0023746: IGES wheel model fails to load when OCCT unit is meters
Add check for too small distances during edges reordering
Fix writing TrimmedSurface (Type 144).
Fix checking for too small distances between loops of edges during edge's reordering.
Add checking for too small BSpline segments during reading and writing IGES.
Fix wire splitting by adding checking that vertexes same not only in 3d, but in 2d too.
use tolerance of vertexes recomputed through resolution surface, not 2d curves.
Adding test case for this fix
Modified test case bugs iges bug23746 and cases in group de according to new reference data
0024047: Exception in TPrsStd_AISPresentation during destruction of TDocStd_Document
Adding test case for this fix
Modification in order to avoid exception during destruction of AIS_InteractiveContext
Small modification for trihedron
Small modifications to avoid regressions
Cosmetic modification
0023839: Projection algorithm produces wrong results for set of data
Added test cases bugs/modalg_5/bug23839_1 bug23839_2 bug23839_3 bug23839_4 bug23839_5 bug23839_6 bug23839_7
0024060: Wrong result done by general fuse algorithm.
Added treatment of the vertex as a single object.
Added test case bugs/modalg_5/bug24060
Modified shape's extension in test cases bugs/moddata_3/bug23943_3 bug23943_4
Modified test cases in group de according to new reference data in issue 24035
0023947: Eliminate trivial compiler warnings in MSVC++ with warning level 4
Fix first subset of warnings (about 100)
- while(1) and similar constructs replaced by for(;;)
- some uninitialized variables corrected
Got rid of Warning C4189: local variable is initialised but not referenced
Corrected mistakes after getting rid of C4189 compiler warning
Corrected some mistakes that led to compiling errors
Fixed test case because of improvement message - removed unnecessary TODO.
Small fix: tabs have been replaced with whitespaces.
Added TODO for Windows platform
removed last TODO
Corrected mistakes, returned some #ifdef DEB code, fixed test case .
Restoring a few places which have been modified too much
Small grammar fix
Deleted unnecessary puts in bugs/end
0024048: "Basic Runtime Checks" option of VS projects should be equal to "RTC1"
tolreached initialized (src\ChFi3d\ChFi3d_Builder_6.cxx);
LocalTransition initialized in deb case (src\HatchGen\HatchGen_Hatcher.gxx);
vprev initialized (src\Blend\Blend_Walking_3.gxx);
uprev initialized (src\BRepBlend\BRepBlend_SurfRstLineBuilder.cxx);
lxp initialized (src\Interface\Interface_FloatWriter.cxx)
pBuff initialized (src\OSD\OSD_Process.cxx)
aPrefix initialized (src\RWStepBasic\RWStepBasic_RWSiUnitAndPlaneAngleUnit.cxx)
ier initialized AdvApp2Var/AdvApp2Var_ApproxF2var.cxx
FacRevolInfini initialized BRepFeat_MakePrism.cxx
default action of "switch" returned
nombre mas of chars was expanded to 1024 (had been 20). this expansion helps avoiding the error of conversion a float number to mas of chars: the size of mas is enough for converting float number now.
Changed status (todo ?) of tests: de step_5 A6 B3, de iges_3 A9
0023782: Intersection algorithm produces wrong section curves for the attached faces
The fix is to keep the correlation between numbers of segments in U and V parametric directions (nbu and nbv).
When minimal of these numbers (f.e. nbu) is set to default minimal value (10), other (nbv) is set to Min(30, nbv*(default/nbu)). 30 is used to avoid too small segments.
Added test case bugs/modalg_5/bug23782
0024029: Add a flag to bopcheck command to provide possibility to disable Face/Face intersection
Added new parameter to bopcheck command that defines which interferences to check:
bopcheck shape [level of check: 0 - 5]
Examples:
1. bopcheck shape 1
#The level of check is set to V/E, i.e. intersections #E/E, V/F, E/F, F/F will not be checked.
2. bopcheck shape 4
#The level of check is set to E/F, i.e. intersection F/F is disabled.
3. bopcheck shape 5
#All intersections will be checked. It is the same as bopcheck shape.
Added test case bugs/modalg_5/bug24029
Added a new method filling the inner part of a shape with voxels. The advantages of using this method are:
- processing vertical faces
- correct processing of 'concave' shapes
Added QA command OCC24019 for issue 24019 and test case bugs/vis/bug24019
ika [Thu, 27 Jun 2013 06:08:14 +0000 (10:08 +0400)]
0024035: Intersector is not symmetrical
asymmetrical check in Standard_Boolean IntCurve_IntPolyPolyGen::findIntersect was changed to symmetrical.
fix wrong calculation of approx parameter on curve for last polygon segment
Added test case bugs/modalg_5/bug24035
Modified TODO in "de" test cases because there are small differences with old behaviour
Modified test case heal/split_closed_faces/G5 because of corrections in intersector's behavior, which lead to changes in checkshape
nbv [Mon, 24 Jun 2013 06:18:18 +0000 (10:18 +0400)]
0024028: It is impossible to create a face based on Geom_RectangularTrimmedSurface by standard methods
1. Trimmed Surfaces were replaced with bases for *.igs and *.stp file format.
BRepLib_MakeFace method sets the TRIMMED surface of Geom_RectangularTrimmedSurface in created face.
apn [Thu, 20 Jun 2013 08:31:58 +0000 (12:31 +0400)]
Adding test cases
for following issues:
0023823: The result of section operation contains redundant vertex 0023826: Boolean Common between two solids fails 0023884: Boolean Fuse between two faces fails 0023892: Missing intersection curve between two surfaces 0023976: Extremely high memory consumption on boolean operation on 64 bits 0023991: Missing section edge between two faces 0024003: Exception reaised during intersection between two faces
emv [Thu, 20 Jun 2013 11:48:11 +0000 (15:48 +0400)]
0024025: The method Modified2() in BRepAlgoAPI_BooleanOperation should be removed.
Removed method BRepAlgoAPI_BooleanOperation::Modified2(const TopoDS_Shape& aS) as it is no longer relevant (in the previous version of BOP it had used History collector to find modified shapes, but there is no such collector in current version of BOP). The replacement for this method is BRepAlgoAPI_BooleanOperation::Modified(const TopoDS_Shape& aS).
Small correction of test case
san [Mon, 17 Jun 2013 13:09:59 +0000 (17:09 +0400)]
0024031: Depth buffer writes not enabled after rendering a transparent object
Depth buffer writes manipulation made independent from the reflection mode flags
to ensure correct depth buffer operation after rendering transparent object(s).
Coding style improved slightly by using more human-readable variable name for
the reflection mode.
vro [Thu, 13 Jun 2013 11:38:17 +0000 (15:38 +0400)]
0023889: Assignment of function parameter has no effect outside the function.
Voxel_ROctBoolDS::SetZeroSplitData() is modified to accept an address of a pointer to deleting data.
Removal of a compilation error on Linux.
Compile error on Linux platform was fixed
Implemented a new method using separating axis theorem to compute triangle-box intersection. Based on the intersection result the decision whether to set the voxel is made.
Adjustment of lines (removal of extra-spaces).
Adding test cases for voxel testing
1. Approximation of derivative (by Taylor-series and by three points).
2. Some methods (Degree(), GetType(), D0(), D3(), DN()) are added.
3. Getting of subInterval's boundaries.
4. Algorithm for checking if 1st derivative is equal to zero is amended.
5. Cases are controlled when extrema or Project point do not exist.
6. GetNormal() function for gp_Vec2d was added.
7. Computing of Value, D0, D1, D2 and D3 for offset curves was changed.
8. Limitation of tolerance for derivative computing was added.
9. Methods for computing trihedron in singularity point are added.
10. Test tests/bugs/moddata_3/bug23706 is added.
11. Restriction on the LastParameter for visualization of 3-D curves. Calling PlotCurve(...) function for last interval.
12. LProp package is modified for tangent computing in singularity point (LProp_CLProps, LProp_SLProps).
13. Added test cases for issue.
Deleting bad test cases for this fix
emv [Thu, 6 Jun 2013 08:16:38 +0000 (12:16 +0400)]
0024016: Test case bugs moddata_2 bug324 works not correct after integration of the fix for the issue 0023985.
Do not perform the check for the height of the cylinder (see issue 0023985) for infinite cylinders.
aba [Thu, 13 Jun 2013 10:57:07 +0000 (14:57 +0400)]
0023670: Support for multiple 3D views: edited commands: vinit; added commands: vclose, vactivate, vviewlist
bugs/end script was edited to dump results from all opened views; duplicated vinit was deleted from bug625. QABugs::OCC280()
was edited to work with multiviews;ViewerInit() method was corrected. vviewlist command was modificated to output string.
Small corrections
Compile errors were corrected
emv [Thu, 30 May 2013 06:19:57 +0000 (10:19 +0400)]
0024004: Initialization of arrays TPoints, TEdges, TTriangles of the class IntPolyh_MaillageAffinage by exact values
This commit implements two ideas for current version of OCCT:
1. Initialization of the arrays of the class IntPolyh_MaillageAffinage by exact values. The idea suggested by Roman Lygin (http://opencascade.blogspot.fr/2008/12/why-are-boolean-operations-so-sloooooow.html [^]);
2. Optimizing for loops. The idea has been taken from OCE (https://github.com/tpaviot/oce/commit/7b19650b2902305709c5124823bd4b81331353f7 [^]).
Pawel [Thu, 6 Jun 2013 06:21:21 +0000 (10:21 +0400)]
0024010: Voxel_DS: getting the origin point of a voxel
A method obtaining the voxel origin added.
1. (xc, yc, zc) is renamed to (x0, y0, z0)
2. The method GetCenter() calls now the method GetOrigin() internally to reduce amount of code and increase readability.
Pawel [Thu, 6 Jun 2013 06:13:30 +0000 (10:13 +0400)]
0023501: Redundant triangulation cleaning/generation (1) in AIS_Shape.cxx
Cleaning triangulation only if the AIS_Shape has either (1) OwnDeviationAngle and
the values 'newangle' and 'prevangle' are different or (2) OwnDeviationCoefficient and the values 'newcoeff' and 'prevcoeff' are different
Found similar problems in further code portions and corrected them.
The same faulty condition found in XCAFPrs_AISObject.cxx
vro [Fri, 31 May 2013 13:29:27 +0000 (17:29 +0400)]
0023935: Compiler warnings on returning Handle from C functions in OCAF schemas
The warning 4190 is disabled because a C++ object calling from C section is manipulating only in C++ (outside of C section).
Second attempt to remove the warning: extern "C" is removed - everything works fine. But I tested it only on Windows.
Removed "Create##schema" method at all: without "extern "C"" it is useless. Checked that in OCCT and Samples this method is unused.
"new ##Schema" is used instead (like in StdDrivers.cxx, for an example). Also this approach is advised in Storage_Schema.cdl:
-- For example, if ShapeSchema is the class
-- inheriting from Storage_Schema and containing
-- the description of your application data schema,
-- you create a storage/retrieval algorithm as follows:
-- Handle(ShapeSchema) s = new
-- ShapeSchema;
emv [Fri, 31 May 2013 13:17:34 +0000 (17:17 +0400)]
0023985: There is no section between attached faces.
Added new parameter for checking whether the plane and cylinder are parallel - the height of the cylinder.
This parameter is needed for the cases when angle between AXIS and plane's normal is very close to PI,
but the "height" is big enough that point, translated from intersection point between cylinder's axis and plane
on the "height" distance in the direction of cylinder's axis, does not belong to the plane.
Such plane and cylinder cannot be considered as parallel.
Add test case for this fix
ifv [Fri, 31 May 2013 13:13:38 +0000 (17:13 +0400)]
0023945: GeomAdaptor_Surface fails to compute the first derivatives on the surface of the attached face
Add test case for this fix
Add new draw-command OCC23945 for testing this fix
Add new draw-command for testing tis fix