#N canvas 426 119 673 647 10;
#X declare -lib Gem;
#X text 54 30 Class: geometric object;
#X obj 464 77 cnv 15 200 480 empty empty empty 20 12 0 14 -228992 -66577
0;
#X obj 466 564 cnv 15 200 60 empty empty empty 20 12 0 14 -195568 -66577
0;
#N canvas 0 50 450 300 gemwin 0;
#X obj 132 136 gemwin;
#X obj 67 89 outlet;
#X obj 67 10 inlet;
#X obj 67 41 route create;
#X msg 67 70 set destroy;
#X msg 142 68 set create;
#X msg 132 112 create \, 1 \, lighting 1;
#X msg 298 112 destroy \, reset;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 0 6 0;
#X connect 3 1 5 0;
#X connect 3 1 7 0;
#X connect 4 0 1 0;
#X connect 5 0 1 0;
#X connect 6 0 0 0;
#X connect 7 0 0 0;
#X restore 471 603 pd gemwin;
#X msg 471 584 create;
#X text 468 565 Create window:;
#X text 475 59 Example:;
#X obj 7 67 cnv 15 450 210 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 8 316 cnv 15 450 320 empty empty empty 20 12 0 14 -233017 -66577
0;
#X text 9 321 Inlets:;
#X obj 8 282 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577
0;
#X text 17 281 Arguments:;
#X text 452 8 GEM object;
#X text 27 333 Inlet 1: gemlist;
#X text 9 600 Outlets:;
#X text 21 613 Outlet 1: gemlist;
#X obj 472 136 cnv 15 180 325 empty empty empty 20 12 0 14 -106458
-66577 0;
#X text 33 14 Synopsis: [model];
#X text 7 69 Description: Renders an Alias/Wavefront-Model.;
#X text 16 86 The model object renders 3D-models that are saved in
Alias/Wavefront's OBJ-format.;
#X text 63 292 optional: name of a OBJ-file to be loaded;
#X obj 470 473 cnv 15 50 30 empty empty empty 20 12 0 14 -24198 -66577
0;
#X obj 583 584 gemhead;
#X obj 583 603 world_light;
#X obj 473 84 gemhead;
#X obj 473 479 model;
#X obj 486 140 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 486 158 openpanel;
#X obj 574 144 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X msg 574 164 rescale \$1;
#X msg 490 224 smooth \$1;
#X obj 574 204 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X msg 574 224 revert \$1;
#X msg 486 274 material \$1;
#X msg 574 274 texture \$1;
#X msg 576 326 group \$1;
#X floatatom 490 206 5 0 1 0 - - -;
#X msg 486 179 open \$1;
#X obj 576 308 hradio 15 1 0 3 empty empty empty 0 -6 0 8 -262144 -1
-1 2;
#X text 27 350 Inlet 1: message: open <filename.obj>;
#X text 27 367 Inlet 1: message: rescale 1|0 :: normalize the model
(must be set PRIOR to opening a model (default:1);
#X text 26 444 Inlet 1: message: material 1|0 :: use material-information
(from the .MTL-file);
#X text 27 512 Inlet 1: message: group <int> :: draw only specified
part of the model (0==all groups);
#X text 16 114 To normalize the size and pivot-point of a loaded model
use the "rescale"-message prior(!) to loading the model.;
#X text 27 426 Inlet 1: message: revert 1|0 :: revert faces;
#X text 16 142 The amount of smoothing of the model-facets can be set
via the "smooth"-message.;
#X text 17 168 Some models have material-information stored in a separate
MTL-file. If these materials should be used instead of GEM's [color]
(and friends) use the "material"-message.;
#X text 16 234 Model can consist of several parts \, so-called "groups".
Normally all groups are rendered \, but you can specify specific groups
to be displayed.;
#X obj 473 115 color 1 0 0;
#X obj 486 254 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X text 27 397 Inlet 1: message: smooth <float> :: set smoothing factor
( 0.0==flat. 1.0==smooth. default:0.5);
#X text 27 474 Inlet 1: message: texture 0|1|2 :: 0==linear texturing
\, 1==sphere mapping \, 2==UV-mapping (default);
#X obj 574 254 hradio 15 1 0 3 empty empty empty 0 -6 0 8 -262144 -1
-1 0;
#X text 17 210 Images can be applied either as linear \, spherical
or UV textures.;
#X msg 511 381 loader OBJ;
#X msg 520 401 loader ASSIMP3;
#X text 27 542 Inlet 1: message: loader <symbol> :: choose which backend
to use first to open the model;
#X obj 500 524 print info;
#X msg 518 424 loader;
#X obj 473 325 t a;
#X obj 558 346 t a;
#X text 559 423 query loaders;
#X obj 490 424 t a;
#N canvas 1230 127 534 459 properties 0;
#X obj 39 405 outlet;
#X msg 39 175 enumProps;
#X text 107 177 print available properties (for reading and/or writing)
;
#X msg 61 214 get texheight texwidth;
#X msg 84 245 set usematerial 1;
#X text 209 246 set an (available) named properties;
#X text 208 215 get (available) named properties;
#X msg 84 310 setProps usematerial 1;
#X text 232 309 store a named property for applying LATER;
#X msg 84 340 applyProps;
#X text 162 340 apply stored properties;
#X msg 84 370 clearProps;
#X text 161 366 clear stored properties;
#X text 26 35 ==========================;
#X text 26 22 getting/setting properties;
#X text 26 68 depending on the used backend for loading a model \,
different properties might be available., f 61;
#X text 30 104 properties can only be enumerated after a model has
been loaded (and thus the loader-backend has been determined);
#X connect 1 0 0 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 7 0 0 0;
#X connect 9 0 0 0;
#X connect 11 0 0 0;
#X restore 533 478 pd properties;
#X obj 558 8 declare -lib Gem;
#X connect 3 0 4 0;
#X connect 4 0 3 0;
#X connect 22 0 23 0;
#X connect 24 0 48 0;
#X connect 25 1 57 0;
#X connect 26 0 27 0;
#X connect 27 0 37 0;
#X connect 28 0 29 0;
#X connect 29 0 60 0;
#X connect 30 0 59 0;
#X connect 31 0 32 0;
#X connect 32 0 60 0;
#X connect 33 0 59 0;
#X connect 34 0 60 0;
#X connect 35 0 60 0;
#X connect 36 0 30 0;
#X connect 37 0 59 0;
#X connect 38 0 35 0;
#X connect 48 0 59 0;
#X connect 49 0 33 0;
#X connect 52 0 34 0;
#X connect 54 0 62 0;
#X connect 55 0 62 0;
#X connect 58 0 62 0;
#X connect 59 0 25 0;
#X connect 60 0 25 0;
#X connect 62 0 25 0;
#X connect 63 0 25 0;
