FAUST compiler  0.9.9.6b8
seqSchema.h
Go to the documentation of this file.
1 /************************************************************************
2  ************************************************************************
3  FAUST compiler
4  Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale
5  ---------------------------------------------------------------------
6  This program is free software; you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation; either version 2 of the License, or
9  (at your option) any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program; if not, write to the Free Software
18  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19  ************************************************************************
20  ************************************************************************/
21 
22 #ifndef __SEQSCHEMA__
23 #define __SEQSCHEMA__
24 
25 
26 #include "schema.h"
27 
28 
29 
36 class seqSchema : public schema
37 {
40  double fHorzGap;
41 
42  public:
43 
44  friend schema * makeSeqSchema (schema* s1, schema* s2);
45 
46  virtual void place(double ox, double oy, int orientation);
47  virtual void draw(device& dev);
48  virtual point inputPoint(unsigned int i) const;
49  virtual point outputPoint(unsigned int i) const;
50  virtual void collectTraits(collector& c);
51 
52  private:
53  seqSchema (schema* s1, schema* s2, double hgap);
54  void drawInternalWires(device& dev);
56 };
57 
58 
59 #endif
60 
61 
void collectInternalWires(collector &c)
Draw the internal wires aligning the vertical segments in a symetric way when possible.
Definition: seqSchema.cpp:233
virtual void collectTraits(collector &c)
Draw the two components as well as the internal wires.
Definition: seqSchema.cpp:138
virtual point inputPoint(unsigned int i) const
The input points are the input points of the first component.
Definition: seqSchema.cpp:103
schema * fSchema2
Definition: seqSchema.h:39
seqSchema(schema *s1, schema *s2, double hgap)
Constructor for a sequential schema (s1:s2).
Definition: seqSchema.cpp:62
Definition: device.h:32
virtual void draw(device &dev)
Draw the two components as well as the internal wires.
Definition: seqSchema.cpp:125
Sequential composition.
Definition: seqSchema.h:36
int orientation() const
Definition: schema.h:140
virtual void place(double ox, double oy, int orientation)
Place the two components horizontally with enough space for the connections.
Definition: seqSchema.cpp:82
void drawInternalWires(device &dev)
Draw the internal wires aligning the vertical segments in a symetric way when possible.
Definition: seqSchema.cpp:154
Definition: schema.h:40
An abstract block diagram schema.
Definition: schema.h:97
friend schema * makeSeqSchema(schema *s1, schema *s2)
Make a sequential schema.
Definition: seqSchema.cpp:43
virtual point outputPoint(unsigned int i) const
The output points are the output points of the second component.
Definition: seqSchema.cpp:112
double fHorzGap
Definition: seqSchema.h:40
schema * fSchema1
Definition: seqSchema.h:38