|
1 | | -function supportPoint(obj::Composition.Object3D, e::SVector{3,Float64}) |
| 1 | +function supportPoint(obj::Composition.Object3D, e::SVector{3,T}) where {T} |
2 | 2 | shapeKind = obj.shapeKind |
3 | 3 | solid::Modia3D.Solid = obj.feature |
4 | | - collisionSmoothingRadius = solid.collisionSmoothingRadius |
| 4 | + collisionSmoothingRadius = T(solid.collisionSmoothingRadius) |
| 5 | + obj_r_abs = SVector{3, T}(obj.r_abs) |
| 6 | + obj_R_abs = SMatrix{3,3,T,9}(obj.R_abs) |
5 | 7 |
|
6 | 8 | if shapeKind == Modia3D.SphereKind |
7 | 9 | #sphere::Modia3D.Sphere = obj.shape |
8 | | - return Modia3D.supportPoint_Sphere(obj.shape, obj.r_abs, obj.R_abs, e) |
| 10 | + return Modia3D.supportPoint_Sphere(obj.shape, obj_r_abs, obj_R_abs, e) |
9 | 11 | elseif shapeKind == Modia3D.EllipsoidKind |
10 | 12 | #ellipsoid::Modia3D.Ellipsoid = obj.shape |
11 | | - return Modia3D.supportPoint_Ellipsoid(obj.shape, obj.r_abs, obj.R_abs, e) |
| 13 | + return Modia3D.supportPoint_Ellipsoid(obj.shape, obj_r_abs, obj_R_abs, e) |
12 | 14 | elseif shapeKind == Modia3D.BoxKind |
13 | 15 | #box::Modia3D.Box = obj.shape |
14 | | - return Modia3D.supportPoint_Box(obj.shape, obj.r_abs, obj.R_abs, e, collisionSmoothingRadius) |
| 16 | + return Modia3D.supportPoint_Box(obj.shape, obj_r_abs, obj_R_abs, e, collisionSmoothingRadius) |
15 | 17 | elseif shapeKind == Modia3D.CylinderKind |
16 | 18 | #cylinder::Modia3D.Cylinder = obj.shape |
17 | | - return Modia3D.supportPoint_Cylinder(obj.shape, obj.r_abs, obj.R_abs, e, collisionSmoothingRadius) |
| 19 | + return Modia3D.supportPoint_Cylinder(obj.shape, obj_r_abs, obj_R_abs, e, collisionSmoothingRadius) |
18 | 20 | elseif shapeKind == Modia3D.ConeKind |
19 | 21 | #cone::Modia3D.Cone = obj.shape |
20 | | - return Modia3D.supportPoint_Cone(obj.shape, obj.r_abs, obj.R_abs, e, collisionSmoothingRadius) |
| 22 | + return Modia3D.supportPoint_Cone(obj.shape, obj_r_abs, obj_R_abs, e, collisionSmoothingRadius) |
21 | 23 | elseif shapeKind == Modia3D.CapsuleKind |
22 | 24 | #capsule::Modia3D.Capsule = obj.shape |
23 | | - return Modia3D.supportPoint_Capsule(obj.shape, obj.r_abs, obj.R_abs, e) |
| 25 | + return Modia3D.supportPoint_Capsule(obj.shape, obj_r_abs, obj_R_abs, e) |
24 | 26 | elseif shapeKind == Modia3D.BeamKind |
25 | 27 | #beam::Modia3D.Beam = obj.shape |
26 | | - return Modia3D.supportPoint_Beam(obj.shape, obj.r_abs, obj.R_abs, e, collisionSmoothingRadius) |
| 28 | + return Modia3D.supportPoint_Beam(obj.shape, obj_r_abs, obj_R_abs, e, collisionSmoothingRadius) |
27 | 29 | elseif shapeKind == Modia3D.FileMeshKind |
28 | 30 | #fileMesh::Modia3D.FileMesh = obj.shape |
29 | | - return Modia3D.supportPoint_FileMesh(obj.shape, obj.r_abs, obj.R_abs, e) |
| 31 | + return Modia3D.supportPoint_FileMesh(obj.shape, obj_r_abs, obj_R_abs, e) |
30 | 32 | else |
31 | 33 | error("not supported shape for support points") |
32 | 34 | end |
|
0 commit comments