logo

Willkommen Gast! Um alle Funktionen zu aktivieren müssen Sie sich Anmelden.Neue Registrierungen sind deaktiviert.

Mitteilung

Icon
Error

Einloggen


Beitrag melden
Geschrieben von: MartinRJ Fayray Offline Geschrieben Mittwoch, 5. November 2014 10:34:35(UTC)
Diese Funktion 'mirror_along_cross_section_of_face()' habe ich gemacht, um Gesichtsschmuck zu spiegeln, damit beispielsweise ein Piercing auf beiden Seiten des Avatar-Gesichts an der gleichen Stelle ist.
Man übergibt der Funktion die Linknummer des Prims das man spiegeln möchte, und erhält die (entlang der x-Achse) gespiegelten Werte für Position und Rotation als Liste zurück, um diese Werte direkt an eine llSetLinkPrimitiveParamsFast-Funktion zu übergeben.

Code:

list mirror_along_cross_section_of_face(integer iLinknum)
{ //returns a list for primitive params, use with llSetLinkPrimitiveParamsFast(linknumber-target, mirror_along_cross_section_of_face(linknumber-source));
    vector v = llList2Vector(llGetLinkPrimitiveParams(iLinknum, [PRIM_POS_LOCAL]), 0);
    rotation r = llList2Rot(llGetLinkPrimitiveParams(iLinknum, [PRIM_ROT_LOCAL]), 0);
    vector vr = llRot2Euler(r);
    
    v = <-v.x, v.y, v.z>;
    
    rotation r = llList2Rot(llGetLinkPrimitiveParams(iLinknum, [PRIM_ROT_LOCAL]), 0);
    vector vr = llRot2Euler(r);
    r = ZERO_ROTATION / llEuler2Rot(<-vr.x, vr.y, vr.z>);
    return [PRIM_POS_LOCAL, v, PRIM_ROT_LOCAL, r];
}
default
{
    state_entry()
    {
        llSetLinkPrimitiveParamsFast(3, mirror_along_cross_section_of_face(2));
    }
}
Geben Sie den Meldetext hier ein.
Fett Kursiv Unterstrichen   Hervorheben Zitat Sprachauswahl für Syntax Highlighting Bild einfügen Link einfügen   Unsortierte Liste Sortierte Liste   Linksbündig Zentriert Rechtsbündig   Herausrücken Einrücken   Weitere BBCodes
Schriftfarbe: Schriftgröße:
Melden Abbruch

Powered by YAF.NET | YAF.NET © 2003-2021, Yet Another Forum.NET
Diese Seite wurde in 0.036 Sekunden generiert.

Datenschutzrichtlinie
Haftungsausschluss
Impressum
Datenschutzerklärung
AGB, ToS
Kontakt