Documentation generator improved to automatically convert SVG images to PDF when PDF documents are generated. This is done with Inkscape thus it becomes necessary for generation of PDF documents.
Doxygen alias "figure" added for easy insertion of images with single command for both HTML and PDF output.
Documentation is updated.
Reviewed documentation.md and added more recommendations on Document Syntax.
Introduced existing svg images in the documentation.
Description of formatting of plain text, code blocks, and references revised.
Snapshot of structure of dox folder is updated.
Copyright year is corrected in PDF documents to be always the current one.
apl [Thu, 6 Mar 2014 11:15:53 +0000 (15:15 +0400)]
0024413: Visualization - get rid of projection shift from orthographic camera definition
From now on, the panning behavior of V3d_View completely corresponds to equal operations with camera. There is no more confusing "Center" property and "ProjectionShift" which were used to introduce composite panning, while respecting view referential points: At, Eye unchanged. The V3d_View::FitAll approach has been rewritten to do "fit all" geometrically, operating with frustum, to make it working for both orthographic and perspective projections.
1) Getting rid of ProjectionShift and Center property:
- Removed ProjectionShift property of Graphic3d_Camera.
- Removed confusing Center property of V3d_View (related to projection shift).
- Removed redundant code related to the Center property of V3d_View.
- Removed WindowLimit method of Graphic3d_Camera - no more used.
2) Improvements of fit all and selector:
- Improved FitAll operation of V3d_View and reused it in NIS_View - the perspective projection is now handled correctly.
- Revised code of Select3D_Projector class - can be defined with any given projection and model-view matrices.
- Modified StdSelect_ViewerSelector3d and ensured that panning, zooming and going into the view do not lead to unwanted re-projection of sensitives. The handling of perspective selection is revised.
- Take into account graphical boundaries of infinite structure on ZFitAll.
3) Improvements of camera:
- Introduced new z range scale parameter for V3d_View::AutoZFit. See, V3d_View::AutoZFitMode.
- Allow negative ZNear, ZFar for orthographic camera to avoid clipping of viewed model.
- Moved camera ZNear, ZFar validity checks to V3d_View level.
- Use more meaningful Standard_ShortReal relative precision for ZNear, ZFar ranges computed by ZFitAll.
- Use Standard_Real type for camera projection and orientation matrices.
- Extended camera to generate both Standard_Real and Standard_ShortReal transformation matrices using the same matrix evaluation methods and converted input parameters.
Correcting picking tests for perspective view
Modify v3d face test cases for 1px changes in face picking
Modified test cases for new arguments of vviewparams DRAWEXE command
Changes:
1. class BOPAlgo_PaveFiller
- method:
void BOPAlgo_PaveFiller::PerformEE()
the chages provides the parallel computations of
Edge/Edge interferences.
- auxiliary classes:
BOPAlgo_EdgeEdge
BOPAlgo_EdgeEdgeFunctor
BOPAlgo_EdgeEdgeCnt
have been added.
The classes are auxiliary classes to provide the parallel computations
of Edge/Edge interferences.
2. class BOPTest
-method:
void BOPTest::PartitionCommands(Draw_Interpretor& theCommands)
- static function:
Standard_Integer bfillds(Draw_Interpretor& di,
Standard_Integer n,
const char** a)
The syntax of the command "bfillds" has been changed.
> bfillds [-s -t]
options:
-s - launch the algorithm in sequential mode
-t - display CPU time
The map for collecting pave blocks of two faces has been replaced with indexed map
to ensure the constant order of pave blocks when checking section curves for existents.
apl [Thu, 6 Mar 2014 10:15:39 +0000 (14:15 +0400)]
0024622: Add method to AIS_TexturedShape class to assign texture data directly from byte stream
Added methods to specify Image_PixMap as texture source to AIS_TexturedShape and Graphic3d_TextureRoot.
Modified internal class MeshVS_ImageTexture2D, originally used for the purpose of sourcing texture as Image_PixMap.
AIS_TexturedShape class:
- Get rid from cdl declaration.
- Remove unused and uninitialized field myDeflection / method Deflection().
- Improve class documentation.
- Use Graphic3d_NOT_2D_UNKNOWN instead of -1.
- Use myIsCustomOrigin and myToScale flags to use/ignore custom values.
vro [Thu, 6 Mar 2014 09:31:59 +0000 (13:31 +0400)]
0024645: Pointer to the last is wrong for a tree node
- An extra call to DownCast() is removed for a performance reason.
- Information on last child is added to the Dump() method + fixed a problem of lost last child tree node on removal (detach) operation.
- Test case for issue CR24645
abv [Mon, 3 Mar 2014 09:52:33 +0000 (13:52 +0400)]
0024599: Tools for interacting with DRAW from Visual Studio debugger
Minor correction of #include to avoid dependency of package Draw on DBRep (problem building by WOK).
License statements in new files corrected for licensecheck command.
Non-ascii en-dash symbol repleced by Ascii hyphen in debug.md.
vro [Thu, 27 Feb 2014 14:43:38 +0000 (18:43 +0400)]
0024645: Pointer to the last is wrong for a tree node
Information on last child is added to the Dump() method + fixed a problem of lost last child tree node on removal (detach) operation.
Test case for issue CR24645
ibs [Thu, 27 Feb 2014 14:33:30 +0000 (18:33 +0400)]
0024364: Document system should use local MathJax also
the new ability choosing of the location of MathJax was introduced
new argument was added to gendoc.bat script
MathJax choice was updated for CHM articles
Minor corrections of documentation
abv [Thu, 27 Feb 2014 14:22:52 +0000 (18:22 +0400)]
0024599: Tools for interacting with DRAW from Visual Studio debugger
Global functions are added to allow a user performing DRAW commands from VS Command Window when DRAW is interrupted on a breakpoint.
Previously existing functions are adapted to work with Visual Studio debugger (Command Window).
A manual describing use of these functions and other debugging facilities and some hints is added to Developer Guides.
Minor corrections and refinement of debug.md.
pkv [Thu, 20 Feb 2014 13:07:51 +0000 (17:07 +0400)]
0024620: BOPAlgo_CheckerSI returns interferences that are not sub-shapes of the source shape
void BOPAlgo_CheckerSI::PrepareCopy()
has been added.
Purpose:
- provides the copy of the argument
- provides links between the copy and the original
- protected method:
void BOPAlgo_CheckerSI::PostTreatCopy()
has been added.
Purpose: provides post treat actions wit the copy.
void BOPAlgo_PaveFiller::Perform()
The try/catch mechanism is used inside the method
Standard_Integer bopcheck
(Draw_Interpretor& di, Standard_Integer n, const char** a )
The redundant copying is removed.
Standard_Integer bopargcheck
(Draw_Interpretor& di, Standard_Integer n, const char** a )
The redundant copying is removed.
packages:
BOPAlgo
BOPTest
Test cases for issue CR24620
Small correction of text case for issue CR24620
pkv [Thu, 20 Feb 2014 12:53:03 +0000 (16:53 +0400)]
0024618: Embedding vertex in BOP depends on the order of arguments
Changes: class BOPDS_DS
- method:
void BOPDS_DS::AloneVertices(const Standard_Integer theI,
BOPCol_ListOfInteger& theLI)const
The condition for DS-index of a vertex has been corrected
class BOPTools_AlgoTools3D
- static function:
Standard_Boolean HasGeometry(const TopoDS_Shape& aS)
The returnig value has been corrected for shapes of vertex type
emv [Wed, 12 Feb 2014 11:40:05 +0000 (15:40 +0400)]
0024558: Boolean operation can not create all results solids which should be built.
Corrections in checking 2d distances when splitting wires.
Test case for the issue.
abv [Thu, 20 Feb 2014 12:06:26 +0000 (16:06 +0400)]
0024624: Lost word in license statement in source files
License statement text corrected; compiler warnings caused by Bison 2.41 disabled for MSVC; a few other compiler warnings on 54-bit Windows eliminated by appropriate type cast
Wrong license statements corrected in several files.
Copyright and license statements added in XSD and GLSL files.
Copyright year updated in some files.
Obsolete documentation files removed from DrawResources.
PCurve is extended to surface boundary forcefully.
It is made by finding some additional points (if it is possibly).
"bopcurves" DRAW-command returns number of found 3D-curves and (as an option) 2D-curve (see help for more detail information).
aba [Thu, 13 Feb 2014 09:09:42 +0000 (13:09 +0400)]
0024358: TKV3d - connected structures are not re-computed on device lost
Graphic3d_StructureManager::ReComputeStructures() method was corrected to consider all child (connected) structures.
Corrected remarks: added image dump in test case; corrected method name.
aba [Thu, 13 Feb 2014 08:43:56 +0000 (12:43 +0400)]
0024412: TKV3d, Dimensions - Possibility to customize text position was lost:
AIS_Dimension::GetTextPosition() and AIS_Dimension::SetTextPosition() methods were added.
Added possibility to set and unset text label alignment respectively to the attach points after text position changed.
Added test cases to check text positioning with dimension parameters and with setting 3D point.
Corrected DRAW commands vmovedim, vangledim, vdistdim, vradiusdim.
Corrections of AIS_Dimension::SetTextPosition(): aspect parameters are not changed inside it.
Layout mode was removed; test cases and vdimparams, vdimension commands were corrected.
remarks: coding style, removing redundant code of LayoutMode enumeration.
dln [Tue, 21 Jan 2014 08:15:53 +0000 (12:15 +0400)]
0024547: Convertation of the generic classes to the non-generic (math).
- class "math_DoubleTab" was converted to the non-generic class. Some changes were made in the class "math_Matrix". And some stylish changes were made.
- class "math_SingleTab" was converted to the non-generic template class. And classes "math_Vector" and "math_IntegerVector" converted to the non-cdl, because they use template class "math_Vector". Some stylish changes were made.
- enumeration value not handled in switch in Aspect_ColorScale.cxx, TNaming_DeltaOnModification.cxx
- comparison between signed and unsigned integer expressions in NIS_Triangulated.cxx, OSD_MAllocHook.cxx, RWStl.cxx
- static function defined or declared but not used in OpenGl_Workspace_2.cxx, ProjLib_ComputeApprox.cxx
pkv [Thu, 6 Feb 2014 07:21:47 +0000 (11:21 +0400)]
0024597: Missing internal vertex in the result of General Fuse Operation
Changes:
class BOPDS_DS
- method:
void BOPDS_DS::Init()
- method:
void BOPDS_DS::FaceInfoIn
(const Standard_Integer theF,
BOPDS_IndexedMapOfPaveBlock& theMPB,
BOPCol_MapOfInteger& theMI)
Add the information about internal vertices on faces to the Data Structure
1. Checking, if intersection curve is collapsed, is added. (file GeomInt_LineConstructor.cxx)
2. Earlier, intersection line was considered as valid if only mid-point of every interval of this line is into two intersected surfaces (with given tolerance). That's no good because after inserting of new points, old points, which is considered as valid only because they are into beginning or into end of interval (therefore, they was not checked), moved to mid of interval and became invalid. Therefore, checking for first and last points was added. (file GeomInt_LineConstructor.cxx)
3. Intersection line became valid (see bug description) after adding of new additional points into it (file IntPatch_PrmPrmIntersection.cxx). Methods for finding and adding of new points were added. (file IntWalk_PWalking_1.gxx)
Some test cases were changed.
Test cases for issue CR24472
abv [Mon, 3 Feb 2014 06:21:23 +0000 (10:21 +0400)]
0024587: Separate TCL samples for ray tracing and creation of bottle
New sample created for ray tracing in DRAW: samples/tcl/raytrace.tcl, rendering OCCT bottle with glass on a rectangular table, with shadows and reflections (if OpenCL is available). Sample bottle.tcl retains only modeling part.
I. New features:
I.1 class BOPAlgo_ShellSplitter
The new class BOPAlgo_ShellSplitter has been added.
Purpose: The class provides the splitting of the set of connected faces
on separate loops
II. Changes:
II.1. class BOPAlgo_BuilderSolid
- method:
void BOPAlgo_BuilderSolid::PerformLoops()
the changes that provide parallel run the ShellSplitter algorithm have been done.
- method:
void BOPAlgo_BuilderSolid::PerformAreas()
the classification the grows and holes has been done using
the algorithm of unbalanced binary tree of overlapped bounding boxes
apl [Fri, 24 Jan 2014 07:01:42 +0000 (11:01 +0400)]
0024564: Select3D_SensitiveFace gives inaccurate picking depth for AIS_Plane (interior selection)
1) Used more accurate Select3D_SensitiveTriangulation instead of Select3D_SensitiveFace for rectangular sensitives in AIS_Plane::ComputeSelection, AIS_Dimension::ComputeSelection
2) Test case for CR24564
apl [Thu, 30 Jan 2014 09:03:48 +0000 (13:03 +0400)]
0024569: AIS_InteractiveContext::Update(...) does not updates selection when changing AIS_Plane
1) Allow AIS_InteractiveContext::Update to check, re-project and recompute selection structures even if presentations are not "to be updated".
2) Test case bugs vis bug24569.
nbv [Mon, 20 Jan 2014 10:56:15 +0000 (14:56 +0400)]
0024203: Command "sameparameter" in DRAW on attached edge set tolerance equal to 116.
Main problem:
Algorithm of locale extrema, which is called by "sameparameter" command, cannot find extrema because extremal point is far from initial point. Therefore, reparametrization of edge's curve (for same-parameter) cannot be made properly.
Solve:
Using of global extrema (see Approx_SameParameter.cxx).
As the given edge contains two 2d-curves and the second from them is problem, for select needed curve, an interface of "mk2dcurve" DRAW-command is changed. Now there can be used an index of curve (by default, index = 1, as earlier), see help for more detail information.
Test "heal advanced Z3":
Now checkshape finds only two invalid subshapes. Earlier, it found four subshapes. I think it is not regression. Therefore, test case was changed.
dln [Thu, 23 Jan 2014 09:50:42 +0000 (13:50 +0400)]
0024552: Convertation of the generic classes to the non-generic (BndLib).
Package "BndLib":
Functionality of the files "BndLib_Compute.gxx", "BndLib_Compute2d.cxx" and "BndLib_Compute3d.cxx" (methods Compute(...) for 2d and 3d cases) moved to BndLib.cxx (to the template method Compute(...)). For that had to edit work with points and coordinates a little i.e. method Compute(...) was updated and some methods where Compute(..) is called in "BndLib.cxx".
Roman Lygin [Thu, 23 Jan 2014 09:37:50 +0000 (13:37 +0400)]
0024533: Use 0 to check null handle instead of UndefinedHandleAccess
Handle classes now use 0 as invalid value for pointer instead of custom (and platform-dependent) value like 0xfefd0000.
Compiler macros UndefinedHandleAddress and _OCC64 are eliminated.
dln [Tue, 21 Jan 2014 11:59:23 +0000 (15:59 +0400)]
0024545: Convertation of the generic classes to the non-generic (XmlObjMgt).
In the package "XmlObjMgt" class "XmlObjMgt_Array1" was converted to the non-generic.
And some changes were made in "XmlNaming" package for correct compilation of the application.
dbp [Wed, 22 Jan 2014 15:07:53 +0000 (19:07 +0400)]
0024479: Ray Tracing mode does not work in Qt IE sample
Implementation of Ray Tracing mode in standard Qt sample
Fix compile warnings in Qt samples.
Fix tabs in Common-string.ts.
Update Code style.
0024415: Update QT samples
Code which was based on QT3 was removed. Some bugs and warnings has been also fixed.
Porting from QT4 to QT5 sample files.