home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / GFX / Raytracing / Raytracer / WZD-REF4.LHA / ref / install / skripte.lha / wald1.skr < prev    next >
Encoding:
Reflections/Monzoom script  |  1996-07-26  |  2.6 KB  |  141 lines

  1. REFSKRIPT
  2. ; Aufruf  wald1.skr kp name <geo_obj_name>
  3. GET_N_PARAMS
  4. GET_RESULT x
  5.  
  6. IF_EQUAL_GOTO x 3 param_ok
  7.   RETURN 0
  8. >param_ok:
  9. GET_PARAM_NR 1
  10. GET_RESULT kp
  11. GET_PARAM_NR 2
  12. GET_RESULT name
  13. GET_PARAM_NR 3
  14. GET_RESULT wald_obj_name
  15.  
  16.  
  17. OBJ_EXIST wald_obj_name
  18. GET_RESULT res
  19. IF_STR_EQUAL_GOTO res JA w4
  20. RETURN 0
  21. >w4:
  22. ; testen, ob es ein geo-obj ist
  23. OBJ_IS_SUB_CLASS_OF wald_obj_name 2
  24. GET_RESULT res
  25. IF_STR_EQUAL_GOTO res JA w5
  26. RÉTURN 0
  27.  
  28. >w5:
  29. GET_KP_DREI 
  30. GET_RESULT kp_drei
  31. ; schauen, ob es kp all ist, dann müssen wird zuerst
  32. ; einen neuen Koerper schaffen
  33. IF_STR_NOT_EQUAL_GOTO kp ALL w2b
  34. CALL neukpnam.skr ALL
  35. GET_RESULT kp1
  36. KP_ADDNEU kp kp1
  37. ADD_STR kp1
  38. GET_RESULT kp
  39. >w2b:
  40. COPY_WORD kp 1
  41. GET_RESULT old
  42.  
  43. GET_KP_NOBJEKTE kp 
  44. GET_RESULT n_kp
  45. GET_NOBJEKTE
  46. GET_RESULT nobj
  47.  
  48. RAND
  49.  
  50. GET_KP_KOORD kp
  51. GET_RESULT res
  52. COPY_WORD res 1
  53. GET_RESULT kpx
  54. COPY_WORD res 2
  55. GET_RESULT kpy
  56. COPY_WORD res 3
  57. GET_RESULT kpz
  58. GEO_N_SELECTED_PTS wald_obj_name
  59. GET_RESULT ncopys
  60. GEO_NPTS wald_obj_name
  61. GET_RESULT npts
  62. SET_VAR i 0
  63. SET_VAR nc 0
  64. >doloop:
  65.    MOD i 100
  66.    GET_RESULT i1
  67.    IF_NOT_EQUAL_GOTO i1 0 wx
  68.    PRINT pkt i
  69. >wx:
  70.   GEO_PT_IS_SELECTED wald_obj_name i
  71.   GET_RESULT res
  72.   IF_STR_EQUAL_GOTO res NEIN weiter2
  73.    
  74.  
  75.        SET_VAR neu_name tmp
  76.        SET_VAR found 0
  77.        SET_VAR j 0
  78.        KP_EXIST neu_name
  79.        GET_RESULT res
  80.        IF_STR_NOT_EQUAL_GOTO res JA name_ok
  81. >do_while:
  82.         ADD_STR neu_name _ j
  83.         GET_RESULT neu_name
  84.         KP_EXIST neu_name
  85.         GET_RESULT res
  86.         IF_STR_EQUAL_GOTO res NEIN name_ok
  87.         ADD j 1
  88.         GET_RESULT j
  89.         GOTO do_while
  90. >name_ok:
  91. ; jetzt neuen körper auf koordinaten von 
  92.    COPY_WORD neu_name 1
  93.    GET_RESULT new
  94.    KP_DOPPELN kp new
  95.    ADD nc 1
  96.    GET_RESULT nc
  97.    PRINT Kopie nc
  98.    GEO_GET_PT wald_obj_name i
  99.    GET_RESULT res
  100.    COPY_WORD res 1
  101.    GET_RESULT x  
  102.    COPY_WORD res 2
  103.    GET_RESULT y  
  104.    COPY_WORD res 3
  105.    GET_RESULT z  
  106. ; Punkt-koordinaten von <name> ins koordsystem von kp umwandeln
  107.    GEO_PT_FROM_TO  wald_obj_name x y z kp_drei
  108.    GET_RESULT res
  109.    COPY_WORD res 1
  110.    GET_RESULT x  
  111.    COPY_WORD res 2
  112.    GET_RESULT y  
  113.    COPY_WORD res 3
  114.    GET_RESULT z  
  115.     RAND
  116.     GET_RESULT res
  117.     MUL res 360
  118.     GET_RESULT wi
  119.     KP_BEWEGE_NACH new x y z
  120.     KP_DREHE new 5 wi
  121.     KP_LOESCHEN new
  122. >weiter2:
  123.     IF_EQUAL_GOTO nc ncopys loop_fertig
  124.     ADD i 1
  125.     GET_RESULT i
  126.     IF_NOT_EQUAL_GOTO i npts doloop
  127.     
  128. >loop_fertig:
  129.  
  130.  
  131. GET_NOBJEKTE
  132. GET_RESULT nobj1
  133.  
  134. KP_NEU name
  135. SUB nobj1 1
  136. GET_RESULT nobj2
  137. KP_OBJ_VONBIS nobj nobj2
  138. KP_FERTIG
  139.  
  140. RETURN 1
  141.