⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 composite.java

📁 fortran并行计算包
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    /*         getStartVertex()/getFinalVertex() defines the DrawOrderComparator.    */    public Coord getStartVertex()    {        return primes[ 0 ].getStartVertex();    }    public Coord getFinalVertex()    {        return primes[ last_prime_idx ].getFinalVertex();    }    public String toString()    {        StringBuffer rep;        int idx;        rep = new StringBuffer( "Composite[ " + super.toString() + " " );        for ( idx = 0; idx < primes.length; idx++ )            rep.append( primes[ idx ].toString() + " " );        rep.append( "]" );        return rep.toString();    }    private class ItrOfPrimes implements Iterator    {        private TimeBoundingBox  timeframe;        private Primitive        next_primitive;        private int              next_prime_idx;        public ItrOfPrimes( final TimeBoundingBox  tframe )        {            timeframe       = tframe;            next_prime_idx  = 0;            if ( primes != null )                next_primitive  = this.getNextInQueue();            else                 next_primitive  = null;        }        private Primitive getNextInQueue()        {            Primitive  next_prime;            while ( next_prime_idx < primes.length ) {                if ( primes[ next_prime_idx ].overlaps( timeframe ) ) {                    next_prime  = primes[ next_prime_idx ];                    next_prime_idx++;                    return next_prime;                }            }            return null;        }        public boolean hasNext()        {            return next_primitive != null;        }        public Object next()        {            Primitive        returning_prime;            returning_prime = next_primitive;            next_primitive  = this.getNextInQueue();              return returning_prime;        }        public void remove() {}    }   // private class ItrOfPrimes     public boolean isTimeOrdered()    {        Primitive  prime;        int        primes_length, idx;        if ( ! super.isTimeOrdered() ) {            System.err.println( "**** Violation of Causality ****\n"                              + "Offending Composite -> " + this );            return false;        }        primes_length = (short) primes.length;        for ( idx = 0; idx < primes_length; idx++ ) {            prime = primes[ idx ];            if ( ! prime.isTimeOrdered() ) {                System.err.println( "**** Internal Primitive Error ****\n"                                  + "It is number " + idx + " primitive "                                  + "in the composite." );                return false;            }            if ( ! super.covers( prime ) ) {                System.err.println( "**** Out of Composite Time Range ****\n"                                  + "Offending Primitive -> " + this + "\n"                                  + "\t time coordinate " + idx                                  + " is out of range." );                return false;            }        }        return true;    }/*    public void addPrimitivesToSet( Set prime_set )    {        int        primes_length, idx;        primes_length = (short) primes.length;        // primes[] is iterated in increaing starttime order        for ( idx = 0; idx < primes_length; idx++ )            prime_set.add( primes[ idx ] );    }*/    public void addPrimitivesToSet( Set prime_set, TimeBoundingBox timeframe )    {        Primitive  prime;        int        primes_length, idx;        primes_length = (short) primes.length;        // primes[] is iterated in increaing starttime order        for ( idx = 0; idx < primes_length; idx++ ) {            prime = primes[ idx ];            if ( prime.overlaps( timeframe ) )                prime_set.add( prime );        }    }    // Implementation of abstract methods.    /*        0.0f < nesting_ftr <= 1.0f    */    public  int  drawState( Graphics2D g, CoordPixelXform coord_xform,                            Map map_line2row, DrawnBoxSet drawn_boxes,                            ColorAlpha color )    {        Coord  start_vtx, final_vtx;        start_vtx = this.getStartVertex();        final_vtx = this.getFinalVertex();        double tStart, tFinal;        tStart = start_vtx.time;  /* different from Shadow */        tFinal = final_vtx.time;  /* different form Shadow */        int    rowID;        float  nesting_ftr;        /* assume RowID and NestingFactor have been calculated */        rowID       = super.getRowID();        nesting_ftr = super.getNestingFactor();        // System.out.println( "\t" + this + " nestftr=" + nesting_ftr );        float  rStart, rFinal;        rStart = (float) rowID - nesting_ftr / 2.0f;        rFinal = rStart + nesting_ftr;        return State.draw( g, color, null, coord_xform,                           drawn_boxes.getLastStatePos( rowID ),                           tStart, rStart, tFinal, rFinal );    }    //  assume this Primitive overlaps with coord_xform.TimeBoundingBox    public  int  drawArrow( Graphics2D g, CoordPixelXform coord_xform,                            Map map_line2row, DrawnBoxSet drawn_boxes,                            ColorAlpha color )    {        Coord  start_vtx, final_vtx;        start_vtx = this.getStartVertex();        final_vtx = this.getFinalVertex();        double tStart, tFinal;        tStart = start_vtx.time;        tFinal = final_vtx.time;        int    iStart, iFinal;        iStart = ( (Integer)                   map_line2row.get( new Integer(start_vtx.lineID) )                 ).intValue();        iFinal = ( (Integer)                   map_line2row.get( new Integer(final_vtx.lineID) )                 ).intValue();        return Arrow.draw( g, color, null, coord_xform,                           drawn_boxes.getLastArrowPos( iStart, iFinal ),                           tStart, (float) iStart, tFinal, (float) iFinal );    }    public  int  drawEvent( Graphics2D g, CoordPixelXform coord_xform,                            Map map_line2row, DrawnBoxSet drawn_boxes,                            ColorAlpha color )    {        Coord  vtx;        vtx = this.getStartVertex();        double tPoint;        tPoint = vtx.time;  /* different from Shadow */        int    rowID;        float  rPeak, rStart, rFinal;        rowID  = ( (Integer)                   map_line2row.get( new Integer(vtx.lineID) )                 ).intValue();        // rPeak  = (float) rowID + NestingStacks.getHalfInitialNestingHeight();        rPeak  = (float) rowID - 0.25f;        rStart = (float) rowID - 0.5f;        rFinal = rStart + 1.0f;        return Event.draw( g, color, null, coord_xform,                           drawn_boxes.getLastEventPos( rowID ),                           tPoint, rPeak, rStart, rFinal );    }    /*        0.0f < nesting_ftr <= 1.0f    */    public  boolean isPixelInState( CoordPixelXform coord_xform,                                    Map map_line2row, Point pix_pt )    {        Coord  start_vtx, final_vtx;        start_vtx = this.getStartVertex();        final_vtx = this.getFinalVertex();        double tStart, tFinal;        tStart = start_vtx.time;  /* different from Shadow */        tFinal = final_vtx.time;  /* different form Shadow */        int    rowID;        float  nesting_ftr;        /*        rowID  = ( (Integer)                   map_line2row.get( new Integer(start_vtx.lineID) )                 ).intValue();        */        /* assume RowID and NestingFactor have been calculated */        rowID       = super.getRowID();        nesting_ftr = super.getNestingFactor();        // System.out.println( "\t" + this + " nestftr=" + nesting_ftr );        float  rStart, rFinal;        rStart = (float) rowID - nesting_ftr / 2.0f;        rFinal = rStart + nesting_ftr;        return State.containsPixel( coord_xform, pix_pt,                                    tStart, rStart, tFinal, rFinal );    }    //  assume this Primitive overlaps with coord_xform.TimeBoundingBox    public  boolean isPixelOnArrow( CoordPixelXform coord_xform,                                    Map map_line2row, Point pix_pt )    {        Coord  start_vtx, final_vtx;        start_vtx = this.getStartVertex();        final_vtx = this.getFinalVertex();        double tStart, tFinal;        tStart = start_vtx.time;        tFinal = final_vtx.time;        float  rStart, rFinal;        rStart = ( (Integer)                   map_line2row.get( new Integer(start_vtx.lineID) )                 ).floatValue();        rFinal = ( (Integer)                   map_line2row.get( new Integer(final_vtx.lineID) )                 ).floatValue();        return Line.containsPixel( coord_xform, pix_pt,                                   tStart, rStart, tFinal, rFinal );    }    public  boolean isPixelAtEvent( CoordPixelXform coord_xform,                                    Map map_line2row, Point pix_pt )    {        Coord  vtx;        vtx = this.getStartVertex();        double tPoint;        tPoint = vtx.time;  /* different from Shadow */        int    rowID;        float  rStart, rFinal;        rowID  = ( (Integer)                   map_line2row.get( new Integer(vtx.lineID) )                 ).intValue();        rStart = (float) rowID - 0.5f;        rFinal = rStart + 1.0f;        return Event.containsPixel( coord_xform, pix_pt,                                    tPoint, rStart, rFinal );    }    public boolean containSearchable()    {        return super.getCategory().isVisiblySearchable();    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -