⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 attribute_notification_methods.htm

📁 acis说明文档
💻 HTM
📖 第 1 页 / 共 3 页
字号:
</p><a name="split_owner"></a><h2> <span class="mw-headline"> <code>split_owner</code> </span></h2><pre class="source-cpp"><span class="kw2">virtual</span> <span class="kw4">void</span> split_owner<span class="br0">&#40;</span> <span class="kw7">ENTITY</span> *<span class="kw7">new_entity</span> <span class="br0">&#41;</span>;</pre><p>The split_owner method notifies "this" attribute that its owner has been split. The new portion of the split is given as input, "new_entity".</p><p>Applications can specify how they want their attribute to behave in this method by either:</p><ul><li> Setting the split_owner action in their attributes constructor.</li><li> Implementing this method directly.</li></ul><p>Use the ATTRIB::set_split_owner_action method to set a split_owner action. The types of split_owner actions available are:</p><ul><li><b>SplitLose</b> - Lose the attribute if its owner is split.</li><li><b>SplitKeep</b> - Do nothing if the owner is split. <i>Default</i>.</li><li><b>SplitCopy</b> - Create a new instance of the attribute on the new entity (using ATTRIB::duplicate()).</li></ul><p>In the event a complex attribute has its split_owner action set to SplitCopy, ACIS creates a new instance of that complex attribute on the "new_entity"; the caveat, however, is that all entity pointers (other than the <i>owner_ptr</i>) will be set to NULL.</p><p>If the split_owner actions are not sufficient to meet your attributes specific needs, then the split_owner method may be implemented directly.</p><div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:182px;"><a href="/r18/index.php/Image:SPAkern_att_image004.gif" title="Image:SPAkern att image004.gif">Image:SPAkern att image004.gif</a>  <div class="thumbcaption">Split Entity</div></div></div></div><a name="merge_owner"></a><h2> <span class="mw-headline"> <code>merge_owner</code> </span></h2><pre class="source-cpp"><span class="kw2">virtual</span> <span class="kw4">void</span> merge_owner<span class="br0">&#40;</span> <span class="kw7">ENTITY</span> * entity, <span class="kw5">logical</span> del_owner <span class="br0">&#41;</span>;</pre><p>The merge_owner method notifies "this" attribute that its owner has been merged. The process of merging implies that one of the two entities involved in the merge is lost during the merge process. Of these two entities, the <i>go-ent</i> is defined as the entity that is going away, and the <i>keep-ent</i>, as the entity that is being kept.</p><blockquote class="templatequote"><div><p><i><b>Note:</b>  merge_owner is called twice for a merge: once for all attributes on the </i>go-ent<i>, and once for all attributes on the </i>keep-ent<i>: </i></p></div></blockquote><ul><li> Once with del_owner set to TRUE, which means "this" attributes owner is the <i>go-ent</i>, and the input "entity" is the <i>keep-ent</i>.</li><li> Once with del_owner set to FALSE, which means "this" attributes owner is the <i>keep-ent</i>, and the input "entity" is the <i>go-ent</i>.</li></ul><p>Applications can specify how they want their attribute to behave in this method by either:</p><ul><li> Setting the merge_owner action in their attributes constructor.</li><li> Implementing this method directly.</li></ul><p>Use the ATTRIB::set_merge_owner_action method to set a merge_owner action. The types of merge_owner actions available are:</p><ul><li> <b>MergeLose</b> - Lose the attribute if its owner is merged.</li><li> <b>MergeKeepKept</b> - Do nothing if the owner is merged. <i>Default</i>.</li><li> <b>MergeKeepLost</b> - Transfer attribute from entity being lost to entity being kept.</li><li> <b>MergeKeepAll</b> - Move attribute from entity being lost to entity being kept.</li></ul><p>If the merge_owner actions are not sufficient to meet your attributes specific needs, then the merge_owner method may be implemented directly.</p><div class="center"><div class="thumb tnone"><div class="thumbinner" style="width:182px;"><a href="/r18/index.php/Image:SPAkern_att_image006.gif" title="Image:SPAkern att image006.gif">Image:SPAkern att image006.gif</a>  <div class="thumbcaption">Merging Entities</div></div></div></div><a name="trans_owner"></a><h2> <span class="mw-headline"> <code>trans_owner</code> </span></h2><pre class="source-cpp"><span class="kw2">virtual</span> <span class="kw4">void</span> trans_owner<span class="br0">&#40;</span> <span class="kw4">const</span> <span class="kw5">SPAtransf</span> &amp;transf <span class="br0">&#41;</span>;</pre><p>The trans_owner method notifies "this" attribute that its owner has been transformed. The transform is given as input.</p><p>Applications can specify how they want their attribute to behave in this method by either:</p><ul><li> Setting the trans_owner action in their attributes constructor.</li><li> Implementing this method directly.</li></ul><p>Use the ATTRIB::set_trans_owner_action method to set a trans_owner action. The types of trans_owner actions available are:</p><ul><li><b>TransLose</b> - Lose the attribute if its owner is transformed.</li><li><b>TransIgnore</b> - Do nothing if the owner is transformed. <i>Default</i>.</li></ul><p>If the trans_owner actions are not sufficient to meet your attributes specific needs, then the trans_owner method may be implemented directly.</p><a name="to_tolerant_owner_and_from_tolerant_owner"></a><h2> <span class="mw-headline"> <code>to_tolerant_owner</code> and <code>from_tolerant_owner</code> </span></h2><pre class="source-cpp"><span class="kw2">virtual</span> <span class="kw4">void</span> to_tolerant_owner<span class="br0">&#40;</span> <span class="kw7">ENTITY</span> *tol_ent <span class="br0">&#41;</span>;<span class="kw2">virtual</span> <span class="kw4">void</span> from_tolerant_owner<span class="br0">&#40;</span> <span class="kw7">ENTITY</span> *non_tol_ent <span class="br0">&#41;</span>;</pre><p>The to_ and from_tolerant_owner methods notify "this" attribute that its owner is being lost and is being replaced by a new, tolerant owner (to_tolerant_owner); or new, non-tolerant (from_tolerant_owner). The new owner is given as input.</p><p>Applications can specify how they want their attribute to behave in these methods by either:</p><ul><li> Setting the to_tolerant_owner/from_tolerant_owner actions in their attributes constructor.</li><li> Implementing these methods directly.</li></ul><p>Use the ATTRIB::set_to_tolerant_owner_action/ATTRIB::set_from_tolerant_owner_action method to set a tolerant_owner action. The types of tolerant_owner actions available are:</p><ul><li> <b>TolerantLose</b> - Lose the attribute if its owner is made tolerant/non-tolerant.</li><li> <b>TolerantMove</b> - Move the attribute to the new owner (only possible if "this" attribute returns moveable() == TRUE). <i>Default</i>.</li></ul><p>If the tolerant_owner actions are not sufficient to meet your attributes specific needs, then the to_tolerant_owner/from_tolerant_owner methods may be implemented directly.</p><pre class="source-cpp"><span class="kw2">virtual</span> <span class="kw4">void</span> replace_owner<span class="br0">&#40;</span> <span class="kw7">ENTITY</span> *other_entity, <span class="kw5">logical</span> replace_owner <span class="br0">&#41;</span>;</pre><p>The replace_owner method notifies "this" attribute that its owner is being replaced by a new owner. The process of replacing implies that one of the two entities involved will be lost during the replacement process. Of these two entities, we define the <i>go-ent</i> as the entity that is going away, and the <i>keep-ent</i> as the entity that is being kept.</p><blockquote class="templatequote"><div><p><i><b>Note:</b>  replace_owner will be called twice for a replacement: once for all attributes on the </i>go-ent<i>, and once for all attributes on the keep-ent:</i></p></div></blockquote><ul><li> Once with replace_owner set to TRUE, which means "this" attributes owner is the <i>go-ent</i>, and the input "entity" is the <i>keep-ent</i>.</li><li> Once with replace_owner set to FALSE, which means "this" attributes owner is the <i>keep-ent</i>, and the input "entity" is the <i>go-ent</i>.</li></ul><p>Applications can specify how they want their attribute to behave in this method by either:</p><ul><li> Setting the replace_owner action in their attributes constructor.</li><li> Implementing this method directly.</li></ul><p>Use the ATTRIB::set_replace_owner_action method to set a replace_owner action. The types of replace_owner actions available are:</p><ul><li><b>ReplaceLose</b> - Lose the attribute if its owner is replaced.</li><li><b>ReplaceKeepKept</b> - Keep the attribute on the entity being kept. <i>Default</i>.</li><li><b>ReplaceKeepLost</b> - Move the attribute from the entity going away to the entity being kept, lose any on kept.</li><li><b>ReplaceKeepAll</b> - Move the attribute from the entity going away to the entity being kept, keep any on kept.</li></ul><p>If the replace_owner actions are not sufficient to meet your attributes specific needs, then the replace_owner method may be implemented directly.</p><a name="lop_change_owner"></a><h2> <span class="mw-headline"> <code>lop_change_owner</code> </span></h2><pre class="source-cpp"><span class="kw2">virtual</span> <span class="kw4">void</span> lop_change_owner<span class="br0">&#40;</span><span class="br0">&#41;</span>;</pre><p>The lop_change_owner method notifies "this" attribute that its owner has somehow been geometrically (or possibly topologically) changed by a local-operation. The specific nature of the change is not known to the attribute.</p><p>Applications can specify how they want their attribute to behave in this method by either:</p><ul><li> Setting the lop_change_owner action in their attributes constructor.</li><li> Implementing this method directly.</li></ul><p>Use the ATTRIB::set_lop_change_owner_action method to set a lop_change_owner action. The types of lop_change_owner actions available are:</p><ul><li> <b>GeomChangedLose</b> - Lose the attribute if its owner is geometrically changed.</li><li> <b>GeomChangedKeep</b> - Do nothing if the owner is geometrically changed. <i>Default</i>.</li></ul><p>If the lop_change_owner actions are not sufficient to meet your attributes specific needs, then the lop_change_owner method may be implemented directly.</p><a name="replace_owner_geometry"></a><h2> <span class="mw-headline"> <code>replace_owner_geometry</code> </span></h2><pre class="source-cpp"><span class="kw2">virtual</span> <span class="kw4">void</span> replace_owner_geometry<span class="br0">&#40;</span><span class="kw7">ENTITY</span> *new_geom<span class="br0">&#41;</span>;</pre><p>The replace_owner_geometry method notifies "this" attribute that its owner is to receive new <a href="/r18/index.php?title=Geometry&amp;action=edit" class="new" title="Geometry">geometry</a>. The new geometry is given as input.</p><p>Applications can specify how they want their attribute to behave in this method by either:</p><ul><li> Setting the replace_owner_geometry action in their attributes constructor.</li><li> Implementing this method directly.</li></ul><p>Use the ATTRIB::set_rep_owner_geom_action method to set a replace_owner_geometry action. The types of replace_owner_geometry actions available are:</p><ul><li><b>GeomChangedLose</b> - Lose the attribute if its owner is geometrically changed.</li><li><b>GeomChangedKeep</b> - Do nothing if the owner is geometrically changed. <i>Default</i>.</li></ul><p>If the replace_owner_geometry actions are not sufficient to meet your attributes specific needs, then the replace_owner_geometry method may be implemented directly.</p><a name="reverse_owner"></a><h2> <span class="mw-headline"> <code>reverse_owner</code> </span></h2><pre class="source-cpp"><span class="kw2">virtual</span> <span class="kw4">void</span> reverse_owner<span class="br0">&#40;</span><span class="br0">&#41;</span>;</pre><p>The reverse_owner method notifies "this" attribute that its owners sense bit is about to be reversed.</p><p>Applications can specify how they want their attribute to behave in this method by either:</p><ul><li> Setting the reverse_owner action in their attributes constructor.</li><li> Implementing this method directly.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -