parSchema Class Reference

place two schemi in parallel More...

#include <parSchema.h>

Inherits schema.

Collaboration diagram for parSchema:
[legend]

List of all members.

Public Member Functions

 parSchema (schema *s1, schema *s2)
virtual void place (double ox, double oy, int orientation)
virtual void draw (device &dev)
virtual point inputPoint (unsigned int i) const
virtual point outputPoint (unsigned int i) const

Private Attributes

schemafSchema1
schemafSchema2
unsigned int fInputFrontier
unsigned int fOutputFrontier

Detailed Description

place two schemi in parallel

Definition at line 33 of file parSchema.h.


Constructor & Destructor Documentation

parSchema::parSchema ( schema s1,
schema s2 
)

Definition at line 36 of file parSchema.cpp.

References schema::width().

00037     :   schema( s1->inputs()+s2->inputs(),
00038                 s1->outputs()+s2->outputs(),
00039                 s1->width(),
00040                 s1->height() + s2->height() ),
00041         fSchema1(s1),
00042         fSchema2(s2),
00043         fInputFrontier(s1->inputs()),
00044         fOutputFrontier(s1->outputs())
00045 {
00046     assert (s1->width() == s2->width());
00047 }

Here is the call graph for this function:


Member Function Documentation

void parSchema::draw ( device dev  )  [virtual]

Implements schema.

Definition at line 79 of file parSchema.cpp.

References schema::draw(), fSchema1, and fSchema2.

00080 {
00081     fSchema1->draw(dev);
00082     fSchema2->draw(dev);
00083 }

Here is the call graph for this function:

point parSchema::inputPoint ( unsigned int  i  )  const [virtual]

Implements schema.

Definition at line 65 of file parSchema.cpp.

References fInputFrontier, fSchema1, fSchema2, and schema::inputPoint().

00066 {
00067     return (i < fInputFrontier)
00068         ? fSchema1->inputPoint(i)
00069         : fSchema2->inputPoint(i-fInputFrontier);
00070 }

Here is the call graph for this function:

point parSchema::outputPoint ( unsigned int  i  )  const [virtual]

Implements schema.

Definition at line 72 of file parSchema.cpp.

References fOutputFrontier, fSchema1, fSchema2, and schema::outputPoint().

00073 {
00074     return (i < fOutputFrontier)
00075         ? fSchema1->outputPoint(i)
00076         : fSchema2->outputPoint(i-fOutputFrontier);
00077 }

Here is the call graph for this function:

void parSchema::place ( double  ox,
double  oy,
int  orientation 
) [virtual]

Implements schema.

Definition at line 50 of file parSchema.cpp.

References schema::beginPlace(), schema::endPlace(), fSchema1, fSchema2, schema::height(), kLeftRight, and schema::place().

00051 {
00052     beginPlace(ox, oy, orientation);
00053 
00054     if (orientation == kLeftRight) {
00055         fSchema1->place(ox, oy, orientation);
00056         fSchema2->place(ox, oy+fSchema1->height(), orientation);
00057     } else {
00058         fSchema2->place(ox, oy, orientation);
00059         fSchema1->place(ox, oy+fSchema2->height(), orientation);
00060     }
00061 
00062     endPlace();
00063 }

Here is the call graph for this function:


Member Data Documentation

unsigned int parSchema::fInputFrontier [private]

Definition at line 37 of file parSchema.h.

Referenced by inputPoint().

unsigned int parSchema::fOutputFrontier [private]

Definition at line 38 of file parSchema.h.

Referenced by outputPoint().

Definition at line 35 of file parSchema.h.

Referenced by draw(), inputPoint(), outputPoint(), and place().

Definition at line 36 of file parSchema.h.

Referenced by draw(), inputPoint(), outputPoint(), and place().


The documentation for this class was generated from the following files:
Generated on Wed Apr 28 23:46:07 2010 for FAUST compiler by  doxygen 1.6.3