Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
Simulating Guidewires In Blood Vessels
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Robin Viellieber
Simulating Guidewires In Blood Vessels
Commits
72bac8b8
Commit
72bac8b8
authored
Jan 22, 2023
by
rv3Dcv
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add execution time measurement
parent
953c314c
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
76 additions
and
13 deletions
+76
-13
CollisionTestScene_2Spheres_PrimitiveSphere_UnityVariant.unity
...sionTestScene_2Spheres_PrimitiveSphere_UnityVariant.unity
+5
-1
CollisionTestScene_50Spheres_Aorta_Example_3.unity
...Scenes/CollisionTestScene_50Spheres_Aorta_Example_3.unity
+4
-0
CollisionHandler.cs
...ation/Assets/Guidewire_Assets/Scripts/CollisionHandler.cs
+2
-0
CollisionSolvingStep_UnityVariant.cs
...ewire_Assets/Scripts/CollisionSolvingStep_UnityVariant.cs
+4
-0
SimulationLoop.cs
...ulation/Assets/Guidewire_Assets/Scripts/SimulationLoop.cs
+51
-2
EditorUserSettings.asset
...GuidewireSimulation/UserSettings/EditorUserSettings.asset
+10
-10
No files found.
GuidewireSimulation/GuidewireSimulation/Assets/Guidewire_Assets/Scenes/CollisionTestScene_2Spheres_PrimitiveSphere_UnityVariant.unity
View file @
72bac8b8
...
...
@@ -264,6 +264,10 @@ PrefabInstance:
propertyPath
:
doCollisionTestTwo
value
:
0
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
3901088838006394844
,
guid
:
0e128b35dc3ea6746b6de609560d672d
,
type
:
3
}
propertyPath
:
doCollisionTestFour
value
:
0
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
3901088838006394844
,
guid
:
0e128b35dc3ea6746b6de609560d672d
,
type
:
3
}
propertyPath
:
doCollisionTestThree
value
:
1
...
...
@@ -322,7 +326,7 @@ PrefabInstance:
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
4233146888435007091
,
guid
:
0e128b35dc3ea6746b6de609560d672d
,
type
:
3
}
propertyPath
:
constraintSolverSteps
value
:
100
0
value
:
100
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
4233146888435007091
,
guid
:
0e128b35dc3ea6746b6de609560d672d
,
type
:
3
}
propertyPath
:
spheres.Array.data[0]
...
...
GuidewireSimulation/GuidewireSimulation/Assets/Guidewire_Assets/Scenes/CollisionTestScene_50Spheres_Aorta_Example_3.unity
View file @
72bac8b8
...
...
@@ -334,6 +334,10 @@ PrefabInstance:
propertyPath
:
m_Layer
value
:
6
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
5473619483809765880
,
guid
:
805cc1f2f40a41e4e9f4704ac26dd5d7
,
type
:
3
}
propertyPath
:
m_IsActive
value
:
1
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
5834078635128846381
,
guid
:
805cc1f2f40a41e4e9f4704ac26dd5d7
,
type
:
3
}
propertyPath
:
m_Materials.Array.data[0]
value
:
...
...
GuidewireSimulation/GuidewireSimulation/Assets/Guidewire_Assets/Scripts/CollisionHandler.cs
View file @
72bac8b8
...
...
@@ -17,6 +17,7 @@ namespace GuidewireSim
*/
float
sphereRadius
=
5f
;
//!< The radius of the sphere elements of the guidewire.
public
bool
collided
=
false
;
private
void
Start
()
{
...
...
@@ -27,6 +28,7 @@ namespace GuidewireSim
{
CollisionPair
registeredCollision
=
new
CollisionPair
(
sphere
,
vesselCollider
,
sphereID
);
registeredCollisions
.
Add
(
registeredCollision
);
collided
=
true
;
}
public
void
ResetRegisteredCollisions
()
...
...
GuidewireSimulation/GuidewireSimulation/Assets/Guidewire_Assets/Scripts/CollisionSolvingStep_UnityVariant.cs
View file @
72bac8b8
...
...
@@ -25,6 +25,10 @@ namespace GuidewireSim
}
deltaPosition
=
CalculateDeltaPosition
(
spherePositionPrediction
,
closestSurfacePoint
,
normalVector
);
// Vector3 correction = spherePositionPrediction + 0.001f * deltaPosition;
// float difference = Vector3.Distance(spherePositionPrediction, correction);
// Debug.Log(difference.ToString("e3"));
}
}
}
\ No newline at end of file
GuidewireSimulation/GuidewireSimulation/Assets/Guidewire_Assets/Scripts/SimulationLoop.cs
View file @
72bac8b8
...
...
@@ -101,6 +101,17 @@ public class SimulationLoop : MonoBehaviour
public
int
SpheresCount
{
get
;
private
set
;
}
//!< The count of all #spheres of the guidewire.
public
int
CylinderCount
{
get
;
private
set
;
}
//!< The count of all #cylinders of the guidewire.
float
elapsedTime
=
0
;
float
timeConstraintSolving
=
0
;
float
timeUpdateStep
=
0
;
float
timePredictionStep
=
0
;
float
timeAdaptCalculationsStep
=
0
;
float
timeSetCollidersStep
=
0
;
float
timeCompleteFrame
=
0
;
float
timeCompleteFrameMeasure
=
0
;
float
timeMeasure
=
0
;
float
measurePoint
=
5f
;
private
void
Awake
()
{
Assert
.
IsFalse
(
spheres
.
Length
==
0
);
...
...
@@ -151,6 +162,8 @@ public class SimulationLoop : MonoBehaviour
if
(
ExecuteSingleLoopTest
)
return
;
PerformSimulationLoop
();
elapsedTime
+=
Time
.
deltaTime
;
}
/**
...
...
@@ -191,13 +204,49 @@ public class SimulationLoop : MonoBehaviour
*/
public
void
PerformSimulationLoop
()
{
// CollisionDetection();
// GenerateCollisionConstraints();
if
(
collisionHandler
.
collided
)
{
timeMeasure
=
Time
.
realtimeSinceStartup
;
timeCompleteFrameMeasure
=
Time
.
realtimeSinceStartup
;
}
PerformConstraintSolvingStep
();
if
(
collisionHandler
.
collided
)
{
timeConstraintSolving
=
Time
.
realtimeSinceStartup
-
timeMeasure
;
timeMeasure
=
Time
.
realtimeSinceStartup
;
}
PerformUpdateStep
();
if
(
collisionHandler
.
collided
)
{
timeUpdateStep
=
Time
.
realtimeSinceStartup
-
timeMeasure
;
timeMeasure
=
Time
.
realtimeSinceStartup
;
}
PerformPredictionStep
();
if
(
collisionHandler
.
collided
)
{
timePredictionStep
=
Time
.
realtimeSinceStartup
-
timeMeasure
;
timeMeasure
=
Time
.
realtimeSinceStartup
;
}
AdaptCalculations
();
if
(
collisionHandler
.
collided
)
{
timeAdaptCalculationsStep
=
Time
.
realtimeSinceStartup
-
timeMeasure
;
timeMeasure
=
Time
.
realtimeSinceStartup
;
}
SetCollidersStep
();
if
(
collisionHandler
.
collided
)
{
timeSetCollidersStep
=
Time
.
realtimeSinceStartup
-
timeMeasure
;
timeCompleteFrame
=
Time
.
realtimeSinceStartup
-
timeCompleteFrameMeasure
;
Time
.
timeScale
=
0f
;
Debug
.
Log
(
"execution time constraint solving: "
+
timeConstraintSolving
.
ToString
(
"F7"
));
Debug
.
Log
(
"execution time update step: "
+
timeUpdateStep
.
ToString
(
"F7"
));
Debug
.
Log
(
"execution time prediction step: "
+
timePredictionStep
.
ToString
(
"F7"
));
Debug
.
Log
(
"execution time adapt calculations: "
+
timeAdaptCalculationsStep
.
ToString
(
"F7"
));
Debug
.
Log
(
"execution time set colliders: "
+
timeSetCollidersStep
.
ToString
(
"F7"
));
Debug
.
Log
(
"execution time whole frame: "
+
timeCompleteFrame
.
ToString
(
"F7"
));
}
}
/**
...
...
GuidewireSimulation/GuidewireSimulation/UserSettings/EditorUserSettings.asset
View file @
72bac8b8
...
...
@@ -6,34 +6,34 @@ EditorUserSettings:
serializedVersion
:
4
m_ConfigSettings
:
RecentlyUsedScenePath-0
:
value
:
224247031146467c18070827072a4d1529360b39293c357f1e2a183de7f37b1bedeb3ae0f43330320d07fc28373d0431f7355
b38e6030f19141dc23e03f61d1a05cc0ec037cd0c14fb100ccbf231deedd2e9e1e4d1fffeeedfcda9f3fae4a0edfbf8b1e2
value
:
224247031146467c18070827072a4d1529360b39293c357f1e2a183de7f37b1bedeb3ae0f43330320d07fc28373d0431f7355
85bc51b020e030bee3121ed191e18d111d31fe51a0fc32915dec822fdecdbd1ebdfd6e2f3c1e8deb2fbf5fefab8a4bfb0f5a3bce5
flags
:
0
RecentlyUsedScenePath-1
:
value
:
224247031146467c18070827072a4d1529360b39293c357f1e2a183de7f37b1bedeb3ae0f43330320d07fc28373d0431f7355b38e6030f19141dc2
3e03f61d1a05cc0ec037cd0c14f80914cbdf189ff6dbdfc0f3
value
:
224247031146467c18070827072a4d1529360b39293c357f1e2a183de7f37b1bedeb3ae0f43330320d07fc28373d0431f7355b38e6030f19141dc2
2314ec182318d51dfa2fc61608d22f1ddcc41cdff79bc3dae3ccf2
flags
:
0
RecentlyUsedScenePath-2
:
value
:
224247031146467c18070827072a4d1529360b39293c357f1e2a183de7f37b1bedeb3ae0f43330320d07fc28373d0431f7355b38e6030f19141dc23
e03f61d1a05cc0ec037cd0c14f80914cbdf18eed6dbdfc0f3eeeaf5d1dfd1b4bce1fee7ecec
value
:
224247031146467c18070827072a4d1529360b39293c357f1e2a183de7f37b1bedeb3ae0f43330320d07fc28373d0431f7355b38e6030f19141dc23
810ed191c04d637c710cd1c08d85709c0c409c8
flags
:
0
RecentlyUsedScenePath-3
:
value
:
224247031146467c18070827072a4d1529360b39293c357f1e2a183de7f37b1bedeb3ae0f43330320d07fc28373d0431f7355
a5bc51b020e030bee3130f0020710fa3ddd1bc50f10ce264e80d813d8f7cc
value
:
224247031146467c18070827072a4d1529360b39293c357f1e2a183de7f37b1bedeb3ae0f43330320d07fc28373d0431f7355
b38e6030f19141dc23e03f61d1a05cc0ec029d81719d91c23fbc314c5fae3d7c6e3d9e5f396cbd1a9e6ed
flags
:
0
RecentlyUsedScenePath-4
:
value
:
224247031146467c18070827072a4d1529360b39293c357f1e2a183de7f37b1bedeb3ae0f43330320d07fc28373d0431f7355
a5bc51b020e030bee3130f0020710fa3ddd1bc50f10ce264f80d813d8f7cc
value
:
224247031146467c18070827072a4d1529360b39293c357f1e2a183de7f37b1bedeb3ae0f43330320d07fc28373d0431f7355
85bc51b020e030bee313cfa031b33cc1ed008cb1e08c21612f1f813d8f7cce0d5f8d1eae9cc9e8deee7faf9fae1
flags
:
0
RecentlyUsedScenePath-5
:
value
:
224247031146467c18070827072a4d1529360b39293c357f1e2a183de7f37b1bedeb3ae0f43330320d07fc28373d0431f7355
b38e6030f19141dc23e03f61d1a05cc0ec037cd0c14fb100ccbf228dfeac1cfe2ebcae2e6d6ca91b5fcfde4f7
value
:
224247031146467c18070827072a4d1529360b39293c357f1e2a183de7f37b1bedeb3ae0f43330320d07fc28373d0431f7355
85bc51b020e030bee313cfa031b33cc1ed008cb1e08c21612f1f813d8f7cce0d5f8d1eae9cc9e8eeee7faf9fae1
flags
:
0
RecentlyUsedScenePath-6
:
value
:
224247031146467c18070827072a4d1529360b39293c357f1e2a183de7f37b1bedeb3ae0f43330320d07fc28373d0431f7355
c5bc51b020e030bee3130f0020710fa3ddd1bc50f10ce264f80d813d8f7cc
value
:
224247031146467c18070827072a4d1529360b39293c357f1e2a183de7f37b1bedeb3ae0f43330320d07fc28373d0431f7355
85bc51b020e030bee313cfa031b33cc1ed008cb1e08c21612f1f813d8f7cce0d5f8d1eae9cc90caaefbe0e9
flags
:
0
RecentlyUsedScenePath-7
:
value
:
224247031146467c18070827072a4d1529360b39293c357f1e2a183de7f37b1bedeb3ae0f43330320d07fc28373d0431f7355
a5bc51b020e030bee3130f0020710fa3ddd1bc50f10ce264d80d813d8f7cc
value
:
224247031146467c18070827072a4d1529360b39293c357f1e2a183de7f37b1bedeb3ae0f43330320d07fc28373d0431f7355
b38e6030f19141db5011dfb595d04cb11d103
flags
:
0
RecentlyUsedScenePath-8
:
value
:
224247031146467c18070827072a4d1529360b39293c357f1e2a183de7f37b1bedeb3ae0f43330320d07fc28373d0431f7355
85bc51b020e030bee3121ed191e18d111d31fe51a0fc32915dec822fdecdbd1ebdfd6e2f3c1e8deb2fbf5fefab6e0ffacefb3
value
:
224247031146467c18070827072a4d1529360b39293c357f1e2a183de7f37b1bedeb3ae0f43330320d07fc28373d0431f7355
a5bc51b020e030bee3130f0020710fa3ddd1bc50f10ce264f80d813d8f7cc
flags
:
0
RecentlyUsedScenePath-9
:
value
:
224247031146467c18070827072a4d1529360b39293c357f1e2a183de7f37b1bedeb3ae0f43330320d07fc28373d0431f7355
85bc51b020e030bee3121ed191e18d111d31fe51a0fc32915dec822fdecdbd1ebdfd6e2f3c1e8deb2fbf5fefab8a4bfb0f5a3bce5
value
:
224247031146467c18070827072a4d1529360b39293c357f1e2a183de7f37b1bedeb3ae0f43330320d07fc28373d0431f7355
c5bc51b020e030bee3130f0020710fa3ddd1bc50f10ce264f80d813d8f7cc
flags
:
0
vcSharedLogLevel
:
value
:
0d5e400f0650
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment