rsvs3D  0.0.0
Codes for the c++ implementation of the 3D RSVS
snake Class Reference

Public Member Functions

meshsnakemesh () const
 
void disp () const
 
void displight () const
 
bool isready () const
 
void clear ()
 
void PrepareForUse (bool needOrder=true)
 
void Init (mesh *snakemeshin, int nSnax, int nEdge, int nSurf, int nVolu)
 
void SetSnakeMesh (mesh *snakemeshin)
 
void reserve (int nSnax, int nEdge, int nSurf, int nVolu)
 
void GetMaxIndex (int *nVert, int *nEdge, int *nSurf, int *nVolu) const
 
void HashArray ()
 
void HashArrayNM ()
 
void HashParent ()
 
void SetMaxIndex ()
 
void SetMaxIndexNM ()
 
void Concatenate (const snake &other, int isInternal=0)
 
bool Check3D () const
 
void MakeCompatible_inplace (snake &other) const
 
snake MakeCompatible (snake other) const
 
void ChangeIndices (int nVert, int nEdge, int nSurf, int nVolu)
 
void ChangeIndicesSnakeMesh (int nVert, int nEdge, int nSurf, int nVolu)
 
void ForceCloseContainers ()
 
void UpdateDistance (double dt, double maxDstep=1.0, bool scaledStep=false)
 
void UpdateDistance (const std::vector< double > &dt, double maxDstep=1.0, bool scaledStep=false)
 
void CalculateTimeStep (std::vector< double > &dt, double dtDefault, double distDefault=1.0)
 
double SnaxStepLimit (int snaxSub) const
 
void SetEdgeStepLimits ()
 Sets the relative edge step limits. More...
 
void SnaxImpactDetection (std::vector< int > &isImpact)
 
void SnaxAlmostImpactDetection (std::vector< int > &isImpact, double dDlim)
 
void UpdateCoord ()
 
void UpdateCoord (const std::vector< int > &snaxInds)
 
void Flip ()
 
grid::limits Scale (const grid::limits &newSize)
 
void OrderEdges ()
 
void SetSnaxSurfs ()
 
void OrientFaces ()
 
int FindBlockSnakeMeshVerts (std::vector< int > &vertBlock) const
 
void AssignInternalVerts ()
 
void CheckConnectivity () const
 
void TakeSpawnStep (int minIndex, double stepLength)
 
void TakeSmoothSpawnStep (int minIndex, double stepLength, std::string smoothStep="none")
 
void VertIsIn (int vertInd, bool isIn=true)
 
void VertIsIn (std::vector< int > vertInd, bool isIn=true)
 
bool ReturnFlip () const
 
void read (FILE *fid)
 
void write (FILE *fid) const
 
int read (const char *str)
 
int write (const char *str) const
 
std::vector< double > MoveDirections () const
 
void SetSnaxDistanceLimit_conserveShape (bool in)
 

Public Attributes

snaxarray snaxs
 
snaxedgearray snaxedges
 
snaxsurfarray snaxsurfs
 
mesh snakeconn
 
std::vector< bool > isMeshVertIn
 
std::vector< double > edgeStepLimit
 

Private Member Functions

void SetLastIndex ()
 
void OrientSurfaceVolume ()
 
void OrientEdgeSurface ()
 

Private Attributes

meshprivatesnakemesh = NULL
 
bool snaxDistanceLimit_conserveShape = true
 
bool isSetStepLimit = false
 
bool is3D = true
 
bool isFlipped = false
 

Detailed Description

Definition at line 82 of file snake.hpp.

Member Function Documentation

◆ SetEdgeStepLimits()

void snake::SetEdgeStepLimits ( )

Sets the relative edge step limits.

These are the dependant on the relative edge lengths and ensure consistant real step size limits inside a single design variable.

Definition at line 902 of file snake.cpp.


The documentation for this class was generated from the following files: