| .. | .. | 
|---|
| 150 | 150 |       | 
|---|
| 151 | 151 |  	void SetupMenu2(ObjEditor oe) | 
|---|
| 152 | 152 |  	{ | 
|---|
 | 153 | +        if (Globals.ADVANCED)  | 
|---|
 | 154 | +        {  | 
|---|
| 153 | 155 |  		oe.cameraMenu.add(lookAtItem = new MenuItem("Set Interest")); | 
|---|
| 154 | 156 |  		//cameraMenu.add(lookFromItem = new MenuItem("Look From Selection")); | 
|---|
| 155 | 157 |  		//cameraMenu.add(switchItem = new MenuItem("Reverse View")); | 
|---|
| .. | .. | 
|---|
| 161 | 163 |  		lookAtItem.addActionListener(this); | 
|---|
| 162 | 164 |  		//lookFromItem.addActinoListener(this); | 
|---|
| 163 | 165 |  		//switchItem.addActionListener(this); | 
|---|
 | 166 | +        }  | 
|---|
 | 167 | +          | 
|---|
| 164 | 168 |  		Menu menu; | 
|---|
| 165 | 169 |  		oe.menuBar.add(menu = new Menu("Edit")); | 
|---|
| 166 | 170 |  		//editItem = menu.add(new MenuItem("Edit")); | 
|---|
| 167 | 171 |  		//editItem.addActionListener(this); | 
|---|
| 168 | 172 |  		duplicateItem = menu.add(new MenuItem("Duplicate")); | 
|---|
| 169 | 173 |  		duplicateItem.addActionListener(this); | 
|---|
| 170 |  | -		menu.add("-");  | 
|---|
| 171 |  | -		cloneItem = menu.add(new MenuItem("Clone"));  | 
|---|
| 172 |  | -		cloneItem.addActionListener(this);  | 
|---|
| 173 |  | -		cloneSupportItem = menu.add(new MenuItem("Clone (+supports)"));  | 
|---|
| 174 |  | -		cloneSupportItem.addActionListener(this);  | 
|---|
| 175 |  | -		menu.add("-");  | 
|---|
| 176 | 174 |  		cutItem = menu.add(new MenuItem("Cut")); | 
|---|
| 177 | 175 |  		cutItem.addActionListener(this); | 
|---|
| 178 | 176 |  		copyItem = menu.add(new MenuItem("Copy")); | 
|---|
| 179 | 177 |  		copyItem.addActionListener(this); | 
|---|
| 180 | 178 |  		pasteItem = menu.add(new MenuItem("Paste")); | 
|---|
| 181 | 179 |  		pasteItem.addActionListener(this); | 
|---|
 | 180 | +		menu.add("-");  | 
|---|
 | 181 | +		cloneItem = menu.add(new MenuItem("Clone"));  | 
|---|
 | 182 | +		cloneItem.addActionListener(this);  | 
|---|
 | 183 | +		cloneSupportItem = menu.add(new MenuItem("Clone (+supports)"));  | 
|---|
 | 184 | +		cloneSupportItem.addActionListener(this);  | 
|---|
 | 185 | +		menu.add("-");  | 
|---|
 | 186 | +		pasteIntoItem = menu.add(new MenuItem("Paste into"));  | 
|---|
 | 187 | +		pasteIntoItem.addActionListener(this);  | 
|---|
| 182 | 188 |  		pasteLinkItem = menu.add(new MenuItem("Paste link")); | 
|---|
| 183 | 189 |  		pasteLinkItem.addActionListener(this); | 
|---|
| 184 | 190 |  		pasteCloneItem = menu.add(new MenuItem("Paste clone")); | 
|---|
| 185 | 191 |  		pasteCloneItem.addActionListener(this); | 
|---|
| 186 | 192 |  //		pasteExpandItem = menu.add(new MenuItem("Paste expand")); | 
|---|
| 187 | 193 |  //		pasteExpandItem.addActionListener(this); | 
|---|
 | 194 | +		menu.add("-");  | 
|---|
| 188 | 195 |  		clearItem = menu.add(new MenuItem("Clear")); | 
|---|
| 189 | 196 |  		clearItem.addActionListener(this); | 
|---|
 | 197 | +                  | 
|---|
 | 198 | +        if (Globals.ADVANCED)  | 
|---|
 | 199 | +        {  | 
|---|
 | 200 | +                // Deletes the cameras...  | 
|---|
| 190 | 201 |  		clearAllItem = menu.add(new MenuItem("Clear All")); | 
|---|
| 191 | 202 |  		clearAllItem.addActionListener(this); | 
|---|
 | 203 | +        }  | 
|---|
| 192 | 204 |   | 
|---|
| 193 | 205 |  		oe.menuBar.add(menu = new Menu("Setting")); | 
|---|
 | 206 | +        if (Globals.ADVANCED)  | 
|---|
 | 207 | +        {  | 
|---|
| 194 | 208 |                  resetMeshItem = menu.add(new MenuItem("Reset All")); | 
|---|
| 195 | 209 |  		resetMeshItem.addActionListener(this); | 
|---|
| 196 | 210 |  		stepAllItem = menu.add(new MenuItem("Step All")); | 
|---|
| .. | .. | 
|---|
| 200 | 214 |  		resetreferencesItem = menu.add(new MenuItem("Reset Mesh References")); | 
|---|
| 201 | 215 |  		resetreferencesItem.addActionListener(this); | 
|---|
| 202 | 216 |  		menu.add("-"); | 
|---|
 | 217 | +        }  | 
|---|
| 203 | 218 |  		overwriteGeoItem = menu.add(new MenuItem("Overwrite Geometry")); | 
|---|
| 204 | 219 |  		overwriteGeoItem.addActionListener(this); | 
|---|
| 205 | 220 |  		overwriteMatItem = menu.add(new MenuItem("Overwrite Material")); | 
|---|
| .. | .. | 
|---|
| 211 | 226 |  		overwriteUVItem = menu.add(new MenuItem("Overwrite UV")); | 
|---|
| 212 | 227 |  		overwriteUVItem.addActionListener(this); | 
|---|
| 213 | 228 |  		menu.add("-"); | 
|---|
 | 229 | +        if (Globals.ADVANCED)  | 
|---|
 | 230 | +        {  | 
|---|
| 214 | 231 |  		generateMeshItem = menu.add(new MenuItem("Generate Meshes")); | 
|---|
| 215 | 232 |  		generateMeshItem.addActionListener(this); | 
|---|
| 216 | 233 |  		poseMeshItem = menu.add(new MenuItem("Set Pose Meshes")); | 
|---|
| 217 | 234 |  		poseMeshItem.addActionListener(this); | 
|---|
| 218 | 235 |  		menu.add("-"); | 
|---|
 | 236 | +        }  | 
|---|
| 219 | 237 |  		resetsupportItem = menu.add(new MenuItem("Reset support")); | 
|---|
| 220 | 238 |  		resetsupportItem.addActionListener(this); | 
|---|
| 221 | 239 |  		linkverticesItem = menu.add(new MenuItem("Link to Support")); | 
|---|
| 222 | 240 |  		linkverticesItem.addActionListener(this); | 
|---|
| 223 | 241 |  		relinkverticesItem = menu.add(new MenuItem("Re-link to Support")); | 
|---|
| 224 | 242 |  		relinkverticesItem.addActionListener(this); | 
|---|
 | 243 | +                  | 
|---|
 | 244 | +        if (Globals.ADVANCED)  | 
|---|
 | 245 | +        {  | 
|---|
| 225 | 246 |  		setMasterItem = menu.add(new MenuItem("Set Master Mesh")); | 
|---|
| 226 | 247 |  		setMasterItem.addActionListener(this); | 
|---|
 | 248 | +        }  | 
|---|
| 227 | 249 |                   | 
|---|
| 228 | 250 |  		oe.menuBar.add(menu = new Menu("Group")); | 
|---|
| 229 | 251 |  		grabItem = menu.add(new MenuItem("Grab")); | 
|---|
| .. | .. | 
|---|
| 234 | 256 |  		frontItem.addActionListener(this); | 
|---|
| 235 | 257 |  		compositeItem = menu.add(new MenuItem("Composite")); | 
|---|
| 236 | 258 |  		compositeItem.addActionListener(this); | 
|---|
| 237 |  | -		hideItem = menu.add(new MenuItem("Hide"));  | 
|---|
 | 259 | +		hideItem = menu.add(new MenuItem("Hidden Group"));  | 
|---|
| 238 | 260 |  		hideItem.addActionListener(this); | 
|---|
| 239 | 261 |  		ungroupItem = menu.add(new MenuItem("Ungroup")); | 
|---|
| 240 | 262 |  		ungroupItem.addActionListener(this); | 
|---|
| .. | .. | 
|---|
| 245 | 267 |  		switchGeoItem.addActionListener(this); | 
|---|
| 246 | 268 |  		switchTransfoItem = menu.add(new MenuItem("Switch Transform")); | 
|---|
| 247 | 269 |  		switchTransfoItem.addActionListener(this); | 
|---|
 | 270 | +		morphItem = menu.add(new MenuItem("Morph Group"));  | 
|---|
 | 271 | +		morphItem.addActionListener(this);  | 
|---|
 | 272 | +                  | 
|---|
 | 273 | +        if (Globals.ADVANCED)  | 
|---|
 | 274 | +        {  | 
|---|
| 248 | 275 |  		physicsItem = menu.add(new MenuItem("Physics")); | 
|---|
| 249 | 276 |  		physicsItem.addActionListener(this); | 
|---|
| 250 | 277 |  		frameselectorItem = menu.add(new MenuItem("Frame Selector")); | 
|---|
| 251 | 278 |  		frameselectorItem.addActionListener(this); | 
|---|
| 252 |  | -		morphItem = menu.add(new MenuItem("Morph"));  | 
|---|
| 253 |  | -		morphItem.addActionListener(this);  | 
|---|
| 254 | 279 |  		scriptNodeItem = menu.add(new MenuItem("Script Node")); | 
|---|
| 255 | 280 |  		scriptNodeItem.addActionListener(this); | 
|---|
| 256 | 281 |  		cameraItem = menu.add(new MenuItem("Camera")); | 
|---|
| 257 | 282 |  		cameraItem.addActionListener(this); | 
|---|
 | 283 | +        }  | 
|---|
| 258 | 284 |                   | 
|---|
| 259 | 285 |  		oe.menuBar.add(menu = new Menu("Object")); | 
|---|
| 260 | 286 |  		textureItem = menu.add(new MenuItem("Texture")); | 
|---|
| .. | .. | 
|---|
| 269 | 295 |  		shadowYItem.addActionListener(this); | 
|---|
| 270 | 296 |                  shadowZItem = menu.add(new MenuItem("Shadow Z")); | 
|---|
| 271 | 297 |  		shadowZItem.addActionListener(this); | 
|---|
 | 298 | +        if (Globals.ADVANCED)  | 
|---|
 | 299 | +        {  | 
|---|
| 272 | 300 |  		linkerItem = menu.add(new MenuItem("Linker")); | 
|---|
| 273 | 301 |  		linkerItem.addActionListener(this); | 
|---|
| 274 |  | -		templateItem = menu.add(new MenuItem("Template"));  | 
|---|
| 275 |  | -		templateItem.addActionListener(this);  | 
|---|
| 276 | 302 |  		attributeItem = menu.add(new MenuItem("Attribute")); | 
|---|
| 277 | 303 |  		attributeItem.addActionListener(this); | 
|---|
 | 304 | +		templateItem = menu.add(new MenuItem("Template"));  | 
|---|
 | 305 | +		templateItem.addActionListener(this);  | 
|---|
| 278 | 306 |  		pointflowItem = menu.add(new MenuItem("Point Flow")); | 
|---|
| 279 | 307 |  		pointflowItem.addActionListener(this); | 
|---|
| 280 | 308 |  		menu.add("-"); | 
|---|
 | 309 | +        }  | 
|---|
| 281 | 310 |  		resetTransformItem = menu.add(new MenuItem("Reset Transform")); | 
|---|
| 282 | 311 |  		resetTransformItem.addActionListener(this); | 
|---|
| 283 | 312 |  		resetCentroidItem = menu.add(new MenuItem("Reset Centroid")); | 
|---|
| .. | .. | 
|---|
| 294 | 323 |  		genNormalsCADItem.addActionListener(this); | 
|---|
| 295 | 324 |  		genNormalsMESHItem = menu.add(new MenuItem("Mesh Normals")); | 
|---|
| 296 | 325 |  		genNormalsMESHItem.addActionListener(this); | 
|---|
 | 326 | +        if (Globals.ADVANCED)  | 
|---|
 | 327 | +        {  | 
|---|
| 297 | 328 |  		genNormalsMINEItem = menu.add(new MenuItem("My Normals")); | 
|---|
| 298 | 329 |  		genNormalsMINEItem.addActionListener(this); | 
|---|
 | 330 | +        }  | 
|---|
| 299 | 331 |  		stripifyItem = menu.add(new MenuItem("Stripify")); | 
|---|
| 300 | 332 |  		stripifyItem.addActionListener(this); | 
|---|
| 301 | 333 |  		unstripifyItem = menu.add(new MenuItem("Unstripify")); | 
|---|
| .. | .. | 
|---|
| 317 | 349 |  		reduce34MeshItem.addActionListener(this); | 
|---|
| 318 | 350 |  		increaseMeshItem = menu.add(new MenuItem("Increase mesh")); | 
|---|
| 319 | 351 |  		increaseMeshItem.addActionListener(this); | 
|---|
| 320 |  | -		smoothMeshItem = menu.add(new MenuItem("Smooth mesh"));  | 
|---|
| 321 |  | -		smoothMeshItem.addActionListener(this);  | 
|---|
| 322 | 352 |  		clipMeshItem = menu.add(new MenuItem("Clip mesh")); | 
|---|
| 323 | 353 |  		clipMeshItem.addActionListener(this); | 
|---|
 | 354 | +                  | 
|---|
 | 355 | +        if (Globals.ADVANCED)  | 
|---|
 | 356 | +        {  | 
|---|
 | 357 | +		smoothMeshItem = menu.add(new MenuItem("Smooth mesh"));  | 
|---|
 | 358 | +		smoothMeshItem.addActionListener(this);  | 
|---|
 | 359 | +        }  | 
|---|
| 324 | 360 |   | 
|---|
| 325 | 361 |                  oe.menuBar.add(menu = new Menu("Attributes")); | 
|---|
| 326 | 362 |  		clearMaterialsItem = menu.add(new MenuItem("Clear Materials")); | 
|---|
| .. | .. | 
|---|
| 330 | 366 |  		liveleavesItem.addActionListener(this); | 
|---|
| 331 | 367 |  		unliveleavesItem = menu.add(new MenuItem("Unlive Leaves")); | 
|---|
| 332 | 368 |  		unliveleavesItem.addActionListener(this); | 
|---|
 | 369 | +        if (Globals.ADVANCED)  | 
|---|
 | 370 | +        {  | 
|---|
| 333 | 371 |  		supportleavesItem = menu.add(new MenuItem("Support Leaves")); | 
|---|
| 334 | 372 |  		supportleavesItem.addActionListener(this); | 
|---|
| 335 | 373 |  		unsupportleavesItem = menu.add(new MenuItem("Unsupport Leaves")); | 
|---|
| 336 | 374 |  		unsupportleavesItem.addActionListener(this); | 
|---|
 | 375 | +        }  | 
|---|
| 337 | 376 |  		hideleavesItem = menu.add(new MenuItem("Hide Leaves")); | 
|---|
| 338 | 377 |  		hideleavesItem.addActionListener(this); | 
|---|
| 339 | 378 |  		showleavesItem = menu.add(new MenuItem("Show Leaves")); | 
|---|
| .. | .. | 
|---|
| 376 | 415 |  		sortbysizeItem.addActionListener(this); | 
|---|
| 377 | 416 |  		sortbynameItem = menu.add(new MenuItem("Sort by name")); | 
|---|
| 378 | 417 |  		sortbynameItem.addActionListener(this); | 
|---|
 | 418 | +        if (Globals.ADVANCED)  | 
|---|
 | 419 | +        {  | 
|---|
| 379 | 420 |  		menu.add("-"); | 
|---|
| 380 | 421 |  		extractGeometriesItem = menu.add(new MenuItem("Link Geometry")); | 
|---|
| 381 | 422 |  		extractGeometriesItem.addActionListener(this); | 
|---|
| .. | .. | 
|---|
| 385 | 426 |  		shareGeometriesItem.addActionListener(this); | 
|---|
| 386 | 427 |  		mergeGeometriesItem = menu.add(new MenuItem("Merge Geometry")); | 
|---|
| 387 | 428 |  		mergeGeometriesItem.addActionListener(this); | 
|---|
 | 429 | +        }  | 
|---|
| 388 | 430 |                   | 
|---|
| 389 | 431 |  		oe.menuBar.add(menu = new Menu("Insert")); | 
|---|
| 390 | 432 |  		buildCreateMenu(menu); | 
|---|
| 391 | 433 |                   | 
|---|
| 392 |  | -                 | 
|---|
| 393 | 434 |                  oe.menuBar.add(menu = new Menu("Include")); | 
|---|
| 394 | 435 |  		importGFDItem = menu.add(new MenuItem("GrafreeD Object...")); | 
|---|
| 395 | 436 |  		importGFDItem.addActionListener(this); | 
|---|
| .. | .. | 
|---|
| 440 | 481 |                  liveCB.setToolTipText("Enabled animation"); | 
|---|
| 441 | 482 |                                  liveCB.addItemListener(this); | 
|---|
| 442 | 483 |   | 
|---|
 | 484 | +		oe.toolbarPanel.add(oneStepButton = new cButton("Step", !GrafreeD.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
 | 485 | +                oneStepButton.setToolTipText("Animate one step forward");  | 
|---|
 | 486 | +		oneStepButton.addActionListener(this);  | 
|---|
 | 487 | +                  | 
|---|
| 443 | 488 |                  oe.toolbarPanel.add(fastCB = new cCheckBox("Fast", CameraPane.FAST)); //, constraints); | 
|---|
| 444 | 489 |                  fastCB.setToolTipText("Fast mode"); | 
|---|
| 445 | 490 |                                  fastCB.addItemListener(this); | 
|---|
| .. | .. | 
|---|
| 588 | 633 |           | 
|---|
| 589 | 634 |          void AddOptions(cGridBag panel) //, GridBagConstraints constraints) | 
|---|
| 590 | 635 |          { | 
|---|
 | 636 | +                panel.add(boxCB = new cCheckBox("Box", CameraPane.BOXMODE)); //, constraints);  | 
|---|
 | 637 | +                boxCB.setToolTipText("Display bounding boxes");  | 
|---|
 | 638 | +                                boxCB.addItemListener(this);  | 
|---|
 | 639 | +                                  | 
|---|
 | 640 | +                panel.add(zoomBoxCB = new cCheckBox("Zoom", CameraPane.ZOOMBOXMODE)); //, constraints);  | 
|---|
 | 641 | +                zoomBoxCB.setToolTipText("Display bounding boxes when moving the wheel");  | 
|---|
 | 642 | +                                zoomBoxCB.addItemListener(this);  | 
|---|
 | 643 | +  | 
|---|
 | 644 | +        if (Globals.ADVANCED)  | 
|---|
 | 645 | +        {  | 
|---|
| 591 | 646 |                  panel.add(supportCB = new cCheckBox("Support", CameraPane.SUPPORT)); //, constraints); | 
|---|
| 592 |  | -                supportCB.setToolTipText("Enabled rigging");  | 
|---|
 | 647 | +                supportCB.setToolTipText("Enable rigging");  | 
|---|
| 593 | 648 |                                  supportCB.addItemListener(this); | 
|---|
| 594 | 649 |   | 
|---|
| 595 | 650 |          //        panel.add(localCB = new cCheckBox("Local", CameraPane.LOCALTRANSFORM), constraints); | 
|---|
| .. | .. | 
|---|
| 607 | 662 |                  slowCB.setToolTipText("Smooth interpolation"); | 
|---|
| 608 | 663 |                                  slowCB.addItemListener(this); | 
|---|
| 609 | 664 |                                   | 
|---|
| 610 |  | -                panel.add(boxCB = new cCheckBox("Box", CameraPane.BOXMODE)); //, constraints);  | 
|---|
| 611 |  | -                boxCB.setToolTipText("Display bounding boxes");  | 
|---|
| 612 |  | -                                boxCB.addItemListener(this);  | 
|---|
| 613 |  | -                                  | 
|---|
| 614 |  | -                panel.add(zoomBoxCB = new cCheckBox("Zoom", CameraPane.ZOOMBOXMODE)); //, constraints);  | 
|---|
| 615 |  | -                zoomBoxCB.setToolTipText("Display bounding boxes when moving the wheel");  | 
|---|
| 616 |  | -                                zoomBoxCB.addItemListener(this);  | 
|---|
| 617 |  | -  | 
|---|
| 618 | 665 |  //        	constraints.gridy += 1; | 
|---|
| 619 | 666 |  //                panel.add(speakerMocapCB = new cCheckBox("Mocap", CameraPane.SPEAKERMOCAP), constraints); | 
|---|
| 620 | 667 |  //                                speakerMocapCB.addItemListener(this); | 
|---|
| .. | .. | 
|---|
| 645 | 692 |                  panel.add(lookAtCB = new cCheckBox("Target", CameraPane.LOOKAT)); //, constraints); | 
|---|
| 646 | 693 |                  lookAtCB.setToolTipText("Look-at target"); | 
|---|
| 647 | 694 |                                  lookAtCB.addItemListener(this); | 
|---|
 | 695 | +                  | 
|---|
 | 696 | +        }  | 
|---|
| 648 | 697 |                                   | 
|---|
| 649 | 698 |                  cGridBag fill = new cGridBag(); | 
|---|
| 650 | 699 |                                   | 
|---|
| .. | .. | 
|---|
| 935 | 984 |              { | 
|---|
| 936 | 985 |                  loadClipboard(true); | 
|---|
| 937 | 986 |                  objEditor.jTree.setSelectionPath(destinationPath); | 
|---|
| 938 |  | -                pasteInto(false);  | 
|---|
 | 987 | +                pasteInto(false, false);  | 
|---|
| 939 | 988 |              } else { | 
|---|
| 940 | 989 |                  loadClipboard(false); | 
|---|
| 941 | 990 |                  objEditor.jTree.setSelectionPath(destinationPath); | 
|---|
| 942 |  | -                pasteInto(false); // true); // ???  | 
|---|
 | 991 | +                pasteInto(false, false); // true); // ???  | 
|---|
| 943 | 992 |              } | 
|---|
| 944 | 993 |  	} | 
|---|
| 945 | 994 |  	public void	dropActionChanged(DropTargetDragEvent dtde)  | 
|---|
| .. | .. | 
|---|
| 1061 | 1110 |  		kleinItem.addActionListener(this); | 
|---|
| 1062 | 1111 |  		particleItem = menu.add(new MenuItem("Particle system")); | 
|---|
| 1063 | 1112 |  		particleItem.addActionListener(this); | 
|---|
 | 1113 | +        if (Globals.ADVANCED)  | 
|---|
 | 1114 | +        {  | 
|---|
| 1064 | 1115 |  		ragdollItem = menu.add(new MenuItem("Rag Walk")); | 
|---|
| 1065 | 1116 |  		ragdollItem.addActionListener(this); | 
|---|
| 1066 | 1117 |  		ragdoll2Item = menu.add(new MenuItem("Rag Fall")); | 
|---|
| 1067 | 1118 |  		ragdoll2Item.addActionListener(this); | 
|---|
 | 1119 | +        }  | 
|---|
| 1068 | 1120 |  		menu.add("-"); | 
|---|
| 1069 |  | -		meshItem = menu.add(new MenuItem("Mesh"));  | 
|---|
 | 1121 | +		meshItem = menu.add(new MenuItem("Dynamic Mesh"));  | 
|---|
| 1070 | 1122 |  		meshItem.addActionListener(this); | 
|---|
| 1071 | 1123 |  	//	meshGroupItem = menu.add(new MenuItem("Mesh Group")); | 
|---|
| 1072 | 1124 |  	//	meshGroupItem.addActionListener(this); | 
|---|
 | 1125 | +        if (Globals.ADVANCED)  | 
|---|
 | 1126 | +        {  | 
|---|
| 1073 | 1127 |  		springItem = menu.add(new MenuItem("Spring")); | 
|---|
| 1074 | 1128 |  		springItem.addActionListener(this); | 
|---|
| 1075 | 1129 |  		flagItem = menu.add(new MenuItem("Flag")); | 
|---|
| 1076 | 1130 |  		flagItem.addActionListener(this); | 
|---|
| 1077 |  | -		bezierItem = menu.add(new MenuItem("Patch"));  | 
|---|
| 1078 |  | -		bezierItem.addActionListener(this);  | 
|---|
| 1079 |  | -		checkerItem = menu.add(new MenuItem("Checker"));  | 
|---|
| 1080 |  | -		checkerItem.addActionListener(this);  | 
|---|
| 1081 | 1131 |  		blobItem = menu.add(new MenuItem("Blob")); | 
|---|
| 1082 | 1132 |  		blobItem.addActionListener(this); | 
|---|
| 1083 | 1133 |  		latheItem = menu.add(new MenuItem("Lathe")); | 
|---|
| 1084 | 1134 |  		latheItem.addActionListener(this); | 
|---|
 | 1135 | +        }  | 
|---|
 | 1136 | +		bezierItem = menu.add(new MenuItem("Bezier Patch"));  | 
|---|
 | 1137 | +		bezierItem.addActionListener(this);  | 
|---|
 | 1138 | +		overlayItem = menu.add(new MenuItem("Overlay"));  | 
|---|
 | 1139 | +		overlayItem.addActionListener(this);  | 
|---|
| 1085 | 1140 |  		lightItem = menu.add(new MenuItem("Light")); | 
|---|
| 1086 | 1141 |  		lightItem.addActionListener(this); | 
|---|
| 1087 | 1142 |  		menu.add("-"); | 
|---|
| .. | .. | 
|---|
| 1091 | 1146 |  		loopItem.addActionListener(this); | 
|---|
| 1092 | 1147 |  		doubleItem = menu.add(new MenuItem("Fork")); | 
|---|
| 1093 | 1148 |  		doubleItem.addActionListener(this); | 
|---|
 | 1149 | +        if (Globals.ADVANCED)  | 
|---|
 | 1150 | +        {  | 
|---|
| 1094 | 1151 |  		tripleItem = menu.add(new MenuItem("Trident")); | 
|---|
| 1095 | 1152 |  		tripleItem.addActionListener(this); | 
|---|
 | 1153 | +        }  | 
|---|
| 1096 | 1154 |  	} | 
|---|
| 1097 | 1155 |           | 
|---|
| 1098 | 1156 |  	void buildToolsMenu(Menu menu) | 
|---|
| .. | .. | 
|---|
| 1106 | 1164 |  		parseverticesItem.addActionListener(this); | 
|---|
| 1107 | 1165 |  		textureFieldItem = menu.add(new MenuItem("Texture Field")); | 
|---|
| 1108 | 1166 |  		textureFieldItem.addActionListener(this); | 
|---|
| 1109 |  | -		alignItem = menu.add(new MenuItem("Align"));  | 
|---|
 | 1167 | +		alignItem = menu.add(new MenuItem("Align Object"));  | 
|---|
| 1110 | 1168 |  		alignItem.addActionListener(this); | 
|---|
| 1111 |  | -		mirrorItem = menu.add(new MenuItem("Mirror Poses"));  | 
|---|
| 1112 |  | -		mirrorItem.addActionListener(this);  | 
|---|
| 1113 | 1169 |  		reduceMorphItem = menu.add(new MenuItem("Reduce Morphs")); | 
|---|
| 1114 | 1170 |  		reduceMorphItem.addActionListener(this); | 
|---|
| 1115 | 1171 |  		reduce34MorphItem = menu.add(new MenuItem("Reduce Morphs (34)")); | 
|---|
| .. | .. | 
|---|
| 1117 | 1173 |                   | 
|---|
| 1118 | 1174 |  		menu.add(computeAOItem = new MenuItem("Compute AO")); | 
|---|
| 1119 | 1175 |  		computeAOItem.addActionListener(this); | 
|---|
| 1120 |  | -		menu.add("-");  | 
|---|
| 1121 | 1176 |                   | 
|---|
 | 1177 | +        if (Globals.ADVANCED)  | 
|---|
 | 1178 | +        {  | 
|---|
 | 1179 | +		mirrorItem = menu.add(new MenuItem("Mirror Poses"));  | 
|---|
 | 1180 | +		mirrorItem.addActionListener(this);  | 
|---|
 | 1181 | +		menu.add("-");  | 
|---|
| 1122 | 1182 |  		menu.add(memoryItem = new MenuItem("Memory Usage")); | 
|---|
| 1123 | 1183 |  		memoryItem.addActionListener(this); | 
|---|
| 1124 | 1184 |  		menu.add(analyzeItem = new MenuItem("Analyze")); | 
|---|
| .. | .. | 
|---|
| 1141 | 1201 |  		menu.add("-"); | 
|---|
| 1142 | 1202 |  		menu.add(editScriptItem = new MenuItem("Edit Script...")); | 
|---|
| 1143 | 1203 |  		editScriptItem.addActionListener(this); | 
|---|
 | 1204 | +        }  | 
|---|
| 1144 | 1205 |          } | 
|---|
| 1145 | 1206 |           | 
|---|
| 1146 | 1207 |          void ScreenFit() | 
|---|
| .. | .. | 
|---|
| 1642 | 1703 |  		{ | 
|---|
| 1643 | 1704 |  			makeSomething(new BezierSurface()); | 
|---|
| 1644 | 1705 |  		} else | 
|---|
| 1645 |  | -		if (source == checkerItem)  | 
|---|
 | 1706 | +		if (source == overlayItem)  | 
|---|
| 1646 | 1707 |  		{ | 
|---|
| 1647 | 1708 |                      /* | 
|---|
| 1648 | 1709 |  			Object3D obj = new BezierSurface(5,8); | 
|---|
| .. | .. | 
|---|
| 1830 | 1891 |  		{ | 
|---|
| 1831 | 1892 |                      DumpObject(); | 
|---|
| 1832 | 1893 |  		} else | 
|---|
 | 1894 | +		if (source == oneStepButton)  | 
|---|
 | 1895 | +		{  | 
|---|
 | 1896 | +                    Globals.ONESTEP = true;  | 
|---|
 | 1897 | +                    cameraView.repaint();  | 
|---|
 | 1898 | +		} else  | 
|---|
| 1833 | 1899 |  		if (source == screenfitButton) | 
|---|
| 1834 | 1900 |  		{ | 
|---|
| 1835 | 1901 |  			//Reload(lastConverter, lastFilename, true); | 
|---|
| .. | .. | 
|---|
| 1902 | 1968 |  		{ | 
|---|
| 1903 | 1969 |  			paste(false); | 
|---|
| 1904 | 1970 |  		} else | 
|---|
 | 1971 | +		if (source == pasteIntoItem)  | 
|---|
 | 1972 | +		{  | 
|---|
 | 1973 | +			pasteInto(true, false);  | 
|---|
 | 1974 | +		} else  | 
|---|
| 1905 | 1975 |  		if (source == pasteLinkItem) | 
|---|
| 1906 | 1976 |  		{ | 
|---|
| 1907 |  | -			pasteInto(false);  | 
|---|
 | 1977 | +			pasteInto(false, false);  | 
|---|
| 1908 | 1978 |  		} else | 
|---|
| 1909 | 1979 |  		if (source == pasteCloneItem) | 
|---|
| 1910 | 1980 |  		{ | 
|---|
| 1911 |  | -			pasteInto(true);  | 
|---|
 | 1981 | +			pasteInto(true, true);  | 
|---|
| 1912 | 1982 |  		} else | 
|---|
| 1913 | 1983 |  		if (source == pasteExpandItem) | 
|---|
| 1914 | 1984 |  		{ | 
|---|
| .. | .. | 
|---|
| 2110 | 2180 |              Globals.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR)); | 
|---|
| 2111 | 2181 |                          for (int i=0; i<group.selection.size(); i++) | 
|---|
| 2112 | 2182 |                          { | 
|---|
| 2113 |  | -                            boolean random = CameraPane.RANDOM;  | 
|---|
| 2114 |  | -                            CameraPane.RANDOM = false; // parse all random nodes  | 
|---|
 | 2183 | +                            boolean random = CameraPane.SWITCH;  | 
|---|
 | 2184 | +                            CameraPane.SWITCH = false; // parse all random nodes  | 
|---|
| 2115 | 2185 |                              group.selection.get(i).linkVerticesThis(content); | 
|---|
| 2116 | 2186 |                        //      group.selection.get(i).setMasterThis(content); // should be identity | 
|---|
| 2117 |  | -                            CameraPane.RANDOM = random;  | 
|---|
 | 2187 | +                            CameraPane.SWITCH = random;  | 
|---|
| 2118 | 2188 |                          } | 
|---|
| 2119 | 2189 |              Globals.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.DEFAULT_CURSOR)); | 
|---|
| 2120 | 2190 |  		refreshContents(); | 
|---|
| .. | .. | 
|---|
| 2124 | 2194 |  		{ | 
|---|
| 2125 | 2195 |                      for (int i=0; i<group.selection.size(); i++) | 
|---|
| 2126 | 2196 |                      { | 
|---|
| 2127 |  | -                        boolean random = CameraPane.RANDOM;  | 
|---|
| 2128 |  | -                        CameraPane.RANDOM = false; // parse all random nodes  | 
|---|
 | 2197 | +                        boolean random = CameraPane.SWITCH;  | 
|---|
 | 2198 | +                        CameraPane.SWITCH = false; // parse all random nodes  | 
|---|
| 2129 | 2199 |                          group.selection.get(i).linkVerticesThis(null); | 
|---|
| 2130 |  | -                        CameraPane.RANDOM = random;  | 
|---|
 | 2200 | +                        CameraPane.SWITCH = random;  | 
|---|
| 2131 | 2201 |                      } | 
|---|
| 2132 | 2202 |   | 
|---|
| 2133 | 2203 |                      refreshContents(); | 
|---|
| 2134 | 2204 |  		} else | 
|---|
| 2135 | 2205 |  		if (source == relinkverticesItem) | 
|---|
| 2136 | 2206 |  		{ | 
|---|
| 2137 |  | -                    boolean random = CameraPane.RANDOM;  | 
|---|
| 2138 |  | -                    CameraPane.RANDOM = false; // parse all random nodes  | 
|---|
 | 2207 | +                    boolean random = CameraPane.SWITCH;  | 
|---|
 | 2208 | +                    CameraPane.SWITCH = false; // parse all random nodes  | 
|---|
| 2139 | 2209 |                      group.selection.RelinkToSupport(); | 
|---|
| 2140 |  | -                    CameraPane.RANDOM = random;  | 
|---|
 | 2210 | +                    CameraPane.SWITCH = random;  | 
|---|
| 2141 | 2211 |   | 
|---|
| 2142 | 2212 |                      refreshContents(); | 
|---|
| 2143 | 2213 |  		} else | 
|---|
| .. | .. | 
|---|
| 3611 | 3681 |   | 
|---|
| 3612 | 3682 |              SwitchNode sn = new SwitchNode(poses, Object3D.GEOMETRY); | 
|---|
| 3613 | 3683 |   | 
|---|
| 3614 |  | -            boolean random = CameraPane.RANDOM;  | 
|---|
| 3615 |  | -            CameraPane.RANDOM = false; // parse all random nodes  | 
|---|
 | 3684 | +            boolean random = CameraPane.SWITCH;  | 
|---|
 | 3685 | +            CameraPane.SWITCH = false; // parse all random nodes  | 
|---|
| 3616 | 3686 |              lowres.linkVerticesThis(null); | 
|---|
| 3617 | 3687 |              lowres.linkVerticesThis(sn); | 
|---|
| 3618 |  | -            CameraPane.RANDOM = random;  | 
|---|
 | 3688 | +            CameraPane.SWITCH = random;  | 
|---|
| 3619 | 3689 |   | 
|---|
| 3620 | 3690 |              System.err.flush(); | 
|---|
| 3621 | 3691 |   | 
|---|
| .. | .. | 
|---|
| 4373 | 4443 |  		refreshContents(); | 
|---|
| 4374 | 4444 |  	} | 
|---|
| 4375 | 4445 |  	 | 
|---|
| 4376 |  | -	void pasteInto(boolean copyit)  | 
|---|
 | 4446 | +	void pasteInto(boolean copyit, boolean clone)  | 
|---|
| 4377 | 4447 |  	{ | 
|---|
| 4378 | 4448 |  //		if (GrafreeD.clipboard == null) | 
|---|
| 4379 | 4449 |  //			return; | 
|---|
| .. | .. | 
|---|
| 4402 | 4472 |  		if (copyit) | 
|---|
| 4403 | 4473 |  		{ | 
|---|
| 4404 | 4474 |  		//	paste(false); | 
|---|
| 4405 |  | -                    CloneClipboard(false); // sept 2014  | 
|---|
 | 4475 | +                        if (clone)  | 
|---|
 | 4476 | +                        {  | 
|---|
 | 4477 | +                            CloneClipboard(false); // sept 2014  | 
|---|
 | 4478 | +                        }  | 
|---|
 | 4479 | +                        else  | 
|---|
 | 4480 | +                        {  | 
|---|
 | 4481 | +                            paste(false);  | 
|---|
 | 4482 | +                        }  | 
|---|
| 4406 | 4483 |  		} | 
|---|
| 4407 | 4484 |  		else | 
|---|
| 4408 | 4485 |  		{ | 
|---|
| .. | .. | 
|---|
| 4950 | 5027 |  	cButton clearpanelButton; | 
|---|
| 4951 | 5028 |  	cButton unselectButton; | 
|---|
| 4952 | 5029 |  	 | 
|---|
 | 5030 | +	cButton oneStepButton;  | 
|---|
 | 5031 | +          | 
|---|
| 4953 | 5032 |  	cButton screenfitButton; | 
|---|
| 4954 | 5033 |  	cButton screenfitpointButton; | 
|---|
| 4955 | 5034 |  	cButton snapobjectButton; | 
|---|
| .. | .. | 
|---|
| 5004 | 5083 |  	private MenuItem mergeGeometriesItem; | 
|---|
| 5005 | 5084 |  	private MenuItem copyItem; | 
|---|
| 5006 | 5085 |  	private MenuItem pasteItem; | 
|---|
 | 5086 | +	private MenuItem pasteIntoItem;  | 
|---|
| 5007 | 5087 |  	private MenuItem pasteLinkItem; | 
|---|
| 5008 | 5088 |  	private MenuItem pasteCloneItem; | 
|---|
| 5009 | 5089 |  	private MenuItem pasteExpandItem; | 
|---|
| .. | .. | 
|---|
| 5101 | 5181 |  	private MenuItem blobItem; | 
|---|
| 5102 | 5182 |  	private MenuItem latheItem; | 
|---|
| 5103 | 5183 |  	private MenuItem bezierItem; | 
|---|
| 5104 |  | -	private MenuItem checkerItem;  | 
|---|
 | 5184 | +	private MenuItem overlayItem;  | 
|---|
| 5105 | 5185 |  	private MenuItem meshItem; | 
|---|
| 5106 | 5186 |  //	private MenuItem meshGroupItem; | 
|---|
| 5107 | 5187 |  	private MenuItem springItem; | 
|---|