| Clazz.declarePackage ("J.renderbio"); | |
| Clazz.load (["J.renderbio.BioShapeRenderer"], "J.renderbio.StrandsRenderer", ["J.shapebio.Strands"], function () { | |
| c$ = Clazz.decorateAsClass (function () { | |
| this.strandCount = 1; | |
| this.strandSeparation = 0; | |
| this.baseStrandOffset = 0; | |
| Clazz.instantialize (this, arguments); | |
| }, J.renderbio, "StrandsRenderer", J.renderbio.BioShapeRenderer); | |
| Clazz.overrideMethod (c$, "renderBioShape", | |
| function (bioShape) { | |
| this.renderStrandShape (); | |
| }, "J.shapebio.BioShape"); | |
| Clazz.defineMethod (c$, "renderStrandShape", | |
| function () { | |
| if (!this.setStrandCount ()) return; | |
| this.renderStrands (); | |
| }); | |
| Clazz.defineMethod (c$, "setStrandCount", | |
| function () { | |
| if (this.wingVectors == null) return false; | |
| this.strandCount = (Clazz.instanceOf (this.shape, J.shapebio.Strands) ? this.vwr.getStrandCount ((this.shape).shapeID) : 10); | |
| this.strandSeparation = (this.strandCount <= 1) ? 0 : 1 / (this.strandCount - 1); | |
| this.baseStrandOffset = ((this.strandCount & 1) == 0 ? this.strandSeparation / 2 : this.strandSeparation); | |
| return true; | |
| }); | |
| Clazz.defineMethod (c$, "renderStrands", | |
| function () { | |
| var screens; | |
| for (var i = this.strandCount >> 1; --i >= 0; ) { | |
| var f = (i * this.strandSeparation) + this.baseStrandOffset; | |
| screens = this.calcScreens (f, this.mads); | |
| this.renderStrand (screens); | |
| this.vwr.freeTempPoints (screens); | |
| screens = this.calcScreens (-f, this.mads); | |
| this.renderStrand (screens); | |
| this.vwr.freeTempPoints (screens); | |
| } | |
| if (this.strandCount % 2 == 1) { | |
| screens = this.calcScreens (0, this.mads); | |
| this.renderStrand (screens); | |
| this.vwr.freeTempPoints (screens); | |
| }}); | |
| Clazz.defineMethod (c$, "renderStrand", | |
| function (screens) { | |
| for (var i = this.bsVisible.nextSetBit (0); i >= 0; i = this.bsVisible.nextSetBit (i + 1)) this.renderHermiteCylinder (screens, i); | |
| }, "~A"); | |
| }); | |