<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: ssgetRolloverFilter in ObjectARX Forum</title>
    <link>https://forums.autodesk.com/t5/objectarx-forum/ssgetrolloverfilter/m-p/4829819#M12695</link>
    <description>&lt;P&gt;We used to provide more samples with the ObjectARX SDK, unfortunately those are not fully included any more with the latest versions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here I am attaching the "entity" samples from ObjectARX 2009. You will find some fully implemented examples illustrating how to work with subentities.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I quickly migrated the SubEntity sample, but I couldn't migrate the COM wrapper part of it, so I removed it. According to the description of the sample, it seems to be what you are looking for, you can find the non-migrated samples in the zip:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;SPAN style="font-family: Arial;"&gt;The SubEntity sample application demonstrates the APIs for sub-entity selection manipulation.&lt;BR clear="none" /&gt; The sample demonstrates the following sub-entity selection manipulation features:&lt;BR clear="none" /&gt; &lt;BR clear="none" /&gt; 1) Supports sub-entity selection and extracting the sub-entity information from the selection sets&lt;BR clear="none" /&gt; 2) Provide right-click menu support on selected sub-entities&lt;BR clear="none" /&gt; 3) Sub-entity grips on selected sub-entities&lt;BR clear="none" /&gt; 4) Implements COM wrapper for the sub-entities&lt;/SPAN&gt;&lt;/EM&gt;&lt;/P&gt;</description>
    <pubDate>Fri, 21 Feb 2014 11:12:55 GMT</pubDate>
    <dc:creator>philippe.leefsma</dc:creator>
    <dc:date>2014-02-21T11:12:55Z</dc:date>
    <item>
      <title>ssgetRolloverFilter</title>
      <link>https://forums.autodesk.com/t5/objectarx-forum/ssgetrolloverfilter/m-p/4813271#M12690</link>
      <description>&lt;P&gt;Hi!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a custom entity where I want the subentities to behave more or less like objects of their own. Don't ask me why, I'm maintaining old code...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have derived a class from&amp;nbsp;AcEdSSGetFilter3 and overridden ssgetRolloverFilter. I can make it work, sort of, by using:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;void CSubEntSelFilter::ssgetRolloverFilter(const AcDbFullSubentPath&amp;amp; subEntityPath, AcDbFullSubentPathArray&amp;amp; highlightPaths)
{
  if (subEntityPath == AcDbFullSubentPath())
    return;
  highlightPaths[0].subentId().setType(AcDb::kVertexSubentType);
  highlightPaths[0].subentId().setIndex(2);
}&lt;/PRE&gt;&lt;P&gt;With this, the subentity 2 will always be highlighted no matter what part of my custom entity the mouse rolls over.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Very well, but how do I find out which subentity the mouse is over at this moment? The only solution I see is to create an input point monitor and store the gsMarkers that are sent into the&amp;nbsp;gsSelectionMark parameter.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Or am I missing some subentityselect function that is called _before_ ssgetRolloverFilter?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 13 Feb 2014 11:22:49 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/objectarx-forum/ssgetrolloverfilter/m-p/4813271#M12690</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-02-13T11:22:49Z</dc:date>
    </item>
    <item>
      <title>Re: ssgetRolloverFilter</title>
      <link>https://forums.autodesk.com/t5/objectarx-forum/ssgetrolloverfilter/m-p/4814053#M12691</link>
      <description>&lt;P&gt;I've never used this function, but it's apparent from the documentation that subEntityPath should&amp;nbsp;describe the subentity&amp;nbsp;beneath the cursor. If it doesn't, then you probably haven't implemented subentity paths for your custom entity.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;P&gt;Very well, but how do I find out which subentity the mouse is over at this moment?&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 13 Feb 2014 17:39:31 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/objectarx-forum/ssgetrolloverfilter/m-p/4814053#M12691</guid>
      <dc:creator>owenwengerd</dc:creator>
      <dc:date>2014-02-13T17:39:31Z</dc:date>
    </item>
    <item>
      <title>Re: ssgetRolloverFilter</title>
      <link>https://forums.autodesk.com/t5/objectarx-forum/ssgetrolloverfilter/m-p/4819729#M12692</link>
      <description>&lt;P&gt;Hi!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for your answer, but your assumption does not seem to be correct. Or I am misunderstanding something...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have the following debug print inside ssgetRolloverFilter:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;acutPrintf(_T("\n[CSubEntSelFilter::ssgetRolloverFilter] subEntityPath %dm highlightPaths.length %d"), (int) subEntityPath.subentId().index(), highlightPaths.length());&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN style="line-height: 15px;"&gt;  for (int i=0; i &amp;lt; highlightPaths.length(); ++i)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="line-height: 15px;"&gt;    acutPrintf(_T("\n[CSubEntSelFilter::ssgetRolloverFilter] highlightPaths[%d].subid %d"), i, (int) highlightPaths[i].subentId().index());&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;which always gives:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;[CSubEntSelFilter::ssgetRolloverFilter] subEntityPath 0m highlightPaths.length 1
[CSubEntSelFilter::ssgetRolloverFilter] highlightPaths[0].subid 0&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As far as I have been able to understand, subEntityPath.subentid().index() is supposed to be the same kind of index I set with&amp;nbsp;mode-&amp;gt;subEntityTraits().setSelectionMarker(myMarker) in subWorldDraw? And the input point monitor correctly gives me these indices in the gsSelectionMark parameter.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So my solution so far is the following:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;In DocData.h:

  AcDbFullSubentPathArray m_SubentsUnderMouse;

then

Acad::ErrorStatus CInputPointMonitor::monitorInputPoint(...)
{
  DocVars.docData().m_SubentsUnderMouse.removeAll();
  const int nrOfEntities = apertureEntities.length();
  for (int entityIndex = 0; entityIndex &amp;lt; nrOfEntities; ++entityIndex)
    DocVars.docData().m_SubentsUnderMouse.append(AcDbFullSubentPath(apertureEntities[entityIndex], AcDb::kVertexSubentType, gsSelectionMark[entityIndex]));
  return AcEdInputPointMonitor::monitorInputPoint(...);
}

and finally:

void CSubEntSelFilter::ssgetRolloverFilter(const AcDbFullSubentPath&amp;amp; subEntityPath, AcDbFullSubentPathArray&amp;amp; highlightPaths)
{
  if (subEntityPath == AcDbFullSubentPath())
    return;
  highlightPaths = DocVars.docData().m_SubentsUnderMouse;
}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;which works fine. But it should be unneccessary for me to keep my own array of what is supposed to be rollover-highlighted or not. Why doesn't AutoCAD give me the subpath index in ssgetRolloverFilter?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 17 Feb 2014 08:45:43 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/objectarx-forum/ssgetrolloverfilter/m-p/4819729#M12692</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-02-17T08:45:43Z</dc:date>
    </item>
    <item>
      <title>Re: ssgetRolloverFilter</title>
      <link>https://forums.autodesk.com/t5/objectarx-forum/ssgetrolloverfilter/m-p/4819753#M12693</link>
      <description>&lt;P&gt;BTW, I have implemented&amp;nbsp;subGetSubentPathsAtGsMarker and&amp;nbsp;&lt;SPAN&gt;subGetGsMarkersAtSubentPath for my custom object class. The first is never called, the second is called _after_ ssgetRolloverFilter (supposedly to find out which gsMarker the paths I return from ssgetRolloverFilter correspond to.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;The necessity of these functions also seem quite odd to me, since the natural implementation would be:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Acad::ErrorStatus AcArrow::subGetGsMarkersAtSubentPath(const AcDbFullSubentPath&amp;amp; subPath, AcArray&amp;lt;Adesk::GsMarker&amp;gt;&amp;amp; gsMarkers) const
{
gsMarkers.append((Adesk::GsMarker) subPath.subentId().index());
return Acad::eOk;
}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 17 Feb 2014 08:55:11 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/objectarx-forum/ssgetrolloverfilter/m-p/4819753#M12693</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2014-02-17T08:55:11Z</dc:date>
    </item>
    <item>
      <title>Re: ssgetRolloverFilter</title>
      <link>https://forums.autodesk.com/t5/objectarx-forum/ssgetrolloverfilter/m-p/4828273#M12694</link>
      <description>&lt;P&gt;I believe the point monitor can be the solution, mostly because the point monitor &lt;STRONG&gt;is the one&lt;/STRONG&gt; called right before ssgetRolloverFilter.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Do you believe that is an issue on your scenario?&lt;/P&gt;</description>
      <pubDate>Thu, 20 Feb 2014 18:43:45 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/objectarx-forum/ssgetrolloverfilter/m-p/4828273#M12694</guid>
      <dc:creator>augusto.goncalves</dc:creator>
      <dc:date>2014-02-20T18:43:45Z</dc:date>
    </item>
    <item>
      <title>Re: ssgetRolloverFilter</title>
      <link>https://forums.autodesk.com/t5/objectarx-forum/ssgetrolloverfilter/m-p/4829819#M12695</link>
      <description>&lt;P&gt;We used to provide more samples with the ObjectARX SDK, unfortunately those are not fully included any more with the latest versions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here I am attaching the "entity" samples from ObjectARX 2009. You will find some fully implemented examples illustrating how to work with subentities.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I quickly migrated the SubEntity sample, but I couldn't migrate the COM wrapper part of it, so I removed it. According to the description of the sample, it seems to be what you are looking for, you can find the non-migrated samples in the zip:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;SPAN style="font-family: Arial;"&gt;The SubEntity sample application demonstrates the APIs for sub-entity selection manipulation.&lt;BR clear="none" /&gt; The sample demonstrates the following sub-entity selection manipulation features:&lt;BR clear="none" /&gt; &lt;BR clear="none" /&gt; 1) Supports sub-entity selection and extracting the sub-entity information from the selection sets&lt;BR clear="none" /&gt; 2) Provide right-click menu support on selected sub-entities&lt;BR clear="none" /&gt; 3) Sub-entity grips on selected sub-entities&lt;BR clear="none" /&gt; 4) Implements COM wrapper for the sub-entities&lt;/SPAN&gt;&lt;/EM&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 21 Feb 2014 11:12:55 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/objectarx-forum/ssgetrolloverfilter/m-p/4829819#M12695</guid>
      <dc:creator>philippe.leefsma</dc:creator>
      <dc:date>2014-02-21T11:12:55Z</dc:date>
    </item>
  </channel>
</rss>

