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... |