From: <ha...@us...> - 2006-09-20 21:29:33
|
Revision: 5624 http://svn.sourceforge.net/jmol/?rev=5624&view=rev Author: hansonr Date: 2006-09-20 14:29:29 -0700 (Wed, 20 Sep 2006) Log Message: ----------- cartoonRocket fix for strange appendage Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java Modified: trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java 2006-09-20 20:30:46 UTC (rev 5623) +++ trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java 2006-09-20 21:29:29 UTC (rev 5624) @@ -190,41 +190,51 @@ } void render1Chain() { - boolean lastWasSpecial = false; + boolean lastWasSheet = false; boolean lastWasHelix = false; + + // this code is REALLY BAD, I admit. Key structures that must render properly + // include 1crn and 7hvp + for (int i = monomerCount; --i >= 0;) { + // runs backwards, so it can render the heads first Monomer group = monomers[i]; if ((group.shapeVisibilityFlags & myVisibilityFlag) != 0) { short colix = Graphics3D.inheritColix(colixes[i], group.getLeadAtom().colixAtom); - boolean isSpecial = isSpecials[i]; - boolean isHelix = (renderAsRockets ? isHelixes[i] : false); - if (isHelix) { - // skip helixes if rockets - } else if (isSpecial) { - if (lastWasSpecial && !lastWasHelix) + boolean isHelix = isHelixes[i]; + boolean isSheet = isSpecials[i] && !isHelix; + boolean isHelixRocket = (renderAsRockets ? isHelix : false); + if (isHelixRocket) { + // skip helixRockets in this pass + } else if (isSheet || isHelix) { + if (lastWasSheet && isSheet || lastWasHelix && isHelix) { render2StrandSegment(monomerCount, group, colix, mads, i); - else + } else { render2StrandArrowhead(monomerCount, group, colix, mads, i); - } else if (true || !renderAsRockets || isNucleicPolymer) { - if (lastWasHelix) { + } + } else { + //turn + if (lastWasHelix && !isHelix && !isSheet) { renderRopeSegment(colix, mads, i, monomerCount, monomers, screens, isSpecials); } else if (!renderAsRockets || i == 0 || !isHelixes[i - 1]) { renderRopeSegment(colix, mads, i, monomerCount, monomers, - leadMidpointScreens, isSpecials); + leadMidpointScreens, isSpecials); } if (isNucleicPolymer) renderNucleicBaseStep((NucleicMonomer) group, colix, mads[i], leadMidpointScreens[i + 1]); } - lastWasSpecial = isSpecial; + lastWasSheet = isSheet; lastWasHelix = isHelix; } else { - lastWasSpecial = false; + lastWasHelix = lastWasSheet = false; } } + //doing the cylinders separately because we want to connect them if we can. + if (renderAsRockets && !isNucleicPolymer && !isCarbohydratePolymer) { lastWasHelix = false; for (int i = 0; i < monomerCount; ++i) { @@ -237,9 +247,10 @@ boolean isHelix = isHelixes[i]; if (isHelix) { renderHelixAsRocket(group, colix, mads[i], i > 0 && isHelixes[i-1]); - if (newRockets && i > 0 && !isHelixes[i-1]) + if (newRockets && i > 0 && !isSpecials[i-1]) { renderRopeSegment2(colix, mads, i, i - 1, monomerCount, monomers, screens, null); + } } else if (isSpecials[i]) { // sheet done above } else if (lastWasHelix) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ni...@us...> - 2006-09-25 19:44:25
|
Revision: 5718 http://svn.sourceforge.net/jmol/?rev=5718&view=rev Author: nicove Date: 2006-09-25 12:44:18 -0700 (Mon, 25 Sep 2006) Log Message: ----------- Removing unnecessary cast Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java Modified: trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java 2006-09-25 18:54:42 UTC (rev 5717) +++ trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java 2006-09-25 19:44:18 UTC (rev 5718) @@ -125,13 +125,13 @@ ribbonBottomScreens = calcScreens(leadMidpoints, wingVectors, mads, isNucleicPolymer ? 0f : -0.5f / 1000); if (!isNucleicPolymer) - calcRopeMidPoints((AminoPolymer) polymer, newRockets); + calcRopeMidPoints(polymer, newRockets); getScreens(); clearPending(); return true; } - void calcRopeMidPoints(AminoPolymer aminopolymer, boolean isNewStyle) { + void calcRopeMidPoints(Polymer polymer, boolean isNewStyle) { int midPointCount = monomerCount + 1; cordMidPoints = viewer.allocTempPoints(midPointCount); ProteinStructure proteinstructurePrev = null; @@ -140,18 +140,18 @@ point = cordMidPoints[i]; Monomer residue = monomers[i]; if (isNewStyle) { - aminopolymer.getLeadMidPoint(i, point); + polymer.getLeadMidPoint(i, point); } else if (isSpecials[i]) { ProteinStructure proteinstructure = residue.getProteinStructure(); - point - .set(i - 1 != proteinstructure.getMonomerIndex() ? proteinstructure - .getAxisStartPoint() : proteinstructure.getAxisEndPoint()); + point.set(i - 1 != proteinstructure.getMonomerIndex() ? + proteinstructure.getAxisStartPoint() : + proteinstructure.getAxisEndPoint()); proteinstructurePrev = proteinstructure; } else { if (proteinstructurePrev != null) point.set(proteinstructurePrev.getAxisEndPoint()); else - aminopolymer.getLeadMidPoint(i, point); + polymer.getLeadMidPoint(i, point); proteinstructurePrev = null; } } @@ -159,7 +159,7 @@ if (proteinstructurePrev != null) point.set(proteinstructurePrev.getAxisEndPoint()); else - aminopolymer.getLeadMidPoint(monomerCount, point); + polymer.getLeadMidPoint(monomerCount, point); } void getScreens() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-10-03 17:50:52
|
Revision: 5806 http://svn.sourceforge.net/jmol/?rev=5806&view=rev Author: hansonr Date: 2006-10-03 10:50:48 -0700 (Tue, 03 Oct 2006) Log Message: ----------- "newRockets" true, not an option. Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java Modified: trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java 2006-10-03 04:47:08 UTC (rev 5805) +++ trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java 2006-10-03 17:50:48 UTC (rev 5806) @@ -91,7 +91,7 @@ void renderMpspolymer( Mps.Mpspolymer mpspolymer, int myVisibilityFlag) { Cartoon.Cchain strandsChain = (Cartoon.Cchain)mpspolymer; this.myVisibilityFlag = myVisibilityFlag; - newRockets = !viewer.getTestFlag1(); + newRockets = true; //!viewer.getTestFlag1(); renderAsRockets = viewer.getCartoonRocketFlag(); if (strandsChain.wingVectors != null) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-10-04 23:28:08
|
Revision: 5826 http://svn.sourceforge.net/jmol/?rev=5826&view=rev Author: hansonr Date: 2006-10-04 16:27:57 -0700 (Wed, 04 Oct 2006) Log Message: ----------- 10.9.71 bug fix for cartoons with mix of helix/nucleic Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java Modified: trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java 2006-10-04 20:10:28 UTC (rev 5825) +++ trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java 2006-10-04 23:27:57 UTC (rev 5826) @@ -126,7 +126,6 @@ isNucleicPolymer ? 0f : -0.5f / 1000); if (!isNucleicPolymer) calcRopeMidPoints(polymer, newRockets); - getScreens(); clearPending(); return true; } @@ -160,13 +159,9 @@ point.set(proteinstructurePrev.getAxisEndPoint()); else polymer.getLeadMidPoint(monomerCount, point); - } - - void getScreens() { - int count = monomerCount + 1; - screens = viewer.allocTempScreens(count); - screensf = viewer.allocTempPoints(count); - for (int i = count; --i >= 0; ) { + screens = viewer.allocTempScreens(midPointCount); + screensf = viewer.allocTempPoints(midPointCount); + for (int i = midPointCount; --i >= 0; ) { viewer.transformPoint(cordMidPoints[i], screensf[i]); screens[i].x = (int)Math.floor(screensf[i].x); screens[i].y = (int)Math.floor(screensf[i].y); @@ -174,7 +169,6 @@ } } - boolean tPending; ProteinStructure proteinstructurePending; int startIndexPending; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-11-02 19:36:38
|
Revision: 6079 http://svn.sourceforge.net/jmol/?rev=6079&view=rev Author: hansonr Date: 2006-11-02 11:36:29 -0800 (Thu, 02 Nov 2006) Log Message: ----------- bit more to do on cartoons and rockets Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java Modified: trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java 2006-11-02 19:27:43 UTC (rev 6078) +++ trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java 2006-11-02 19:36:29 UTC (rev 6079) @@ -54,12 +54,11 @@ if (!isNucleic) calcRopeMidPoints(schain.polymer, newRockets); render1Chain(); + viewer.freeTempPoints(cordMidPoints); viewer.freeTempScreens(ribbonTopScreens); viewer.freeTempScreens(ribbonBottomScreens); } - Point3i[] screens; - Point3f[] screensf; Point3f[] cordMidPoints; void calcRopeMidPoints(Polymer polymer, boolean isNewStyle) { @@ -102,14 +101,6 @@ else polymer.getLeadMidPoint(monomerCount, point); } - screens = viewer.allocTempScreens(midPointCount); - screensf = viewer.allocTempPoints(midPointCount); - for (int i = midPointCount; --i >= 0; ) { - viewer.transformPoint(cordMidPoints[i], screensf[i]); - screens[i].x = (int)Math.floor(screensf[i].x); - screens[i].y = (int)Math.floor(screensf[i].y); - screens[i].z = (int)Math.floor(screensf[i].z); - } } boolean tPending; @@ -201,9 +192,6 @@ lastWasHelix = isHelix; } renderPendingRocketSegment(true); - viewer.freeTempScreens(screens); - viewer.freeTempPoints(cordMidPoints); - viewer.freeTempPoints(screensf); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-11-06 17:22:43
|
Revision: 6116 http://svn.sourceforge.net/jmol/?rev=6116&view=rev Author: hansonr Date: 2006-11-06 09:22:35 -0800 (Mon, 06 Nov 2006) Log Message: ----------- minor cartoon fix Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java Modified: trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java 2006-11-06 16:13:42 UTC (rev 6115) +++ trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java 2006-11-06 17:22:35 UTC (rev 6116) @@ -38,14 +38,19 @@ Cartoon.Cchain schain = (Cartoon.Cchain) mpspolymer; if (schain.wingVectors == null || isCarbohydrate) return; - renderAsRockets = viewer.getCartoonRocketFlag(); calcScreenControlPoints(); if (isNucleic) { renderNucleic(); return; } - ribbonTopScreens = calcScreens(isNucleic ? 1f : 0.5f); - ribbonBottomScreens = calcScreens(isNucleic ? 0f : -0.5f); + boolean val = viewer.getCartoonRocketFlag(); + if (renderAsRockets != val) { + for (int i = 0; i < monomerCount; i++) + schain.falsifyMesh(i, false); + renderAsRockets = val; + } + ribbonTopScreens = calcScreens(0.5f); + ribbonBottomScreens = calcScreens(-0.5f); calcRopeMidPoints(newRockets); render1(); viewer.freeTempPoints(cordMidPoints); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-12-22 00:53:45
|
Revision: 6535 http://svn.sourceforge.net/jmol/?rev=6535&view=rev Author: hansonr Date: 2006-12-21 16:53:44 -0800 (Thu, 21 Dec 2006) Log Message: ----------- bug fix for nucleic cartoon not connected properly Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java Modified: trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java 2006-12-22 00:48:13 UTC (rev 6534) +++ trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java 2006-12-22 00:53:44 UTC (rev 6535) @@ -63,7 +63,7 @@ if (bsVisible.get(i)) { renderHermiteConic(i, false); renderNucleicBaseStep((NucleicMonomer) monomers[i], getLeadColix(i), mads[i], - controlPointScreens[i + 1]); + controlPointScreens[i]); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2006-12-22 03:56:48
|
Revision: 6537 http://svn.sourceforge.net/jmol/?rev=6537&view=rev Author: hansonr Date: 2006-12-21 19:56:47 -0800 (Thu, 21 Dec 2006) Log Message: ----------- 11.0 bug fix for nucleic cartoon not connected properly Modified Paths: -------------- trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java Modified: trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java 2006-12-22 03:56:12 UTC (rev 6536) +++ trunk/Jmol/src/org/jmol/viewer/CartoonRenderer.java 2006-12-22 03:56:47 UTC (rev 6537) @@ -58,13 +58,22 @@ viewer.freeTempScreens(ribbonBottomScreens); } + Point3i ptConnect = new Point3i(); void renderNucleic() { - for (int i = monomerCount; --i >= 0;) - if (bsVisible.get(i)) { - renderHermiteConic(i, false); - renderNucleicBaseStep((NucleicMonomer) monomers[i], getLeadColix(i), mads[i], - controlPointScreens[i]); - } + boolean isTraceAlpha = viewer.getTraceAlpha(); + for (int i = monomerCount; --i >= 0;) + if (bsVisible.get(i)) { + if (isTraceAlpha) { + ptConnect.set((controlPointScreens[i].x + controlPointScreens[i + 1].x)/2, + (controlPointScreens[i].y + controlPointScreens[i + 1].y)/2, + (controlPointScreens[i].z + controlPointScreens[i + 1].z)/2); + } else { + ptConnect.set(controlPointScreens[i + 1]); + } + renderHermiteConic(i, false); + renderNucleicBaseStep((NucleicMonomer) monomers[i], getLeadColix(i), mads[i], + ptConnect); + } } void render1() { @@ -151,9 +160,9 @@ if (hasRing5) { viewer.transformPoints(ring5Points, ring5Screens); renderRing5(); - stepScreen = ring5Screens[2]; + stepScreen = ring5Screens[3];//was 2 } else { - stepScreen = ring6Screens[1]; + stepScreen = ring6Screens[2];//was 1 } g3d.fillCylinder(colix, Graphics3D.ENDCAPS_SPHERICAL, viewer.scaleToScreen(backboneScreen.z, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |