Hi,
man braucht ja doch öfters die "alten" UF-Funktionen CycleObjsInPart und CycleAll. Leider sind die nicht mehr so schön zu bedienen, wie man das von heutigen Programmiersprachen eigentlich gewöhnt ist ;-)
Ich hab zwei Erweiterungmethoden geschrieben, die ich euch nicht vorenthalten möchten...
Code:
public static class PartExtensions
{
public static IEnumerable<TaggedObject> Objects(this BasePart prt)
{
var session = new NiXeSession();
Tag aTag = Tag.Null;
do
{
aTag = session.TheUFSession.Obj.CycleAll(prt.Tag, aTag);
if (aTag == Tag.Null) break; yield return session.TheSession.GetObjectManager().GetTaggedObject(aTag);
} while (true);
}
public static IEnumerable<TaggedObject> Objects(this BasePart prt, int type)
{
var session = new NiXeSession();
Tag aTag = Tag.Null;
do
{
session.TheUFSession.Obj.CycleObjsInPart(prt.Tag, type, ref aTag);
if (aTag == Tag.Null) break;
yield return session.TheSession.GetObjectManager().GetTaggedObject(aTag);
} while (true);
}
}
Da kann man dann schön mit ForEach drüber gehen und Linq benutzen...z.B.
Code:
foreach (var dis in Part.Objects().OfType<DisplayableObject>())
{
if(dis.IsBlanked) return xyz;
}
Vielleicht hilfts ja dem ein oder anderen...
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP