FAUST compiler  0.9.9.6b8
connectorSchema.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 __connectorSchema__
23 #define __connectorSchema__
24 
25 
26 #include "schema.h"
27 #include <vector>
28 #include <string>
29 
35 class connectorSchema : public schema
36 {
37  protected:
38  // fields only defined after place() is called
39  vector<point> fInputPoint;
40  vector<point> fOutputPoint;
41 
42 
43  public:
44  friend schema* makeConnectorSchema ();
45 
46  virtual void place(double x, double y, 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  protected:
53  connectorSchema ();
54 
55  void placeInputPoints();
56  void placeOutputPoints();
59 
60 };
61 
62 #endif
63 
64 
vector< point > fOutputPoint
output connection points
A simple rectangular box with a text and inputs and outputs.
virtual point inputPoint(unsigned int i) const
Returns an input point.
void collectOutputWires(collector &c)
Draw horizontal line from the connectorSchema rectangle to the output points.
void placeOutputPoints()
Computes the output points according to the position and the orientation of the connectorSchema.
void placeInputPoints()
Computes the input points according to the position and the orientation of the connectorSchema.
friend schema * makeConnectorSchema()
Connectors are used to ensure unused inputs and outputs are drawn.
double y() const
Definition: schema.h:139
vector< point > fInputPoint
input connection points
virtual point outputPoint(unsigned int i) const
Returns an output point.
Definition: device.h:32
double x() const
Definition: schema.h:138
int orientation() const
Definition: schema.h:140
virtual void draw(device &dev)
Draw the connectorSchema on the device.
virtual void collectTraits(collector &c)
Draw horizontal arrows from the input points to the connectorSchema rectangle.
void collectInputWires(collector &c)
Draw horizontal arrows from the input points to the connectorSchema rectangle.
Definition: schema.h:40
An abstract block diagram schema.
Definition: schema.h:97
virtual void place(double x, double y, int orientation)
Define the graphic position of the connectorSchema.
connectorSchema()
A connector is an invisible square fo dWire size with 1 input and 1 output.