CumInCAD is a Cumulative Index about publications in Computer Aided Architectural Design
supported by the sibling associations ACADIA, CAADRIA, eCAADe, SIGraDi, ASCAAD and CAAD futures

PDF papers
authors Kelleners, Richard H.M.C.
year 1999
title Constraints in object-oriented graphics
source Eindhoven University of Technology
summary In the area of interactive computer graphics, two important approaches to deal with the complexity of designing and implementing graphics systems are object-oriented programming and constraint-based programming. From literature, it appears that combination of these two has clear advantages but has also proven to be difficult. One of the main problems is that constraint programming infringes the information hiding principle of object-oriented programming. The goal of the research project is to combine these two approaches to benefit from the strengths of both. Two research groups at the Eindhoven University of Technology investigate the use of constraints on graphics objects. At the Architecture department, constraints are applied in a virtual reality design environment. At the Computer Science department, constraints aid in modeling 3D animations. For these two groups, a constraint system for 3D graphical objects was developed. A conceptual model, called CODE (Constraints on Objects via Data flows and Events), is presented that enables integration of constraints and objects by separating the object world from the constraint world. In the design of this model, the main aspect being considered is that the information hiding principle among objects may not be violated. Constraint solvers, however, should have direct access to an object’s internal data structure. Communication between the two worlds is done via a protocol orthogonal to the message passing mechanism of objects, namely, via events and data flows. This protocol ensures that the information hiding principle at the object-oriented programming level is not violated while constraints can directly access “hidden” data. Furthermore, CODE is built up of distinct elements, or entity types, like constraint, solver, event, data flow. This structure enables that several special purpose constraint solvers can be defined and made to cooperate to solve complex constraint problems. A prototype implementation was built to study the feasibility of CODE. Therefore, the implementation should correspond directly to the conceptual model. To this end, every entity (object, constraint, solver) of the conceptual model is represented by a separate process in the language MANIFOLD. The (concurrent) processes communicate by events and data flows. The implementation serves to validate the conceptual model and to demonstrate that it is a viable way of combining constraints and objects. After the feasibility study, the prototype was discarded. The gained experience was used to build an implementation of the conceptual model for the two research groups. This implementation encompassed a constraint system with multiple solvers and constraint types. The constraint system was built as an object-oriented library that can be linked to the applications in the respective research groups. Special constructs were designed to ensure information hiding among application objects while constraints and solvers have direct access to the object data. CODE manages the complexity of object-oriented constraint solving by defining a communication protocol to allow the two paradigms to cooperate. The prototype implementation demonstrates that CODE can be implemented into a working system. Finally, the implementation of an actual application shows that the model is suitable for the development of object-oriented software.
keywords Computer Graphics; Object Oriented Programming; Constraint Programming
series thesis:PhD
full text file.pdf (3,784,793 bytes)
references Content-type: text/plain
last changed 2003/02/12 21:37
pick and add to favorite papersHOMELOGIN (you are user _anon_514652 from group guest) CUMINCAD Papers Powered by SciX Open Publishing Services 1.002