An improved RWSTL::ReadFile() method + a draw-command returning the number of nodes and triangles for a MeshVS_Mesh object based on STL mesh data source.
An indexed map of points is replaced by a CellFilter of XYZ objects already implemented in BRepBuilderAPI.
Also, BRepBuilderAPI_VertexInspector became exported for TKTopAlgo library (Standard_EXPORT is added for the methods of this class).
Standard_EXPORT is removed for in-line methods of BRepBuilderAPI_VertexInspector
ski [Thu, 30 Oct 2014 09:12:17 +0000 (12:12 +0300)]
0025387: Error appears during export to STEP operation in ImportExport MFC sample
Combo-box for selection of translation mode is available in Export to STEP and CSFDB files.
Default valuer for STEP export mode is set to As Is, i.e. automatic selection.
Added #define in function CFileDialog because it takes only 6 parameters in Visual Studio 2005.
san [Thu, 30 Oct 2014 08:57:09 +0000 (11:57 +0300)]
0025400: Visualization, TKOpenGl - Structure disappears if assigned a non-default Z layer
- BVH tree in the target Z layer was not updated when OpenGl_Structure
was moved to another Z layer.
- vpriority DRAW command added to test how BVH tree is updated when
display priority is changed
- Test case for Z layers and display priorities added
Handle -noupdate argument within vpriority command
aba [Wed, 22 Oct 2014 15:01:52 +0000 (19:01 +0400)]
0025403: Wrong storage of model units in AIS_AngleDimension: corrected AIS_Drawer model units setters; added parameters to vdimensin and vdimparam commands.
I. New features:
I.1 class BOPAlgo_Section
The class clontains the algorithm to build a result of Secton between the arguments.
The result of Section consists of vertices and edges.
The result of Section contains:
1. new vertices that are subjects of V/V, E/E, E/F, F/F interferences
2. vertices that are subjects of V/E, V/F interferences
3. new edges that are subjects of F/F interferences
4. edges that are Common Blocks
5.a vertex is included in result of Section only when it is not shared
between the edges of the result of Section
The class BOPAlgo_Section inherits the functionality of root class BOPAlgo_Builder
1.2 class BOPTest_Objects
method:
BOPAlgo_Section& BOPTest_Objects::Section()
has been added to get access to BOPAlgo_Section object
II. Changes:
II.1. class BOPAlgo_BOP
method:
void BOPAlgo_BOP::BuildSection()
has been removed
methods:
void BOPAlgo_BOP::CheckData()
void BOPAlgo_BOP::Prepare()
void BOPAlgo_BOP::PerformInternal1(const BOPAlgo_PaveFiller& theFiller)
const TopTools_ListOfShape& BOPAlgo_BOP::Generated
(const TopoDS_Shape& theS)
have been modified to eliminate references on Section operation
II.2. class BOPAlgo_PaveFiller
method:
void BOPAlgo_PaveFiller::UpdateFaceInfo
(BOPDS_DataMapOfPaveBlockListOfPaveBlock& theDME)
modified to prevent the usage of negative index in Data Structure
II.3. class BOPTest_Objects
static function:
Standard_Integer bopsection(Draw_Interpretor& di, Standard_Integer n, const char** a)
has been modified to use BOPAlgo_Section object instead of BOPAlgo_BOP object
static function:
Standard_Integer bbop(Draw_Interpretor& di,
Standard_Integer n,
const char** a)
has been modified to use BOPAlgo_Section object instea of BOPAlgo_BOP object
II.4. class BRepAlgoAPI_BooleanOperation
field:
myBuilder
the type has been changed from BOPAlgo_BOP* to BOPAlgo_Builder*
method:
void BRepAlgoAPI_BooleanOperation::Build()
has been modified to use BOPAlgo_Section object
msv [Thu, 23 Oct 2014 11:02:54 +0000 (15:02 +0400)]
0025396: Crash occurs when using TBB allocator on an Intel architecture not supporting SSE2 instructions
During initialization of memory manager, check if SSE2 instructions are supported, when MMGT_OPT=2 is in effect. If not then use MMgrRaw instead of MMgrTBBalloc. It is to avoid runtime crash when running on a CPU that supports SSE but does not support SSE2 (some modifications of AMD Sempron).
kgv [Wed, 15 Oct 2014 11:20:26 +0000 (15:20 +0400)]
0025373: Visualization, AIS_MultipleConnectedInteractive - transformation persistence flags are ignored for connected objects
Provide method AIS_MultipleConnectedInteractive::Connect() taking transformation persistence flags.
Copy transformation persistence flags from original objects when called Connect() without extra arguments.
msv [Thu, 23 Oct 2014 10:19:15 +0000 (14:19 +0400)]
0025348: Method Assign of NCollection containers must not change own allocator of the target
Correct according to remarks of reviewer:
- Assign() and operator=() should implement equal approach to allocators
- Protect all collections against assignment to itself with operator=()
apl [Thu, 23 Oct 2014 10:13:46 +0000 (14:13 +0400)]
0024965: Problem in local selection mode with selected objects staying in the viewer
Added method to clear outdated selection of entity owners on recompute (update) of selection.
Added test case to check selection behavior in local context.
1. DRAW-commands for curve/surface continuity returning were changed.
2. Output of "distmini" DRAW-command is amended.
3. Function MinMax() was moved from Standard_Real to IntPatch_ImpImpIntersection_4.gxx.
4. Incorrect computing of nbcurveC1 in Geom2dConvert::C0BSplineToC1BSplineCurve(...) function was liquidated.
abv [Mon, 13 Oct 2014 16:44:33 +0000 (20:44 +0400)]
0025365: Regressions after changes in IsClosed flag
Restore previous behavior of BRep_Tool::IsClosed() for shells: empty shells and shells containing only INTERNAL or EXTERNAL sub-shapes are considered non-closed.
dbv [Thu, 16 Oct 2014 11:35:22 +0000 (15:35 +0400)]
0021802: Not all names are transferred from STEP to IGES via XDE
Method IGESCAFControl_Writer::WriteNames now iterates over all nested assemblies and collects names for shapes.
Regression fix
Test-case for issue #21802
emv [Thu, 16 Oct 2014 11:30:12 +0000 (15:30 +0400)]
0025319: Bop Common produces strange results with same shapes.
class BOPAlgo_Builder
method
void BOPAlgo_Builder::FillIn3DParts
(BOPCol_DataMapOfShapeListOfShape& theInParts,
BOPCol_DataMapOfShapeShape& theDraftSolids,
const BOPCol_BaseAllocator&)
Sort faces before its classification relatively to the solid.
0025276: Visualization - Lighting is broken if some kinds of transformation applied to a shape
In order to solve the problem, triangle vertices order is inverted in
mirrored mesh (triangulation). Mesh considered to be mirrored if its
transformation matrix determinant is less than 0.
To handle AIS object mirror transformations "Mirrored" flag stored in
OpenGl_Structure. If this flag is enabled, glFrontFace (GL_CW) applied
before the draw call.
New DRAW commands for visualization level transformations added.
abv [Wed, 8 Oct 2014 14:52:07 +0000 (18:52 +0400)]
0025202: Incorrect value of IsClosed flag in shapes produced by some algorithms
Method BRep_Tool::IsClosed() extended to analyze closure of wires in addition to shells and solids.
External and Internal edges and vertices are ignored in this check.
Analysis of compounds is disabled.
Update of flag Closed according to actual state is added in most places where new shells are constructed.
apl [Mon, 6 Oct 2014 14:55:14 +0000 (18:55 +0400)]
0024802: "help" command shouldn't apply implicit rules in definition process of what command description it should show
-When in "help <command>" <command> was exactly found in existing draw commands, then helpstring for this <command> is displayed,
else "help" fails and error message is displayed
-When "*word" or "word*" or any other combination is given in args, then help command performs typical wildcard search.
-Meaningful texts are provided instead of commands in File menu (e.g. restore->Load Shape (restore))
-tk_getOpenFile is used in "open file" dialogs
-tk_chooseDirectory is used in "change directory" dialog
-Added menu "Help" with submenus "System info", "Commands", "About", "User Guide"
-Added menu "Samples" with submenu "View samples"
-Added menu "Load" with submenus "pload <Module>"
dln [Tue, 3 Jun 2014 06:11:33 +0000 (10:11 +0400)]
0024699: Visualization - prototype interoperation of TKOpenGl viewer with Direct3D viewer
Add new C# sample which allow to render the OCCT scene to a Direct3D context in a WPF application.
DirectX SDK is required in order to build this sample.
- OCAF sample Save Document option: corrected conversion from LPCTSTR to Standard_CString
- HLR sample: corrected mouse move event handling for HLR 2D view; Corrected CSelectionDialog view displaying and updating
- Geometry sample: CGeometryDoc correction to avoid code duplication
- OCC_3dBaseDoc: corrected DragEvent() handler for proper emulation of rectangle selection.
- Viewer3d sample: moved resource files (resource.h; resource.hm; AISToolbar.bmp) from /src to /res
Code style changes
Fixed "About" dialog error in release.
Corrected dimension dialogs
Workaround for dimensions sample: AIS_LocalContext::SelectedShape() doesn't take into account TopoDS shape local transformation, and operates with selected interactive transformation.
Performs fast BVH construction using LBVH building approach. Algorithm uses spatial Morton codes to reduce the BVH construction problem to a sorting problem (radix sort -- O(N) complexity). This Linear Bounding Volume Hierarchy (LBVH) builder produces BVH trees of lower quality compared to SAH-based BVH builders but it is over an order of magnitude faster (up to 4M triangles per second).
0025227: Visualization - optimize BVH binned builder
BVH binned builder is used for different rendering aspects, such as view frustum culling, ray-tracing, and (in future) for selection. It is desirable to improve builder performance. This simple patch decreases BVH building time for 30-35%.