end(); ++itr)
					{
						if (hpcc::ElementG * hotElementG = GetElementG(itr->get()))
							retVal.Union(hotElementG->GetBoundingBox());
					}
					for(IEdgeSet::const_iterator itr = m_hotVertex->GetOutEdges().begin(); itr!= m_hotVertex->GetOutEdges().end(); ++itr)
					{
						if (hpcc::ElementG * hotElementG = GetElementG(itr->get()))
							retVal.Union(hotElementG->GetBoundingBox());
					}
				}
			}
		}
		m_invalidateRect = retVal;
		return!m_invalidateRect.IsEmptyArea();
	}

	bool GetPrevInvalidateRect(RectD & retVal) const
	{
		retVal = m_prevInvalidateRect;
		return!m_prevInvalidateRect.IsEmptyArea();
	}
};
typedef std::map<int, CGraphHotItem> CGraphHotItemMap;
//  ===========================================================================
class CGraphSelectionBag : public IGraphSelectionBag, public CUnknown
{
protected:
	CGraphHotItemMap m_selected;
	CGraphHotItemMap m_prevSelected;

public:
	BEGIN_CUNKNOWN
	END_CUNKNOWN

	bool Clear()
	{
		if (!m_selected.empty())
		{
			m_prevSelected = m_selected;
			m_selected.clear();
			return true;
		}
		return false;
	}

	bool Select(IGraphItem * item, bool clearPrevious = true)
	{
		bool changed = false;
		if (m_selected.size() == 1 && IsSelected(item))
			return changed;

		CGraphHotItemMap prevSelected = m_selected;

		if (clearPrevious &&!m_selected.empty())
		{
			changed = true;
			m_selected.clear();
		}
		CGraphHotItemMap::const_iterator found = m_selected.find(item->GetID());
		if (found == m_selected.end())
		{
			changed = true;
			m_selected[item->GetID()].Set(item);
		}

		if (changed)
			m_prevSelected = prevSelected;
		return changed;
	}

	bool Select(const IGraphItemSet & items, bool clearPrevious = true)
	{
		bool changed = false;
		CGraphHotItemMap prevSelected = m_selected;

		if (clearPrevious &&!m_selected.empty())
		{
			changed = true;
			m_selected.clear();
		}

		for (IGraphItemSet::const_iterator itr = items.begin(); itr!= items.end(); ++itr)
		{
			CGraphHotItemMap::const_iterator found = m_selected.find(itr->get()->GetID());
			if (found == m_selected.end())
			{
				changed = true;
				m_selected[itr->get()->GetID()].Set(itr->get());
			}
		}

		if (changed)
			m_prevSelected = prevSelected;
		return changed;
	}

	bool Deselect(IGraphItem * item)
	{
		CGraphHotItemMap prevSelected = m_selected;
		CGraphHotItemMap::iterator found = m_selected.find(item->GetID());
		if (found!= m_selected.end())
		{
			m_selected.erase(found);
			m_prevSelected = prevSelected;
			return true;
		}
		return false;
	}

	bool IsSelected(IGraphItem * item) const
	{
		CGraphHotItemMap::const_iterator found = m_selected.find(item->GetID());
		if (found!= m_selected.end())
			return true;
		return false;
	}

	int GetSelection(std::vector<int> & selection) const
	{
		for (CGraphHotItemMap::const_iterator itr = m_selected.begin(); itr!= m_selected.end(); ++itr)
			selection.push_back(itr->first);
		return selection.size();
	}

	int GetSelection(const IGraph * g, std::vector<std::string> & selection) const
	{
		for (CGraphHotItemMap::const_iterator itr = m_selected.begin(); itr!= m_selected.end(); ++itr)
		{
			const char * id = g->GetExternalID(itr->first);
			assert(id!= NULL);
			if (id!= NULL)
				selection.push_back(id);
		}
		return selection.size();
	}

	bool GetInvalidateRect(RectD & retVal) const
	{
		bool first = true;
		for (CGraphHotItemMap::const_iterator itr = m_selected.begin(); itr!= m_selected.end(); ++itr)
		{
			if (first)
			{
				first = false;
				itr->second.GetInvalidateRect(retVal);
			}
			else
			{
				RectD rect;
				itr->second.GetInvalidateRect(rect);
				retVal.Union(rect);
			}
		}
		return true;
	}

	bool GetPrevInvalidateRect(RectD & retVal) const
	{
		bool first = true;
		for (CGraphHotItemMap::const_iterator itr = m_prevSelected.begin(); itr!= m_prevSelected.end(); ++itr)
		{
			if (first)
			{
				first = false;
				itr->second.GetInvalidateRect(retVal);
			}
			else
			{
				RectD rect;
				itr->second.GetInvalidateRect(rect);
				retVal.Union(rect);
			}
		}
		return true;
	}
};
//  ===========================================================================
GRAPHRENDER_API IGraphHotItem * CreateGraphHotItem()
{
	return new CGraphHotItem();
}

GRAPHRENDER_API IGraphSelectionBag * CreateGraphSelectionBag()
{
	return new CGraphSelectionBag();
}
//  ===========================================================================
}
Howard Stern's Daughter Ashley Jade Stern Reveals Impact of her Parents' Divorce! Details!
Howard Stern and Alison Berns were once a happy and adorable couple. But the couple ended their marriage after over 24 years, in 2001 and chose to move on different paths. Together they have three children.
Currently, both of them are married to someone else and living happily, but what impact does the divorce has in their children's lives? Let's find out here.
The renowned television and radio personality Howard Stern and his ex-wife, actress Alison Berns, first met through a mutual friend at Boston University. Alison Berns used to study social work whereas Howard was pursuing his degree in Communications.
The pair exchanged their vows on June 4, 1978, at Temple Ohabei Shalom in Brookline, Massachusetts, in front of families and close friends.
Stern and Berns separated in 1999 and got a divorce in 2001 after over 24 years of marriage. The former couple has three children together; Emily Beth, born in 1983, Debra Jenifer, born in 1986 and Ashley Jade, born in 1993.
Stern and Berns' younger daughter Ashley Jade Stern was too young when they decided to divorce. Ashley was just six at the time. Though her siblings, Emily and Debra, were old enough to face it, Ashley was too young to handle it. Probably that was the toughest situation of her life since she was so young.
Howard Stern and Alison Berns share the joint custody of their three children, however, Howard said he will gladly take full custody of his children if asked to. Berns is married to David Simon whereas Howard Stern is married to actress-model Beth Ostrosky since 2008.
Is Ashley Jade Stern Married? Or is she dating anyone?
Twenty-four years old Ashley Jade Stern is always in the limelight since she is the daughter of renowned TV personality Howard Stern and actress Alison Berns. Ashley doesn't want the attention as she keeps her personal life miles away from the media.
Ashley Jade was seen with her boyfriend in a wedding recently in her friend Debra's Wedding! She looked lovely in a pink gown and her boyfriend, according to some fans, looked good in a suit but rather ''dorky''.
Ashley was born in 1993 in U.S.
She has two older siblings: Emily Beth and Debra Jenifer.
She was only six when her parents divorced.
A tour of the east side of Crete. We will take you to see:
