blob: f50d9005d2b31982f23a9e91f9d1452778835fb2 [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001GroupName()
2===========
3
4FUNKTION
5--------
6::
7
8 string GroupName(string grp)
9
10DEFINIERT IN
11------------
12::
13
14 /p/daemon/materialdb.c (MATERIALDB)
15
16ARGUMENTE
17---------
18::
19
20 string grp - ein Gruppenname
21
22BESCHREIBUNG
23------------
24::
25
26 Gibt die Langbeschreibung des Gruppennamens zurueck.
27
28RUECKGABEWERT
29-------------
30::
31
32 Die Gruppenbeschreibung oder "Unbekanntes"
33
34BEISPIELE
35---------
36::
37
38 // simpel
39 tmp=m_indices(ob->QueryProp(P_MATERIAL));
40 write("Dieses Objekt gehoert u.a. zur Gruppe "+
41 MATERIALDB->GroupName(MATERIALDB->GetMatMembership(tmp[0])[0])+
42 ".\n");
43 // gibt die erste Gruppenzugehoerigkeit des erste Materials in
44 // P_MATERIAL zurueck (bei MATGROUP_METAL z.B. "... zur Gruppe Metalle.")
45
46 // ein weiser Schmied:
47 int i;
48 string *mat, mname, mgroup;
49 mat=m_indices(ob->QueryProp(P_MATERIAL));
50 i=sizeof(mat);
51
52 write("Der Schmied sagt: "+ob->Name(WER)+" besteht aus ...\n");
53 while(i--) {
54 // den Namen erkennen/aussprechen:
55 // Materialien werden allgemein ganz schlecht erkannt (zu 5%), aber
56 // alles aus Metall wird zu +100% gut erkannt ...
57 mname=MATERIALDB->MaterialName(mat[i], WER,
58 ({5, ([MATERIAL_SYMMETRIC_RECOGNIZABILITY:
59 ({MATGROUP_METAL, 100})])}));
60
61 // und nur Metalle analysieren ...
62 if(MATERIALDB->MaterialGroup(([mat[i]:100]),MATGROUP_METAL)>=100) {
63 int j;
64 string *mgr;
65 mgr=MATERIALDB->GetMatMembership(mat[i]);
66 j=sizeof(mgr);
67 mgroup=" gehoert zu ";
68 while(j--) {
69 mgroup+=MATERIALDB->GroupName(mgr[j]);
70 if(j>0) mgroup+=", ";
71 }
72 } else mgroup=" kenne ich nicht";
73 printf("%-12.12s: %s\n",mname, mgroup);
74 }
75
76SIEHE AUCH
77----------
78::
79
80 Konzepte: material, materialerkennung
81 Grundlegend: P_MATERIAL, /sys/thing/material.h
82 Master: AddMaterial(), ConvMaterialList(), MaterialGroup(),
83 MaterialName(),
84 GetGroupMembers(), GetMatMembership()
85
867. Mai 2004 Gloinson
87