Normand Briere
2019-10-20 49d9c15d375942997692f7fccfb697665d0cb59e
Sort by size
4 files modified
250 ■■■■ changed files
CameraPane.java 24 ●●●● patch | view | raw | blame | history
GroupEditor.java 17 ●●●● patch | view | raw | blame | history
ObjEditor.java 17 ●●●● patch | view | raw | blame | history
Object3D.java 192 ●●●● patch | view | raw | blame | history
CameraPane.java
....@@ -2190,9 +2190,18 @@
21902190 //SwitchCameras();
21912191 }
21922192
2193
+ cVector origin = new cVector();
2194
+
21932195 void RevertCamera()
21942196 {
2195
- SwapCamera(1, 0);
2197
+ if (lightMode)
2198
+ {
2199
+ CreateSelectedPoint();
2200
+ selectedpoint.GetOrigin(origin);
2201
+ lightCamera.setAim(new cVector(3,4,5), origin);
2202
+ }
2203
+ else
2204
+ SwapCamera(1, 0);
21962205
21972206 //SwitchCameras();
21982207 }
....@@ -15024,9 +15033,9 @@
1502415033 // if (isVR)
1502515034 // manipCamera.RotateInterest(0, speed);
1502615035 // else
15027
- if (isVR)
15028
- ViewAngle(-speed*delta*scale);
15029
- else
15036
+ //if (isVR)
15037
+ // ViewAngle(-speed*delta*scale);
15038
+ //else
1503015039 manipCamera.Translate(0, -speed*delta*scale, getWidth());
1503115040 }
1503215041 else
....@@ -15068,9 +15077,9 @@
1506815077 // if (isVR)
1506915078 // manipCamera.RotateInterest(0, -speed);
1507015079 // else
15071
- if (isVR)
15072
- ViewAngle(speed*delta*scale);
15073
- else
15080
+ //if (isVR)
15081
+ // ViewAngle(speed*delta*scale);
15082
+ //else
1507415083 manipCamera.Translate(0, speed*delta*scale, getWidth());
1507515084 }
1507615085 else
....@@ -15823,6 +15832,7 @@
1582315832 {
1582415833 //PrintMemory();
1582515834 ToggleImageFlip();
15835
+ repaint();
1582615836 break;
1582715837 }
1582815838 case 'M':
GroupEditor.java
....@@ -3699,7 +3699,7 @@
36993699 }
37003700
37013701 ResetModel();
3702
- refreshContents();
3702
+ refreshContents(true);
37033703 } else
37043704 if (source == sortbynameItem)
37053705 {
....@@ -3711,7 +3711,7 @@
37113711 }
37123712
37133713 ResetModel();
3714
- refreshContents();
3714
+ refreshContents(true);
37153715 } else
37163716 if (source == attachPigmentItem)
37173717 {
....@@ -4322,7 +4322,7 @@
43224322 ResetTransform(-1);
43234323 }
43244324
4325
- void ScaleSelection(int scale)
4325
+ void ScaleSelection(float scale)
43264326 {
43274327 Object3D obj;
43284328 for (Enumeration e = group.selection.elements(); e.hasMoreElements();)
....@@ -4330,7 +4330,10 @@
43304330 obj = (Object3D)e.nextElement();
43314331
43324332 if (obj.toParent == null)
4333
- continue;
4333
+ {
4334
+ obj.toParent = LA.newMatrix();
4335
+ obj.fromParent = LA.newMatrix();
4336
+ }
43344337
43354338 obj.Scale(scale);
43364339
....@@ -5429,6 +5432,11 @@
54295432
54305433 SetPinStates(tps != null && tps.length > 0);
54315434
5435
+ this.muteSlider = true;
5436
+ scaleSlider.setInteger(1);
5437
+ scaleInvSlider.setInteger(1);
5438
+ this.muteSlider = false;
5439
+
54325440 refreshContents();
54335441 //return true;
54345442 }
....@@ -5471,6 +5479,7 @@
54715479 {
54725480 objEditor.ClearInfo(); // .GetMaterial());
54735481
5482
+ if (group.selection.Size() < 100)
54745483 for (int i=0; i < group.selection.Size(); i++)
54755484 {
54765485 Object3D child = (Object3D) group.selection.get(i);
ObjEditor.java
....@@ -474,7 +474,7 @@
474474 importOBJItem.addActionListener(this);
475475 import3DSItem = menu.add(new MenuItem("3DS file..."));
476476 import3DSItem.addActionListener(this);
477
- if (Globals.ADVANCED)
477
+ //if (Globals.ADVANCED)
478478 {
479479 importVRMLX3DItem = menu.add(new MenuItem("VRML/X3D file..."));
480480 importVRMLX3DItem.addActionListener(this);
....@@ -1761,9 +1761,14 @@
17611761
17621762 transformPanel.add(resetTransformPanel);
17631763
1764
- cGridBag scalePanel = AddSlider(transformPanel, "Scale", 1, 10, 1);
1764
+ cGridBag scalePanel = AddSlider(transformPanel, "Inflate", 1, 10, 1);
17651765 scalePanel.preferredHeight = 2;
17661766 scaleSlider = (cNumberSlider)scalePanel.getComponent(1);
1767
+ transformPanel.add(scalePanel);
1768
+
1769
+ scalePanel = AddSlider(transformPanel, "Deflate", 1, 10, 1);
1770
+ scalePanel.preferredHeight = 2;
1771
+ scaleInvSlider = (cNumberSlider)scalePanel.getComponent(1);
17671772 transformPanel.add(scalePanel);
17681773
17691774 transformPanel.add(XYZPanel);
....@@ -5545,8 +5550,9 @@
55455550 cNumberSlider versionField; // selection (off)
55465551
55475552 cNumberSlider scaleSlider;
5553
+ cNumberSlider scaleInvSlider;
55485554
5549
- void ScaleSelection(int scale)
5555
+ void ScaleSelection(float scale)
55505556 {
55515557 }
55525558
....@@ -5596,9 +5602,10 @@
55965602 return;
55975603 }
55985604
5599
- if (e.getSource() == scaleSlider)
5605
+ if (!muteSlider && (e.getSource() == scaleSlider || e.getSource() == scaleInvSlider))
56005606 {
5601
- int scale = scaleSlider.getInteger();
5607
+ float scale = scaleSlider.getInteger();
5608
+ scale /= scaleInvSlider.getInteger();
56025609
56035610 ScaleSelection(scale);
56045611 return;
Object3D.java
....@@ -45,6 +45,20 @@
4545
4646 ScriptNode scriptnode;
4747
48
+ void GetOrigin(cVector o)
49
+ {
50
+ o.x = this.toParent[3][0];
51
+ o.y = this.toParent[3][1];
52
+ o.z = this.toParent[3][2];
53
+ }
54
+
55
+ void SetOrigin(cVector o)
56
+ {
57
+ this.toParent[3][0] = o.x;
58
+ this.toParent[3][1] = o.y;
59
+ this.toParent[3][2] = o.z;
60
+ }
61
+
4862 void deepCopyNode(Object3D other)
4963 {
5064 other.skyboxname = skyboxname;
....@@ -659,27 +673,74 @@
659673 return this;
660674 }
661675
676
+ class SizeCompare implements Comparable
677
+ {
678
+ int size;
679
+ Object3D child;
680
+
681
+ SizeCompare(Object3D c)
682
+ {
683
+ child = c;
684
+ size = c.MemorySize();
685
+ }
686
+
687
+ public int compareTo(Object o)
688
+ {
689
+ SizeCompare comp = (SizeCompare) o;
690
+
691
+ return comp.size < size ? 1 : -1;
692
+ }
693
+ }
694
+
695
+ transient SizeCompare[] sizecompare = null;
696
+
662697 void SortBySize()
663698 {
664
- boolean sorted = false;
699
+// boolean sorted = false;
700
+//
701
+// while (!sorted)
702
+// {
703
+// sorted = true;
704
+//
705
+// for (int i=0; i<Size()-1; i++)
706
+// {
707
+// Object3D obji = get(i);
708
+// Object3D objj = get(i+1);
709
+//
710
+// if (obji.MemorySize() < objj.MemorySize())
711
+// {
712
+// set(i, objj);
713
+// set(i+1, obji);
714
+//
715
+// sorted = false;
716
+// }
717
+// }
718
+// }
719
+
720
+ int count = Size();
665721
666
- while (!sorted)
722
+ if (sizecompare == null || sizecompare.length != count)
667723 {
668
- sorted = true;
669
-
670
- for (int i=0; i<Size()-1; i++)
724
+ sizecompare = new SizeCompare[count];
725
+
726
+ for (int k=0; k<count; k++)
671727 {
672
- Object3D obji = get(i);
673
- Object3D objj = get(i+1);
674
-
675
- if (obji.MemorySize() < objj.MemorySize())
676
- {
677
- set(i, objj);
678
- set(i+1, obji);
679
-
680
- sorted = false;
681
- }
728
+ sizecompare[k] = new SizeCompare(get(k));
682729 }
730
+ }
731
+ else
732
+ {
733
+ for (int k=0; k<count; k++)
734
+ {
735
+ sizecompare[k].size = get(k).MemorySize();
736
+ }
737
+ }
738
+
739
+ java.util.Arrays.sort(sizecompare);
740
+
741
+ for (int i=0; i<count; i++)
742
+ {
743
+ set(i, sizecompare[i].child);
683744 }
684745 }
685746
....@@ -711,34 +772,59 @@
711772
712773 int MemorySize()
713774 {
714
- if (memorysize == 0)
775
+// if (memorysize == 0)
776
+// {
777
+// try
778
+// {
779
+// Object3D obj = this;
780
+//
781
+// Object3D parent = obj.parent;
782
+// obj.parent = null;
783
+// Object3D support = obj.support;
784
+// obj.support = null;
785
+//
786
+// java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();
787
+// java.io.ObjectOutputStream out = new java.io.ObjectOutputStream(baos);
788
+//
789
+// out.writeObject(obj);
790
+//
791
+// obj.parent = parent;
792
+// obj.support = support;
793
+//
794
+// memorysize = baos.toByteArray().length;
795
+// }
796
+// catch (Exception e)
797
+// {
798
+// e.printStackTrace();
799
+// }
800
+// }
801
+//
802
+// return memorysize;
803
+
804
+ if (blockloop)
715805 {
716
- try
717
- {
718
- Object3D obj = this;
806
+ return 0;
807
+ }
719808
720
- Object3D parent = obj.parent;
721
- obj.parent = null;
722
- Object3D support = obj.support;
723
- obj.support = null;
724
-
725
- java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();
726
- java.io.ObjectOutputStream out = new java.io.ObjectOutputStream(baos);
727
-
728
- out.writeObject(obj);
729
-
730
- obj.parent = parent;
731
- obj.support = support;
732
-
733
- memorysize = baos.toByteArray().length;
734
- }
735
- catch (Exception e)
736
- {
737
- e.printStackTrace();
738
- }
809
+ int memory = 0;
810
+
811
+ if (bRep != null)
812
+ {
813
+ memory = bRep.VertexCount();
739814 }
740815
741
- return memorysize;
816
+ blockloop = true;
817
+
818
+ for (int i = 0; i < Size(); i++)
819
+ {
820
+ Object3D obj = (Object3D) Children().get(i);
821
+
822
+ memory += obj.MemorySize();
823
+ }
824
+
825
+ blockloop = false;
826
+
827
+ return memory;
742828 }
743829
744830 void Slower()
....@@ -6193,6 +6279,8 @@
61936279 static cVector maxima = new cVector();
61946280 static javax.vecmath.Point3d center = new javax.vecmath.Point3d();
61956281
6282
+ boolean compiling;
6283
+
61966284 void Draw(iCameraPane display, Object3D /*Composite*/ root, boolean selected, boolean blocked)
61976285 {
61986286 Invariants(); // june 2013
....@@ -6278,7 +6366,8 @@
62786366
62796367 boolean usecalllists = !IsDynamic() &&
62806368 IsStatic() && GetBRep() != null && (!CameraPane.SUPPORT || support == null || !Link2Support()); // !(this instanceof cSpring) && !(this instanceof BezierPatch);
6281
- //boolean usecalllists = false; //!IsLive(); // IsStatic() && GetBRep() != null && (!CameraPane.SUPPORT || support == null) && !link2master; // !(this instanceof cSpring) && !(this instanceof BezierPatch);
6369
+
6370
+ //usecalllists = false; //!IsLive(); // IsStatic() && GetBRep() != null && (!CameraPane.SUPPORT || support == null) && !link2master; // !(this instanceof cSpring) && !(this instanceof BezierPatch);
62826371
62836372 //usecalllists &= display.DrawMode() == display.DEFAULT; // Don't compute list in shadow pass.
62846373
....@@ -6332,7 +6421,9 @@
63326421 display.NewList(bRep.displaylist);
63336422 }
63346423
6424
+ compiling = true;
63356425 CallList(display, root, selected, blocked);
6426
+ compiling = false;
63366427
63376428 // compiled = true;
63386429 if (usecalllists && bRep.displaylist > 0)
....@@ -6807,14 +6898,17 @@
68076898
68086899 void DrawNode(iCameraPane display, Object3D /*Composite*/ root, boolean selected)
68096900 {
6810
- if (display.DrawMode() == display.SHADOW && projectedVertices != null && projectedVertices.length > 2 && projectedVertices[2].y >= 10000)
6811
- return; // no shadow for transparent objects
6812
-
6813
- if (display.DrawMode() == iCameraPane.SELECTION && dontselect)
6814
- return;
6815
-
6816
- if (hide)
6817
- return;
6901
+ if (!compiling)
6902
+ {
6903
+ if (display.DrawMode() == display.SHADOW && projectedVertices != null && projectedVertices.length > 2 && projectedVertices[2].y >= 10000)
6904
+ return; // no shadow for transparent objects
6905
+
6906
+ if (display.DrawMode() == iCameraPane.SELECTION && dontselect)
6907
+ return;
6908
+
6909
+ if (hide)
6910
+ return;
6911
+ }
68186912
68196913 if (scriptnode != null)
68206914 {
....@@ -8351,7 +8445,7 @@
83518445 objname = name + " " + System.identityHashCode(this) + " (" + parent.name + " " + System.identityHashCode(parent) + ")";
83528446 } else
83538447 {
8354
- objname = GetName() + (Math.abs(count) == 1000 ? (count == 1000 ? " " : " * ") : (" (" + (count - 1) + ")")) + /*(IsSelected()?"(selected) ":"") + (touched?"(touched) ":"") */ "";
8448
+ objname = GetName() + (Math.abs(count) == 1000 ? (count == 1000 ? " " : " * ") : (" (" + ((bRep==null)?(count - 1):bRep.VertexCount()) + ")")) + /*(IsSelected()?"(selected) ":"") + (touched?"(touched) ":"") */ "";
83558449 } // + super.toString();
83568450 //return name + " (" + (SizeOf.deepSizeOf(this)/1024) + "K) " + this.getClass().getName();
83578451