34 Logo::Logo(
int numberlogos,
47 numlogos = numberlogos;
53 for (
int i = 0;
i < numlogos;
i++, LogoCorner += 4) {
56 Vector translation = r*offset;
57 if (Ref[
i].
i || Ref[
i].
j || Ref[
i].
k) {
60 ScaledCrossProduct( r, p, q );
62 float tsize = size[i]*0.50F;
63 Vector tcenter = center[i]+translation;
64 v4 = p* -tsize-q*tsize+tcenter;
65 v3 = p* -tsize+q*tsize+tcenter;
66 v2 = p*tsize+q*tsize+tcenter;
67 v1 = p*tsize-q*tsize+tcenter;
71 if ( (r.i == 1 || r.i == -1) && !r.j && !r.k )
75 ScaledCrossProduct( r, y, p );
76 ScaledCrossProduct( r, p, q );
78 float tsize = size[i]*0.50F;
79 Vector tcenter = center[i]+translation;
81 v2 = p* -tsize+tcenter;
82 v3 = q* -tsize+tcenter;
85 LogoCorner[0].SetVertex( v1 ).SetNormal( r ).SetTexCoord( 0, 0 );
86 LogoCorner[1].SetVertex( v2 ).SetNormal( r ).SetTexCoord( 0, 1 );
87 LogoCorner[2].SetVertex( v3 ).SetNormal( r ).SetTexCoord( 1, 1 );
88 LogoCorner[3].SetVertex( v4 ).SetNormal( r ).SetTexCoord( 1, 0 );
102 if ( ( l = decalHash.
Get( decal->
name ) ) != NULL ) {
107 l =
new Logo( *
this );
109 decalHash.
Put( decal->
name, l );