17#ifndef __albaCurvilinearAbscissaOnSkeletonHelper_h
18#define __albaCurvilinearAbscissaOnSkeletonHelper_h
25#include "albaServiceClient.h"
26#include "albaAbsLogicManager.h"
34class albaVMEPolylineGraph;
90 void GetAbsPose( albaVMEPolylineGraph *inputConstrainVMEGraph, vtkIdType inBranchId,
double s,
albaMatrix &moverOutputAbsPose );
91 void MoveOnSkeletonInternal( vtkIdType inBranchId,
double inS,
double inMoveAbsVector[3], vtkIdType &outputBranch,
double &outputS,
albaMatrix &outputGizmoAbsMatrix );
92 void ComputeLocalPointPositionBetweenVerticesForSkeletonBranch(
double distP0s,
int idP0,
int idP1,
double pOut[3] );
93 double CheckS( vtkIdType inputBranchId,
double inS );
94 void FindBoundaryVertices( vtkIdType inputSkeletonBranchId,
double inS,
int &outIdMin,
int &outIdMax,
double &outSFromIdMin );
95 void FindTargetBranchAfterBifurcation( vtkIdType bifurcationVertexId,
double moveAbsVector[3], vtkIdType &outputVertexId, vtkIdType &outputEdgeID, vtkIdType &outputBranchId);
97 void FindPerpendicularVersorsToSegment(
int idP0,
int idP1,
double viewUp[3],
double normal[3] );
100 albaVMEPolylineGraph *m_ConstraintVMEPolylineGraph;
102 vtkIdType m_ActiveBranchId;
103 double m_CurvilinearAbscissa;
106 static void LogPoint(
double *point,
const char *logMessage = NULL );
107 static void LogVector3(
double *vector ,
const char *logMessage = NULL);
110 virtual void CreateGui();
112 int m_GUIActiveBranchId;
113 double m_GUICurvilinearAbscissa;
Decorate input vme with curvilinear abscissa interface for albaVMEPolylineGraph constrained interacti...
vtkIdType GetActiveBranchId()
Get the active branch ie the branch to which inputVME is currently constrained.
~albaCurvilinearAbscissaOnSkeletonHelper()
virtual void OnEvent(albaEventBase *alba_event)
GUI Stuff.
void SetConstraintPolylineGraph(albaVMEPolylineGraph *constraintPolylineGraph)
Set the polyline graph constraint.
albaGUI * GetGui()
Return the gui to be plugged.
double GetCurvilinearAbscissa()
Get the curvilinear abscissa.
int SetCurvilinearAbscissa(vtkIdType branchId, double s)
Set the curvilinear abscissa value s on branchId branch, return ALBA_OK or ALBA_ERROR.
albaVMEPolylineGraph * GetSetConstraintPolylineGraph()
Get the polyline graph constraint.
void MoveOnSkeleton(albaEvent *mouseEvent)
Move input vme constrained to skeleton in response to mouse events: use in your client as:
virtual void EnableWidgets(bool enable)
Enable-Disable the GUI's widgets.
albaCurvilinearAbscissaOnSkeletonHelper(albaVME *inputVME, albaObserver *listener=NULL, bool testMode=false)
Pass the vme you want to decorate with curvilinear abscissa interface.
Implementation of the message object for the Subject/Observer design pattern.
albaEvent - Class implementing ALBA application events.
albaGUI is a panel with function to easily create GUI.
albaMatrix - Time stamped 4x4 Matrix.
Interface implementing the Observer of the Subject/Observer design pattern.