本文整理汇总了C#中UMD.HCIL.Piccolo.PNode.Intersects方法的典型用法代码示例。如果您正苦于以下问题:C# PNode.Intersects方法的具体用法?C# PNode.Intersects怎么用?C# PNode.Intersects使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UMD.HCIL.Piccolo.PNode
的用法示例。
在下文中一共展示了PNode.Intersects方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DetectOcclusions
/// <summary>
/// Traverse from the bottom right of the scene graph (top visible node)
/// up the tree determining which parent nodes are occluded by their children
/// nodes.
/// </summary>
/// <param name="n">The node to find occlusions for.</param>
/// <param name="pickPath">
/// A pick path representing the bounds of <c>n</c> in parent coordinates.
/// </param>
/// <remarks>
/// Note that this is only detecting a subset of occlusions (parent, child),
/// others such as overlapping siblings or cousins are not detected.
/// </remarks>
public void DetectOcclusions(PNode n, PPickPath pickPath) {
if (n.FullIntersects(pickPath.PickBounds)) {
pickPath.PushMatrix(n.MatrixReference);
int count = n.ChildrenCount;
for (int i = count - 1; i >= 0; i--) {
PNode each = n[i];
if (n.Occluded) {
// if n has been occluded by a previous decendent then
// this child must also be occluded
each.Occluded = true;
} else {
// see if child each occludes n
DetectOcclusions(each, pickPath);
}
}
// see if n occludes it's parents
if (!n.Occluded) {
if (n.Intersects(pickPath.PickBounds)) {
if (n.IsOpaque(pickPath.PickBounds)) {
PNode p = n.Parent;
while (p != null && !p.Occluded) {
p.Occluded = true;
}
}
}
}
pickPath.PopMatrix(n.MatrixReference);
}
}
示例2: Accept
/// <summary>
/// Returns true if the node's bounds intersects the bounds specified by the
/// BoundsFilter.
/// </summary>
/// <remarks>
/// For a node to be accepted, it must also satisfy the following conditions:
/// it must be pickable, it must not be the marquee node, it must not be a
/// selectable parent, and the it must not be a layer that is viewed by a camera
/// that is a selectable parent
/// </remarks>
/// <param name="node">The node to test.</param>
/// <returns>True if the node is accepted; otherwise, false.</returns>
public virtual bool Accept(PNode node) {
localBounds = bounds;
localBounds = node.GlobalToLocal(localBounds);
bool boundsIntersects = node.Intersects(localBounds);
bool isMarquee = (node == selectionHandler.marquee);
return (node.Pickable && boundsIntersects && !isMarquee &&
!selectionHandler.selectableParents.Contains(node) && !IsCameraLayer(node));
}