Commit Graph

23 Commits

Author SHA1 Message Date
emv 13c0e40223 0030145: Modeling Algorithms - Boolean Operations on open solids
Provide possibility to perform Boolean operations on open solids.

Implementation of the new method *BOPAlgo_Builder::BuildBOP* performing the construction of the result shape for the given type of Boolean operation.
This approach does not rely on the splits of solid to be correct and looks for the faces with necessary state relatively opposite solids to build the result solid.
The call to this method is performed from BOP algorithm in case there were open solids in the arguments.

Implementation of the draw command *buildbop* performing a call to the method above.
2018-10-03 19:21:14 +03:00
kgv b2d1851c43 0029814: Modeling Data - add method TopoDS_Shape::NbChildren() for simple check of sub-shapes number
TopoDS_Shape::NbChildren() - new method has been introduced.
TopoDS_Shape.lxx, TopoDS_TShape.lxx - inline methods have been moved to hxx.
TopoDS_TShape_Flags has been redeclared as enumeration instead of preprocessor macros.

Cyclic dependency between headers TopoDS_Shape.hxx and TopoDS_TShape.hxx eliminated.

Places where TopoDS_Iterator is used only for calculation of number of sub-shapes are updated to use NbChildren() instead
2018-06-14 14:03:09 +03:00
kgv 25e59720d6 0028832: MMgt_TShared can be replaced by Standard_Transient 2017-07-06 13:18:13 +03:00
emv 33ba856502 0028786: Refactoring of the Warning/Error reporting system of Boolean Operations Algorithm
0. Basic tools for defining classes representing alerts (errors, warnings etc.) and collecting them during execution of algorithms are added in Message package.

1. Refactoring of the Error/Warning reporting system of the algorithms in Boolean Component.
   To dump the description of the Error/Warning status of the algorithm the DumpErrors/DumpWarnings method should be called.
   Also, the methods GerErrorMsg(int Error) and GetWarningMsg(int Warning) have been implemented to get the description for the given Error/Warning.
   All Error/Warning statuses are now listed in the enumeration ErrorStatusEnum/WarningStatusEnum of the algorithm.
   It is also possible to get the shapes for which the warning has been set by using the method GetWarningShapes().

2. The new class BOPAlgo_Options has been created to unify the options of the BOPAlgo_* and BRepAlgoAPI* algorithms.

3. The new checks across the algorithms have been added to detect and report errors and warnings.

4. Test cases
  boolean bopcut_complex B9 E1 E5 E8
  boolean bopfuse_complex B4 B5 C9 D1 D4 D5 D6 D7
have been rewritten to use Cells Builder algorithm instead of Boolean Operations algorithm, because latter always returns error "Unsupported Boolean operation" for these cases.

5. New chapter has been added in the user guide for Boolean Operations - Error / Warning reporting system.

6. Added comment to NCollection_List::Remove(Iterator&)
2017-07-06 12:41:56 +03:00
kgv 9fd2d2c382 0028838: Configuration - undefine macros coming from X11 headers in place of collision
The macros Status, Convex, Opposite, FillSolid (coming from X11 headers)
are now undefined in place of definition of methods with same name in OCCT headers.
The usage of variables with name Status is now avoided.

GL_GLEXT_LEGACY is now defined only if not already defined.

The macros AddPrinter (coming from WinAPI headers) is now undefined
within Message_Messenger class definition having method with the same name.
CurrentDirectory macro is now undefined in OSD_Process.hxx.
2017-06-15 15:27:36 +03:00
ski 9775fa6110 0026937: Eliminate NO_CXX_EXCEPTION macro support
Macro NO_CXX_EXCEPTION was removed from code.
Method Raise() was replaced by explicit throw statement.
Method Standard_Failure::Caught() was replaced by normal C++mechanism of exception transfer.
Method Standard_Failure::Caught() is deprecated now.
Eliminated empty constructors.
Updated samples.
Eliminate empty method ChangeValue from NCollection_Map class.
Removed not operable methods from NCollection classes.
2017-02-02 16:35:54 +03:00
ski 536a3cb80c 0027525: Coding - eliminate warnings on Windows for OCCT with static type of libraries
Useless *.cxx files were removed to eliminate linker warning LNK4221.

Package TopOpeBRepDS was cleaned up from old debugging routines.

Merged OSD_signal_WNT.cxx into OSD_signal.cxx

Class Standard_ErrorHandlerCallback was moved into the Standard_ErrorHandler class as nested class Callback

Eliminated warning about unused variable.
2016-07-14 13:21:33 +03:00
bugmaster d94fa32ef9 0024677: Control of license statements and non-ascii characters in integrated code
Update of license statements and non-ascii characters
2016-01-28 12:36:35 +03:00
abv 92efcf78a6 0026936: Drawbacks of inlining in new type system in OCCT 7.0 -- automatic
Automatic restore of IMPLEMENT_STANDARD_RTTIEXT macro (upgrade -rtti)
2015-12-04 14:15:06 +03:00
abv 79104795a1 0026912: CLang 3.6.2 compiler warning [-Winconsistent-missing-override] 2015-11-23 14:58:23 +03:00
abv c60ae7f6b1 0024002: Overall code and build procedure refactoring -- manual
Documentation comments (mostly to package items, in package CDL) lost by CDL extraction are transferred to headers manually.
Some wrong comments (artifacts of CDL-generated code) are removed.
Missing header files added.
Yacc and Lex files removed from StepFile/FILES to avoid problems when building by WOK

Conflicts:
	src/BRepOffsetAPI/BRepOffsetAPI_Sewing.hxx
	src/Quantity/Quantity_AbsorbedDose.hxx
	src/Quantity/Quantity_Acceleration.hxx
	src/Quantity/Quantity_AcousticIntensity.hxx
	src/Quantity/Quantity_Activity.hxx
	src/Quantity/Quantity_Admittance.hxx
	src/Quantity/Quantity_AmountOfSubstance.hxx
	src/Quantity/Quantity_AngularVelocity.hxx
	src/Quantity/Quantity_Area.hxx
	src/Quantity/Quantity_Capacitance.hxx
	src/Quantity/Quantity_CoefficientOfExpansion.hxx
	src/Quantity/Quantity_Concentration.hxx
	src/Quantity/Quantity_Conductivity.hxx
	src/Quantity/Quantity_Consumption.hxx
	src/Quantity/Quantity_Density.hxx
	src/Quantity/Quantity_DoseEquivalent.hxx
	src/Quantity/Quantity_ElectricCapacitance.hxx
	src/Quantity/Quantity_ElectricCharge.hxx
	src/Quantity/Quantity_ElectricCurrent.hxx
	src/Quantity/Quantity_ElectricFieldStrength.hxx
	src/Quantity/Quantity_ElectricPotential.hxx
	src/Quantity/Quantity_Energy.hxx
	src/Quantity/Quantity_Enthalpy.hxx
	src/Quantity/Quantity_Entropy.hxx
	src/Quantity/Quantity_Force.hxx
	src/Quantity/Quantity_Frequency.hxx
	src/Quantity/Quantity_Illuminance.hxx
	src/Quantity/Quantity_Impedance.hxx
	src/Quantity/Quantity_Inductance.hxx
	src/Quantity/Quantity_KinematicViscosity.hxx
	src/Quantity/Quantity_KineticMoment.hxx
	src/Quantity/Quantity_Length.hxx
	src/Quantity/Quantity_Luminance.hxx
	src/Quantity/Quantity_LuminousEfficacity.hxx
	src/Quantity/Quantity_LuminousExposition.hxx
	src/Quantity/Quantity_LuminousFlux.hxx
	src/Quantity/Quantity_LuminousIntensity.hxx
	src/Quantity/Quantity_MagneticFieldStrength.hxx
	src/Quantity/Quantity_MagneticFlux.hxx
	src/Quantity/Quantity_MagneticFluxDensity.hxx
	src/Quantity/Quantity_Mass.hxx
	src/Quantity/Quantity_MassFlow.hxx
	src/Quantity/Quantity_MolarConcentration.hxx
	src/Quantity/Quantity_MolarMass.hxx
	src/Quantity/Quantity_MolarVolume.hxx
	src/Quantity/Quantity_Molarity.hxx
	src/Quantity/Quantity_MomentOfAForce.hxx
	src/Quantity/Quantity_MomentOfInertia.hxx
	src/Quantity/Quantity_Momentum.hxx
	src/Quantity/Quantity_PlaneAngle.hxx
	src/Quantity/Quantity_Power.hxx
	src/Quantity/Quantity_Pressure.hxx
	src/Quantity/Quantity_Reluctance.hxx
	src/Quantity/Quantity_Resistance.hxx
	src/Quantity/Quantity_Resistivity.hxx
	src/Quantity/Quantity_SolidAngle.hxx
	src/Quantity/Quantity_SoundIntensity.hxx
	src/Quantity/Quantity_SpecificHeatCapacity.hxx
	src/Quantity/Quantity_Speed.hxx
	src/Quantity/Quantity_SurfaceTension.hxx
	src/Quantity/Quantity_Temperature.hxx
	src/Quantity/Quantity_ThermalConductivity.hxx
	src/Quantity/Quantity_Torque.hxx
	src/Quantity/Quantity_Velocity.hxx
	src/Quantity/Quantity_Viscosity.hxx
	src/Quantity/Quantity_Volume.hxx
	src/Quantity/Quantity_VolumeFlow.hxx
	src/Quantity/Quantity_Weight.hxx
	src/Quantity/Quantity_Work.hxx
	src/V3d/V3d_Coordinate.hxx
2015-07-12 12:30:00 +03:00
abv 42cf5bc1ca 0024002: Overall code and build procedure refactoring -- automatic
Automatic upgrade of OCCT code by command "occt_upgrade . -nocdl":
- WOK-generated header files from inc and sources from drv are moved to src
- CDL files removed
- All packages are converted to nocdlpack
2015-07-12 07:42:38 +03:00
abv c04c30b3ee 0024023: Revamp the OCCT Handle -- general
Missing headers added; includes of headers "Handle_...hxx" removed.

Misuses of macro Handle() and its use in typedefs corrected.

Alias classes Profile and Option are removed from IFSelect; ones defined in MoniTool are used directly.

Removed header files defining only Handle classes (except Image_PixMap_Handle.hxx)

Classes SelectMgr_BaseFrustum and now inherit Standard_Transient and can be manipulated by Handle (not NCollection_Handle)

Fixed reference-type local variable pointing to temporary object

Use of handle in conditional expressions and comparisons to NULL are replaced by call to method IsNull()
2015-07-11 12:08:02 +03:00
abv b7c077b9ee 0024750: Replace instantiations of TCollection generic classes by NCollection templates -- manual changes
Forward declaration of TCollection instances as classes are replaced by inclusion of corresponding header.
Cyclic dependencies between declaration of collection class and its item are resolved by forward declaring a class in collection header.
2015-07-11 12:01:54 +03:00
abv df8d39700d 0024750: Replace instantiations of TCollection generic classes by NCollection templates -- automatic
Automatic upgrade of code by command "occt_upgrade . -tcollection"
2015-07-11 12:01:52 +03:00
azv da72a17c80 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.
2015-01-22 17:37:32 +03:00
ink ebfb9ce298 0024876: Add protection of shapes against modification of geometry
Added flag "locked" for protection of geometric data in the shapes (including tolerances).
Modification test case to avoid regression.
2014-07-10 14:42:49 +04:00
ski ff8178ef85 0024784: Move documentation in CDL files to proper location
Mostly duplicated comments were removed and missing ones were moved
into dedicated class CDL files.
Some more duplicated comments were removed from CDL files.
Correction of merge
2014-05-29 16:06:49 +04:00
abv 6e33d3ced2 0024830: Remove redundant keyword 'mutable' in CDL declarations
Redundant keyword 'mutable' removed in CDL files.
In IGESConvGeom_GeomBuilder, unused methods MakeXY() and MakeXYZ() removed.
Method StepAP214_AutoDesignGroupAssignment::Init() replicating same method of the base class is removed as it causes CDL extraction error after above (seemingly irrelevant) changes.
2014-05-29 14:58:25 +04:00
abv d5f74e42d6 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.
2014-02-20 16:15:17 +04:00
bugmster 973c2be1e1 0024428: Implementation of LGPL license
The copying permission statements at the beginning of source files updated to refer to LGPL.
Copyright dates extended till 2014 in advance.
2013-12-17 12:42:41 +04:00
bugmaster b311480ed5 0023024: Update headers of OCCT files
Added appropriate copyright and license information in source files
2012-03-21 19:43:04 +04:00
bugmaster 7fd59977df Integration of OCCT 6.5.0 from SVN 2012-03-05 19:23:40 +04:00