Patent ID: 8160744

Claim:
A contact shape computing apparatus, comprising: a processor; and a memory storing computer readable code accessible by the processor for detecting contact between a plurality of three-dimensional solid models and computing a contact shape between two solid bodies in contact with each other, the computer readable code comprising: a collision detector configured to detect a collision or contact between the two solid bodies, wherein the collision detector is further configured to detect a pair of collision representative points including the closest points or the most penetrating points of the two solid bodies in collision or in contact with each other; a contact plane setting unit configured to define a contact plane that passes through a common region of the two solid bodies, wherein the contact plane setting unit is further configured to define a contact plane that passes through the midpoint of the pair of collision representative points and that has the direction of a line segment connecting the pair of collision representative points as a normal vector; a contact problem solving unit configured to individually solve contact states of the solid bodies with the contact plane as half-contact problems, wherein each body has a separate solution to its associated half-contact problem, and the contact problem solving unit is further configured to compute as the solutions of the half-contact problems, half-contact polygons describing the contact shapes between the solid bodies and the contact plane; a contact shape computing unit configured to compute the contact shape between the two solid bodies by uniting the separate solutions of the half-contact problems for the associated solid bodies, the solutions being obtained by the contact problem solving unit; and a solid body expanding unit configured for generating expanded solid bodies by expanding the plurality of three-dimensional solid models by a predetermined offset amount, wherein the collision detection unit is further configured to detect a collision or contact between the original solid bodies on the basis of a collision or contact between the expanded solid bodies, and the contact problem solving unit is further configured to compute a half-contact polygon between each of the original unexpanded solid bodies and an offset contact plane generated by translating the contact plane; and wherein the solid body expanding unit is configured to set the offset amount so that the offset contact plane and each of the original solid bodies have an intersection point, and the contact problem solving unit is configured to compute a half-contact polygon between each of the original solid bodies and the offset contact plane generated by translating the contact plane in the normal direction by the offset amount toward each of the original solid bodies.