1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-16 10:08:36 +03:00

0032453: Documentation - nested multiline comments within BOPAlgo_CellsBuilder.hxx destroy Java wrapping

This commit is contained in:
kgv 2021-06-17 20:11:09 +03:00 committed by bugmaster
parent 168c27c69e
commit 690757a382

View File

@ -32,64 +32,60 @@
#include <TopTools_DataMapOfShapeInteger.hxx> #include <TopTools_DataMapOfShapeInteger.hxx>
#include <TopTools_DataMapOfShapeShape.hxx> #include <TopTools_DataMapOfShapeShape.hxx>
//! The algorithm is based on the General Fuse algorithm (GFA).
//! The result of GFA is all split parts of the Arguments.
//! //!
//! The algorithm is based on the General Fuse algorithm (GFA). The result of //! The purpose of this algorithm is to provide the result with the content of:
//! GFA is all split parts of the Arguments.<br> //! 1. Cells (parts) defined by the user;
//! 2. Internal boundaries defined by the user.
//! //!
//! The purpose of this algorithm is to provide the result with the content of:<br> //! In other words the algorithm should provide the possibility for the user to add
//! 1. Cells (parts) defined by the user;<br> //! or remove any part to (from) result and remove any internal boundaries between parts.
//! 2. Internal boundaries defined by the user.<br>
//! //!
//! In other words the algorithm should provide the possibility for the user //! All the requirements of GFA for the DATA are inherited in this algorithm.
//! to add or remove any part to (from) result and remove any internal boundaries //! The arguments could be of any type (dimension) and should be valid
//! between parts.<br> //! in terms of BRepCheck_Analyzer and BOPAlgo_ArgumentAnalyzer.
//! //!
//! Requirements for the Data:<br> //! Results:
//! All the requirements of GFA for the DATA are inherited in this algorithm -
//! The arguments could be of any type (dimension) and should be valid in terms of
//! BRepCheck_Analyzer and BOPAlgo_ArgumentAnalyzer.<br>
//! //!
//! Results:<br> //! The result of the algorithm is compound containing selected parts of the basic types (VERTEX, EDGE, FACE or SOLID).
//! The result of the algorithm is compound containing selected parts of //! The default result is empty compound.
//! the basic types (VERTEX, EDGE, FACE or SOLID). The default result //! It is possible to add any split part to the result by using the methods AddToRessult() and AddAllToResult().
//! is empty compound. It is possible to add any split part to the result //! It is also possible to remove any part from the result by using methods RemoveFromResult() and RemoveAllFromResult().
//! by using the methods AddToRessult() and AddAllToResult(). //! The method RemoveAllFromResult() is also suitable for clearing the result.
//! It is also possible to remove any part from the result by using methods
//! RemoveFromResult() and RemoveAllFromResult().
//! The method RemoveAllFromResult() is also suitable for clearing the result.<br>
//! //!
//! To remove Internal boundaries it is necessary to set the same material to the //! To remove Internal boundaries it is necessary to set the same material to the
//! parts between which the boundaries should be removed and call the method //! parts between which the boundaries should be removed and call the method RemoveInternalBoundaries().
//! RemoveInternalBoundaries(). The material should not be equal to 0, as this is //! The material should not be equal to 0, as this is default material value.
//! default material value. The boundaries between parts with this value //! The boundaries between parts with this value will not be removed.
//! will not be removed.
//! One part cannot be added with the different materials. //! One part cannot be added with the different materials.
//! It is also possible to remove the boundaries during combining the result. //! It is also possible to remove the boundaries during combining the result.
//! To do this it is necessary to set the material for parts (not equal to 0) //! To do this it is necessary to set the material for parts (not equal to 0) and set the flag bUpdate to TRUE.
//! and set the flag bUpdate to TRUE.
//! For the arguments of the types FACE or EDGE it is recommended //! For the arguments of the types FACE or EDGE it is recommended
//! to remove the boundaries in the end when the result is completely built. //! to remove the boundaries in the end when the result is completely built.
//! It will help to avoid self-intersections in the result.<br> //! It will help to avoid self-intersections in the result.
//!
//! Note, that if the result contains the parts with same material but of different //! Note, that if the result contains the parts with same material but of different
//! dimension the boundaries between such parts will not be removed. Currently, //! dimension the boundaries between such parts will not be removed.
//! the removal of the internal boundaries between multi-dimensional shapes is not supported.<br> //! Currently, the removal of the internal boundaries between multi-dimensional shapes is not supported.
//! //!
//! It is possible to create typed Containers from the parts added to result by using //! It is possible to create typed Containers from the parts added to result by using method MakeContainers().
//! method MakeContainers(). The type of the containers will depend on the type of //! The type of the containers will depend on the type of the arguments:
//! the arguments: WIRES for EEDGE, SHELLS for FACES and COMPSOLIDS for SOLIDS. //! WIRES for EEDGE, SHELLS for FACES and COMPSOLIDS for SOLIDS.
//! The result will be compound containing containers. //! The result will be compound containing containers.
//! Adding of the parts to such result will not update containers. The result //! Adding of the parts to such result will not update containers.
//! compound will contain the containers and new added parts (of basic type). //! The result compound will contain the containers and new added parts (of basic type).
//! Removing of the parts from such result may affect some containers if //! Removing of the parts from such result may affect some containers if
//! the parts that should be removed is in container. In this case this container //! the parts that should be removed is in container.
//! will be rebuilt without that part.<br> //! In this case this container will be rebuilt without that part.
//! //!
//! History:<br> //! History:
//! The algorithm supports history information for basic types of the shapes - //!
//! VERTEX, EDGE, FACE. This information available through the methods //! The algorithm supports history information for basic types of the shapes - VERTEX, EDGE, FACE.
//! IsDeleted() and Modified().<br> //! This information available through the methods IsDeleted() and Modified().
//! In DRAW Test Harness it is available through the same //!
//! commands as for Boolean Operations (bmodified, bgenerated and bisdeleted).<br> //! In DRAW Test Harness it is available through the same commands
//! as for Boolean Operations (bmodified, bgenerated and bisdeleted).
//! //!
//! The algorithm can return the following Error Statuses: //! The algorithm can return the following Error Statuses:
//! - Error status acquired in the General Fuse algorithm. //! - Error status acquired in the General Fuse algorithm.
@ -103,76 +99,78 @@
//! - BOPAlgo_AlertRemovalOfIBForEdgesFailed //! - BOPAlgo_AlertRemovalOfIBForEdgesFailed
//! - BOPAlgo_AlertRemovalOfIBForSolidsFailed //! - BOPAlgo_AlertRemovalOfIBForSolidsFailed
//! //!
//! The Warning status can be checked with HasWarnings() method or //! The Warning status can be checked with HasWarnings() method or printed with the DumpWarnings() method.
//! printed with the DumpWarnings() method. If warnings are recorded, //! If warnings are recorded, the result may be not as expected.
//! the result may be not as expected.<br>
//! //!
//! Examples:<br> //! Examples:
//! 1. API<br>
//! BOPAlgo_CellsBuilder aCBuilder;<br>
//! TopTools_ListOfShape aLS = ...; // arguments<br>
//! /* parallel or single mode (the default value is FALSE)*/<br>
//! Standard_Boolean bRunParallel = Standard_False;<br>
//! /* fuzzy option (default value is 0)*/<br>
//! Standard_Real aTol = 0.0;<br>
//! //<br>
//! aCBuilder.SetArguments(aLS);<br>
//! aCBuilder.SetRunParallel(bRunParallel);<br>
//! aCBuilder.SetFuzzyValue(aTol);<br>
//! //<br>
//! aCBuilder.Perform();<br>
//! if (aCBuilder.HasErrors()) { // check error status<br>
//! return;<br>
//! }<br>
//! /* empty compound, as nothing has been added yet */<br>
//! const TopoDS_Shape& aRes = aCBuilder.Shape();<br>
//! /* all split parts */<br>
//! const TopoDS_Shape& aRes = aCBuilder.GetAllParts();<br>
//! //<br>
//! TopTools_ListOfShape aLSToTake = ...; // parts of these arguments will be taken into result<br>
//! TopTools_ListOfShape aLSToAvoid = ...; // parts of these arguments will not be taken into result<br>
//! //<br>
//! /* defines the material common for the cells, i.e.
//! the boundaries between cells with the same material
//! will be removed.<br>
//! By default it is set to 0. Thus, to remove some boundary
//! the value of this variable should not be equal to 0 */<br>
//! Standard_Integer iMaterial = ...;<br>
//! /* defines whether to update the result right now or not */<br>
//! Standard_Boolean bUpdate = ...;<br>
//! // adding to result<br>
//! aCBuilder.AddToResult(aLSToTake, aLSToAvoid, iMaterial, bUpdate);<br>
//! aR = aCBuilder.Shape(); // the result<br>
//! // removing of the boundaries (should be called only if bUpdate is false)<br>
//! aCBuilder.RemoveInternalBoundaries();<br>
//! //<br>
//! // removing from result<br>
//! aCBuilder.AddAllToResult();<br>
//! aCBuilder.RemoveFromResult(aLSToTake, aLSToAvoid);<br>
//! aR = aCBuilder.Shape(); // the result<br>
//! <br>
//! //!
//! 2. DRAW Test Harness<br> //! 1. API
//! psphere s1 15<br> //! @code
//! psphere s2 15<br> //! BOPAlgo_CellsBuilder aCBuilder;
//! psphere s3 15<br> //! TopTools_ListOfShape aLS = ...; // arguments
//! ttranslate s1 0 0 10<br> //! // parallel or single mode (the default value is FALSE)
//! ttranslate s2 20 0 10<br> //! bool toRunParallel = false;
//! ttranslate s3 10 0 0<br> //! // fuzzy option (default value is 0)
//! \# adding arguments<br> //! Standard_Real aTol = 0.0;
//! bclearobjects; bcleartools<br> //! //
//! baddobjects s1 s2 s3<br> //! aCBuilder.SetArguments (aLS);
//! \# intersection<br> //! aCBuilder.SetRunParallel (toRunParallel);
//! bfillds<br> //! aCBuilder.SetFuzzyValue (aTol);
//! \# rx will contain all split parts<br> //! //
//! bcbuild rx<br> //! aCBuilder.Perform();
//! \# add to result the part that is common for all three spheres<br> //! if (aCBuilder.HasErrors()) // check error status
//! bcadd res s1 1 s2 1 s3 1 -m 1<br> //! {
//! \# add to result the part that is common only for first and third spheres<br> //! return;
//! bcadd res s1 1 s2 0 s3 1 -m 1<br> //! }
//! \# remove internal boundaries<br> //! // empty compound, as nothing has been added yet
//! bcremoveint res<br> //! const TopoDS_Shape& aRes = aCBuilder.Shape();
//! // all split parts
//! const TopoDS_Shape& aRes = aCBuilder.GetAllParts();
//! //
//! TopTools_ListOfShape aLSToTake = ...; // parts of these arguments will be taken into result
//! TopTools_ListOfShape aLSToAvoid = ...; // parts of these arguments will not be taken into result
//! //
//! // defines the material common for the cells,
//! // i.e. the boundaries between cells with the same material will be removed.
//! // By default it is set to 0.
//! // Thus, to remove some boundary the value of this variable should not be equal to 0.
//! Standard_Integer iMaterial = ...;
//! // defines whether to update the result right now or not
//! bool toUpdate = ...;
//! // adding to result
//! aCBuilder.AddToResult (aLSToTake, aLSToAvoid, iMaterial, toUpdate);
//! aR = aCBuilder.Shape(); // the result
//! // removing of the boundaries (should be called only if toUpdate is false)
//! aCBuilder.RemoveInternalBoundaries();
//! //
//! // removing from result
//! aCBuilder.AddAllToResult();
//! aCBuilder.RemoveFromResult (aLSToTake, aLSToAvoid);
//! aR = aCBuilder.Shape(); // the result
//! @endcode
//! //!
//! 2. DRAW Test Harness
//! @code
//! psphere s1 15
//! psphere s2 15
//! psphere s3 15
//! ttranslate s1 0 0 10
//! ttranslate s2 20 0 10
//! ttranslate s3 10 0 0
//! # adding arguments
//! bclearobjects; bcleartools
//! baddobjects s1 s2 s3
//! # intersection
//! bfillds
//! # rx will contain all split parts
//! bcbuild rx
//! # add to result the part that is common for all three spheres
//! bcadd res s1 1 s2 1 s3 1 -m 1
//! # add to result the part that is common only for first and third spheres
//! bcadd res s1 1 s2 0 s3 1 -m 1
//! # remove internal boundaries
//! bcremoveint res
//! @endcode
class BOPAlgo_CellsBuilder : public BOPAlgo_Builder class BOPAlgo_CellsBuilder : public BOPAlgo_Builder
{ {
public: public: