FAUST compiler  0.9.9.6b8
splitSchema.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 __SPLITSCHEMA__
23 #define __SPLITSCHEMA__
24 
25 
26 #include "schema.h"
27 
28 
33 class splitSchema : public schema
34 {
37  double fHorzGap;
38 
39  public:
40 
41  friend schema* makeSplitSchema (schema* s1, schema* s2);
42 
43  virtual void place(double ox, double oy, int orientation);
44  virtual void draw(device& dev);
45  virtual point inputPoint(unsigned int i) const;
46  virtual point outputPoint(unsigned int i) const;
47  virtual void collectTraits(collector& c);
48 
49  private:
50 
51  splitSchema (schema* s1, schema* s2, double hgap);
52 };
53 
54 
55 #endif
56 
57 
double fHorzGap
Definition: splitSchema.h:37
splitSchema(schema *s1, schema *s2, double hgap)
Constructor for a split schema s1 <: s2 where the outputs of s1 are distributed to the inputs of s2...
Definition: splitSchema.cpp:52
place and connect two diagrams in split composition
Definition: splitSchema.h:33
virtual void collectTraits(collector &c)
Draw the two sub schema and the connections between them.
virtual void draw(device &dev)
Draw the two sub schema and the connections between them.
Definition: device.h:32
schema * fSchema1
Definition: splitSchema.h:35
virtual point outputPoint(unsigned int i) const
The outputs of s1 <: s2 are the outputs of s2.
Definition: splitSchema.cpp:98
int orientation() const
Definition: schema.h:140
schema * fSchema2
Definition: splitSchema.h:36
Definition: schema.h:40
An abstract block diagram schema.
Definition: schema.h:97
virtual void place(double ox, double oy, int orientation)
Places the two subschema horizontaly, centered, with enough gap for the connections.
Definition: splitSchema.cpp:68
virtual point inputPoint(unsigned int i) const
The inputs of s1 <: s2 are the inputs of s1.
Definition: splitSchema.cpp:89
friend schema * makeSplitSchema(schema *s1, schema *s2)
Creates a new split schema.
Definition: splitSchema.cpp:34