Updated version of connection representation and discussion of how to deal with different cases in place function
Dawei ZhaoHow to represent the three major types (four subtypes) of connection
- edge-edge: addConnection((faceB,edgeB), (faceA,edgeA), orientation=front-front/front-back, offset=x, angle=x)
initial placement: faceA is placed in the x-y plance of an x-y-z coordinate, edgeA is placed along the x-axis. Similarly, faceB is placed in the x-y plance of an x-y-z coordinate, edgeB is placed along the x-axis. If A and B has front-front orientation, then edgeB will offset toward the positive direction of x-axis; if A and B has front-back orientation, then edgeB will offset toward the negative direction of x-axis.
a. faceA, edgeA
b. faceB, edgeB
c. orientation: front-front vs front-back
d. offset: x (only offset along the x-axis is allowed)
e. angle: x (only rotation around the x-axis is allowed)
- edge-edge-offset (can be regarded as an extension of edge-edge, or a special case of edge-face. We differentiate it from edge-face or edge-edge connection because it is highly useful and common for real-life furniture design, which makes it deserve a special treatment.): addInsertion((faceB,edgeB), (faceA,edgeA), orientation=front-front/front-back, offset=(x,y), angle=(x,z))
initial placement: the same as edge-edge
a. faceA, edgeA
b. faceB, edgeB
c. orientation: front-front vs front-back
d. offset: (x,y) (can offset along the x-axis and the y-axis)
e. angle: (x=90*k,y) (can rotate around the x-axis or the y-axis)
- edge-face: addEdgeToFace((faceB,edgeB), (faceA), orientation=front-front/front-back, offset=(x,y), angle=(x,z), rotation=alpha)
initial placement: faceA is placed in the x-y plane of an x-y-z coordinate, centering at (0,0,0). faceB is also placed in the x-y plane of an x-y-z coordinate, with its edgeB ???
a. faceA
b. faceB, edgeB
c. orientation: front-front vs front-back
d. offset: (x,y) (can offset along the x-axis and the y-axis)
e. angle: (x,z) (can rotate around the x-axis or the z-axis)
f. rotation: alpha (faceB can rotation within the x-y plane around the z-axis clockwise with an angle of alpha)
- face-face: addEdgeToFace((faceB), (faceA), orientation=front-front/front-back, offset=(x,y,z), angle=(x,y,z), rotation=alpha)
initial placement: Both faceA and faceB are placed within the x-y plane of an x-y-z coordinated, centering at (0,0,0).
a. faceA
b. faceB
c. orientation: front-front vs front-back
d. offset: (x,y,z)
e. angle: (x,y,z)
f. rotation: alpha (faceB can rotation within the x-y plane around the z-axis clockwise with an angle of alpha)