fclib-general Mailing List for FastClass Cross-Platform CAD Library
Status: Pre-Alpha
Brought to you by:
rjcjr9
You can subscribe to this list here.
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
|
|---|
|
From: <rob...@at...> - 2001-11-29 19:19:57
|
Here are some of the tools and books that I am relying on while writing FastClass: I use MicroSoft Visual C++ 6.0 professional, IDE and all. I would love if someone would get FastClass to run with GNU tools as well as other Windows compilers. I use doxygen-style comments and doxygen for creating nicely formatted documentationnfrom my comments. Doxygen is a program that creates manuals in different formats (including HTML) from specially formatted source code comments. The output is great. The drawback is that you have to add warts like "\param" and "\return" to your comments, which makes them a little less readable in source code form. Source and binaries for many platforms, including Windows, are available at www.stack.nl/~dimitri/doxygen/download.html#latestsrc. I use dia to create UML diagrams. I primarily create class diagrams, but sequence diagrams have been very helpful in a few cases. Keeping the source code and the UML in sync is a chore, however. Stroustrup's _The C++ Programming Language_ is invaluable, especially the reference material on multiple inheritance and other features. I need a newer edition, since mine predates finalization of the standard. The design of FastClass is influenced by the book _Design Patterns: Elements of Reusable Object-Oriented Software_ (Gamma, et al). I'm reading Scott Meyer's _Effective C++: 50 Specific Ways to mprove Your Programs and Designs_ and trying to follow its guidelines. Any other recommendations? Thanks, Rob Campbell rob...@at... |
|
From: <rob...@at...> - 2001-11-29 19:15:40
|
Sorry for not having posted any source code yet. I'm
applying the finishing touches, including reorganizing
the directory hierarchy. Of course, when I do upload
it, it will only be the beginning. I intend for
FastClass to provide a uniform interface for all the
services normally provided by different CAD programs'
APIs. It can't be done all at once, so the order of
development reflects my own personal needs at the time.
The first classes will provide support for:
(1) Abstract entity and graphical entity types.
Concrete "wire-frame" entities (e.g., point, line,
arc). Primarily read operations, since I am working on
a data exporter.
(2) An entity factory, which provides a uniform
interface for creating entities, regardless of the
target platform (e.g., CADKey or AutoCAD). Currently,
usage is like:
fcLineEnt = entFactorySingleton->makeLine();
But I intend to replace explicit function names with a
registry, for extensibility. For example:
fcLineEnt = entFactorySingleton->make("LINE");
See the book _Design Patterns: Elements of Reusable
Object-Oriented Software_ (Gamma, et al) for details on
the object factory (and singleton) design pattern.
(3) An abstract visitor class, which provides a single
point of entry for any function that operates on
entities (and other FastClass objects, eventually). The
visitor design pattern allows double-dispatch functions
in C++ (i.e., the code that is executed depends on both
the visitor class and the entity class).
See also Gamma, et al for details on the visitor design
pattern.
(4) A parallel CADKey hierarchy, which implements
FastClass for use with CADKey. Currently, to use
FastClass with a given CAD platform, only a counterpart
for the fcEnt heirarchy needs to be written. The rest
of library references only itself. No doubt, this will
change as more functionality and complexity is added.
But the goal is to implement as much advanced
functionality as possible using only the FastClass API.
(5) A demo application, ckExplorer. Pick and select
entities to see their attributes. Will later extend to
include non-graphical entities (e.g., layouts and views)
and editing of attributes. Will also support platforms
other than CADKey, but currently it uses a unique CADKey
user interface element (the conversation bar).
I will release the source code as soon as possible.
Until then, please don't hesitate to ask any questions.
Thanks,
Rob Campbell
rob...@at...
|
|
From: <rob...@at...> - 2001-11-29 19:02:42
|
Sorry for not having posted any source code yet. I'm
applying the finishing touches, including reorganizing
the directory hierarchy. Of course, when I do upload
it, it will only be the beginning. I intend for
FastClass to provide a uniform interface for all the
services normally provided by different CAD programs'
APIs. It can't be done all at once, so the order of
development reflects my own personal needs at the time.
The first classes will provide support for:
(1) Abstract entity and graphical entity types.
Concrete "wire-frame" entities (e.g., point, line,
arc). Primarily read operations, since I am working on
a data exporter.
(2) An entity factory, which provides a uniform
interface for creating entities, regardless of the
target platform (e.g., CADKey or AutoCAD). Currently,
usage is like:
fcLineEnt = entFactorySingleton->makeLine();
But I intend to replace explicit function names with a
registry, for extensibility. For example:
fcLineEnt = entFactorySingleton->make("LINE");
See the book _Design Patterns: Elements of Reusable
Object-Oriented Software_ (Gamma, et al) for details on
the object factory (and singleton) design pattern.
(3) An abstract visitor class, which provides a single
point of entry for any function that operates on
entities (and other FastClass objects, eventually). The
visitor design pattern allows double-dispatch functions
in C++ (i.e., the code that is executed depends on both
the visitor class and the entity class).
See also Gamma, et al for details on the visitor design
pattern.
(4) A parallel CADKey hierarchy, which implements
FastClass for use with CADKey. Currently, to use
FastClass with a given CAD platform, only a counterpart
for the fcEnt heirarchy needs to be written. The rest
of library references only itself. No doubt, this will
change as more functionality and complexity is added.
But the goal is to implement as much advanced
functionality as possible using only the FastClass API.
(5) A demo application, ckExplorer. Pick and select
entities to see their attributes. Will later extend to
include non-graphical entities (e.g., layouts and views)
and editing of attributes. Will also support platforms
other than CADKey, but currently it uses a unique CADKey
user interface element (the conversation bar).
I will release the source code as soon as possible.
Until then, please don't hesitate to ask any questions.
Thanks,
Rob Campbell
rob...@at...
|