View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0021004 | Open CASCADE | OCCT:Application Framework | public | 2009-04-01 16:09 | 2012-01-11 14:24 |
Reporter | Assigned To | ||||
Priority | normal | Severity | feature | ||
Status | closed | Resolution | fixed | ||
OS | All | ||||
Fixed in Version | 6.3.1 | ||||
Summary | 0021004: Naming mechanism improvement | ||||
Description | The attached patch is result of the development process inside Samcef Maintenance project. It sufficiently improves quality and safety of the Topological naming of the specified shape performed by TNaming package. Now Naming alows: - to keep (in case of need) the selected shape orientation - guarantee that the selected shape is belong to the Context - treats all aggregation shapes (Compounds, Shells and etc.) - correctly recomputes results of multipple selection - extends data definition if the selected shape is Wire - fixes set of pure bugs. | ||||
Additional information and documentation updates | Documentation remark, added by SZY 2009-05-15 12:33:55: New features: Now Naming allows: - to keep (in case of need) the selected shape orientation - guarantee that the selected shape belongs to the Context - treats all aggregation shapes (Compounds, Shells and etc.) - extends data definition if the selected shape is Wire - correct recomputation of results after multipple selection Improvements: Changes: The content of the next packages is modified: BinLDrivers BinMNaming MNaming PNaming TNaming TopTools XmlLDrivers XmlMNaming Modified entities: TNaming: -------- TNaming.cdl TNaming.cxx TNaming_Identifier.cxx TNaming_Name.cdl TNaming_Name.cxx TNaming_NamedShape.cxx TNaming_Naming.cdl TNaming_Naming.cxx TNaming_NamingTool.cxx TNaming_Selector.cdl TNaming_Selector.cxx TNaming_Tool.cxx PNaming: ------- PNaming.cdl PNaming_Name_1.cdl PNaming_Name_1.cxx PNaming_Name_1.lxx PNaming_Naming_1.cdl PNaming_Naming_1.cxx MNaming: ------- MNaming.cdl MNaming.cxx MNaming_NamingRetrievalDriver_1.cdl MNaming_NamingRetrievalDriver_1.cxx MNaming_NamingStorageDriver.cxx TopTools: -------- TopTools.cdl BinMNaming: ---------- BinMNaming.cdl BinMNaming.cxx BinMNaming_NamingDriver.cxx BinLDrivers: ----------- BinLDrivers.cdl BinLDrivers.cxx BinLDrivers_DocumentRetrievalDriver.cxx XmlMNaming: ---------- XmlMNaming.cdl XmlMNaming.cxx XmlMNaming_NamingDriver.cxx XmlLDrivers: ----------- XmlLDrivers.cxx XmlLDrivers_DocumentRetrievalDriver.cxx Basic modifications are done in TNaming package. Modifications made in all other packages serves only for persistance maintenance. TNaming package main modifications in API. ----------------------------------------- 1)Enumeration TNaming_NameType is extended for several members: ... ORIENTATION, WIREIN 2)New package methods: FindUniqueContext(S : Shape from TopoDS; Context : Shape from TopoDS) returns Shape from TopoDS; ---Purpose: Find unique context of shape <S> FindUniqueContextSet(S : Shape from TopoDS; Context : Shape from TopoDS; Arr : in out HArray1OfShape from TopTools) returns Shape from TopoDS; ---Purpose: Find unique context of shape <S>,which is pure concatenation -- of atomic shapes (Compound). The result is concatenation of -- single contexts 3)TNaming_Selector class. API of Select method is changed: Select (me; Selection : Shape from TopoDS; Context : Shape from TopoDS; Geometry : Boolean = Standard_False; KeepOrientatation : Boolean = Standard_False) returns Boolean from Standard; New boolean variable <KeepOrientatation> is added. By default KeepOrientatation = False. If KeepOrientatation = True than, than Orientation of selected shape will be taken into account during recomputation. 4)TNaming_Identifier.cxx - fixed small bug. 5)TNaming_Name class. -------------------- - added new field <myContextLabel> : Label from TDF; - added new method for ORIENTATION name solving static Standard_Boolean ORientation (const TDF_Label& L, const TDF_LabelMap& Valid, const TNaming_ListOfNamedShape& Args, const Handle(TNaming_NamedShape)& Stop); - added new method for WIREIN name solving static Standard_Boolean WireIN(const TDF_Label& L, const TDF_LabelMap& Valid, const TNaming_ListOfNamedShape& Args); - redisigned method for UNION name soving static Standard_Boolean Union (const TDF_Label& L, const TDF_LabelMap& Valid, const TNaming_ListOfNamedShape& Args, const Handle(TNaming_NamedShape)& Stop, const TopAbs_ShapeEnum ShapeType, const TDF_Label& ContextLabel); 6)TNaming_Naming class. ---------------------- a)Modified API of constructor. Name (myclass; where : Label from TDF; Selection : Shape from TopoDS; Context : Shape from TopoDS; Geometry : Boolean from Standard = Standard_False; KeepOrientation : Boolean from Standard = Standard_False; BNproblem : Boolean from Standard = Standard_False) returns NamedShape from TNaming; ---Purpose: Creates a Namimg attribute at label <where> to -- identify the shape <Selection>. Geometry is -- Standard_True if we are only interested by the -- underlying geometry (e.g. setting a -- constraint). <Context> is used to find neighbours of -- <S> when required by the naming. -- If KeepOrientation is True the Selection orientation is taken -- into account. BNproblem == True points out that Context sub-shapes -- in DF have orientation differences with Context shape itself. KeepOrientation & BNproblem boolean flags are new one. b)Modified general Naming data structure building mechanism. Last modifications makes procedure of Name data structures building: - recursive - takes into account selected shape orientation - treats aggregation shapes (Compounds, Shells ...) - introduce new names: ORIENTATION, WIREIN 7)TNaming_NamedShape class. Modified method void TNaming_Builder::Select (const TopoDS_Shape& S, const TopoDS_Shape& InS); Now node of old shape (not used before) is used to keep shape orientation in DF. 8)TNaming_Tool class. -------------------- Modified implementation of the next methods: - TNaming_Tool::GetShape(const Handle(TNaming_NamedShape)& NS); - TNaming_Tool::CurrentShape(const Handle(TNaming_NamedShape)& Att); - TNaming_Tool::CurrentShape(const Handle(TNaming_NamedShape)& Att, const TDF_LabelMap& Updated); 9)TNaming_NamingTool class. -------------------------- Modified implementation of the next methods - TNaming_NamingTool::CurrentShape(const TDF_LabelMap& Valid, const TDF_LabelMap& Forbiden, const Handle(TNaming_NamedShape)& Att, TopTools_MapOfShape& MS); - TNaming_NamingTool::CurrentShapeFromShape(const TDF_LabelMap& Valid, const TDF_LabelMap& Forbiden, const TDF_Label& Acces, const TopoDS_Shape& S, TopTools_MapOfShape& MS); | ||||
Tags | No tags attached. | ||||
Test case number | |||||
Date Modified | Username | Field | Change |
---|---|---|---|
2009-05-13 11:58 | bugmaster | Assigned To | bugmaster => szy |
2009-05-13 11:58 | bugmaster | Status | new => assigned |
2009-05-13 11:59 | bugmaster | Status | assigned => verified |
2009-06-25 13:21 | bugmaster | Status | verified => closed |
2009-06-25 13:21 | bugmaster | Resolution | @0@ => fixed |
2011-08-02 10:32 | bugmaster | Category | OCCT:OCAF => OCCT:Application Framework |
2012-01-11 14:24 |
|
Description Updated | |
2012-01-11 14:24 |
|
Additional Information Updated |