Volume Data (Path + Vertex, VertexNormal, Cross)
Public Attributes  
bool  CrossClosed 
Whether the Cross base spline is closed or not More...  
float  CrossFShift 
A shift of the CrossRelativeDistances value that is applied when using the interpolation methods on the volume, like InterpolateVolume More...  
SamplePointsMaterialGroupCollection  CrossMaterialGroups 
bool  CrossSeamless 
Whether the Cross shape covers the whole length of the base spline More...  
Public Attributes inherited from CGShape  
bool  Closed 
Whether the base spline is closed or not More...  
float  Length 
Length in world units More...  
List< SamplePointsMaterialGroup >  MaterialGroups 
Groups/Patches More...  
bool  Seamless 
Whether the Shape/Path is seamless, i.e. Closed==true and the whole length is covered More...  
bool  SourceIsManaged 
Whether the source is managed or not More...  
Public Attributes inherited from CGData  
string  Name 
Properties  
SubArray< float >  CrossCustomValues [get, set] 
The CGShape.CustomValues of the CGShape used in the extrusion of this volume More...  
float[]  CrossF [get, set] 
The CGShape.F of the CGShape used in the extrusion of this volume More...  
float[]  CrossMap [get, set] 
The CGShape.CustomValues of the CGShape used in the extrusion of this volume More...  
SubArray< float >  CrossRelativeDistances [get, set] 
The CGShape.F of the CGShape used in the extrusion of this volume More...  
int  CrossSize [get] 
Gets the number of cross shape's sample points More...  
SubArray< Vector2 >  Scales [get, set] 
The 2D scale of the mesh at each sample point of the volume's path More...  
float[]  SegmentLength [get, set] 
Length of a given cross segment. Will be calculated on demand only! More...  
Vector3[]  Vertex [get, set] 
Positions of the points, in the local space More...  
int  VertexCount [get] 
Vector3[]  VertexNormal [get, set] 
Normals of the points, in the local space More...  
SubArray< Vector3 >  VertexNormals [get, set] 
Notmals of the points, in the local space More...  
SubArray< Vector3 >  Vertices [get, set] 
Positions of the points, in the local space More...  
Properties inherited from CGPath  
Vector3[]  Direction [get, set] 
Tangents of the path's points, in the path's local space More...  
SubArray< Vector3 >  Directions [get, set] 
Tangents of the path's points, in the path's local space More...  
Properties inherited from CGShape  
override int  Count [get] 
Gets the number of sample points More...  
SubArray< float >  CustomValues [get, set] 
Arbitrary mapped value to each point, usually U coordinate More...  
List< DuplicateSamplePoint >  DuplicatePoints [get, set] 
The list of the shape's DuplicatePoints More...  
float[]  F [get, set] 
The relative distance of each point. A relative distance is a value between 0 and 1 representing how far the point is in a shape. A value of 0 means the start of the shape, and a value of 1 means the end of it. It is defined as (the point's distance from the shape's start) / (the total length of the shape) This is unrelated to the notion of
or F of a spline. Unfortunately, it is abusively called F in big parts of the the Curvy Generator related code, sorry for the confusion. More...  
float[]  Map [get, set] 
Arbitrary mapped value to each point, usually U coordinate More...  
Vector3[]  Normal [get, set] 
Normals of the path's points, in the path's local space More...  
SubArray< Vector3 >  Normals [get, set] 
Normals of the path's points, in the path's local space More...  
Vector3[]  Position [get, set] 
Positions of the path's points, in the path's local space More...  
SubArray< Vector3 >  Positions [get, set] 
Positions of the path's points, in the path's local space More...  
SubArray< float >  RelativeDistances [get, set] 
The relative distance of each point. A relative distance is a value between 0 and 1 representing how far the point is in a shape. A value of 0 means the start of the shape, and a value of 1 means the end of it. It is defined as (the point's distance from the shape's start) / (the total length of the shape) This is unrelated to the notion of
or F of a spline. Unfortunately, it is abusively called F in big parts of the the Curvy Generator related code, sorry for the confusion. More...  
float[]  SourceF [get, set] 
The relative distance of each point relative to the source shape. A relative distance is a value between 0 and 1 representing how far the point is in a shape. A value of 0 means the start of the shape, and a value of 1 means the end of it. It is defined as (the point's distance from the shape's start) / (the total length of the shape) Contrary to
which is computed based on the actual shape, SourceRelativeDistances is computed based on the source shape. For example, if a Shape A is defined as the second quarter of a Shape B, A's first point will have a relative distance of 0, but a source relative distance of 0.25. A's last point will have a relative distance of 1, but a source relative distance of 0.5 This is unrelated to the notion of or F of a spline. Unfortunately, it is abusively called F in big parts of the the Curvy Generator related code, sorry for the confusion. More...  
SubArray< float >  SourceRelativeDistances [get, set] 
The relative distance of each point relative to the source shape. A relative distance is a value between 0 and 1 representing how far the point is in a shape. A value of 0 means the start of the shape, and a value of 1 means the end of it. It is defined as (the point's distance from the shape's start) / (the total length of the shape) Contrary to
which is computed based on the actual shape, SourceRelativeDistances is computed based on the source shape. For example, if a Shape A is defined as the second quarter of a Shape B, A's first point will have a relative distance of 0, but a source relative distance of 0.25. A's last point will have a relative distance of 1, but a source relative distance of 0.5 This is unrelated to the notion of or F of a spline. Unfortunately, it is abusively called F in big parts of the the Curvy Generator related code, sorry for the confusion. More...  
Properties inherited from CGData  
virtual int  Count [get] 
Public Member Functions  
CGVolume ()  
CGVolume (int samplePoints, CGShape crossShape)  
CGVolume (CGPath path, CGShape crossShape)  
CGVolume (CGVolume source)  
override T  Clone< T > () 
float  CrossDistanceToF (float f, float distance, CurvyClamping crossClamping=CurvyClamping.Clamp) 
float  CrossFToDistance (float f, float crossF, CurvyClamping crossClamping=CurvyClamping.Clamp) 
int  GetCrossFIndex (float crossF, out float frag) 
float  GetCrossLength (float pathF) 
int  GetSegmentIndex (int segment) 
void  GetSegmentIndices (float pathF, out int segment0Index, out int segment1Index, out float frag) 
Get the indices of the two points on the path that are surrounding the point at pathF More...  
Vector3[]  GetSegmentVertices (params int[] segmentIndices) 
Gets all vertices belonging to one or more extruded shape segments More...  
int  GetVertexIndex (float pathF, out float pathFrag) 
Get the index of the first vertex belonging to the segment a certain F is part of More...  
int  GetVertexIndex (float pathF, float crossF, out float pathFrag, out float crossFrag) 
Get the index of the first vertex of the edge a certain F and CrossF is part of More...  
void  InterpolateVolume (float f, float crossF, out Vector3 pos, out Vector3 dir, out Vector3 up) 
Vector3  InterpolateVolumeDirection (float f, float crossF) 
Vector3  InterpolateVolumePosition (float f, float crossF) 
Vector3  InterpolateVolumeUp (float f, float crossF) 
Public Member Functions inherited from CGPath  
CGPath ()  
CGPath (CGPath source)  
void  Interpolate (float f, out Vector3 position, out Vector3 direction, out Vector3 up) 
Interpolates Position, Direction and Normal by F More...  
void  Interpolate (float f, float angleF, out Vector3 pos, out Vector3 dir, out Vector3 up) 
Vector3  InterpolateDirection (float f) 
Interpolates Direction by F More...  
Public Member Functions inherited from CGShape  
CGShape ()  
CGShape (CGShape source)  
void  Copy (CGShape source) 
float  DistanceToF (float distance) 
Converts absolute (World Units) to relative (F) distance More...  
float  FToDistance (float f) 
Converts relative (F) to absolute distance (World Units) More...  
int  GetFIndex (float f, out float frag) 
Gets the index of a certain F More...  
void  Interpolate (float f, out Vector3 position, out Vector3 up) 
Interpolates Position and Normal by F More...  
Vector3  InterpolatePosition (float f) 
Interpolates Position by F More...  
Vector3  InterpolateUp (float f) 
Interpolates Normal by F More...  
void  Move (ref float f, ref int direction, float speed, CurvyClamping clamping) 
void  MoveBy (ref float f, ref int direction, float speedDist, CurvyClamping clamping) 
virtual void  Recalculate () 
Recalculate Length and RelativeDistances (by measuring a polyline built from all Position points) More...  
void  RecalculateNormals (List< int > softEdges) 
void  RecalculateNormals ([NotNull] CurvySpline spline) 
Recalculate the shape's Normals based on the spline the shape was rasterized from More...  
void  RecalculateNormals () 
Recalculate the shape's Normals based on shape's rasterized Positions More...  
Public Member Functions inherited from CGData  
void  Dispose () 
Disposes an instance that is no more used, allowing it to free its resources immediately. Dispose is called automatically when an instance is Finalized More...  
Static Public Member Functions  
static CGVolume  Get (CGVolume data, CGPath path, CGShape crossShape) 
Returns a CGVolume made from the given CGPath and CGShape More...  
Static Public Member Functions inherited from CGPath  
static void  Copy (CGPath dest, CGPath source) 
Static Public Member Functions inherited from CGShape  
static void  Copy (CGShape dest, CGShape source) 
Static Public Member Functions inherited from CGData  
static implicit  operator bool (CGData a) 
Protected Member Functions  
override bool  Dispose (bool disposing) 
Protected Member Functions inherited from CGData  
int  getGenericFIndex (SubArray< float > FMapArray, float fValue, out float frag) 
Searches FMapArray and returns the index that covers the fValue as well as the percentage between index and index+1 More...  
CGVolume  (  ) 

virtual 
Reimplemented from CGPath.
float CrossDistanceToF  (  float  f, 
float  distance,  
CurvyClamping  crossClamping = CurvyClamping.Clamp 

) 
float CrossFToDistance  (  float  f, 
float  crossF,  
CurvyClamping  crossClamping = CurvyClamping.Clamp 

) 

protectedvirtual 
Reimplemented from CGPath.
Returns a CGVolume made from the given CGPath and CGShape
data  If not null, the returned instance will be the one but with its fields updated. If null, a new instance will be created 
path  The path used in the creation of the volume 
crossShape  The shape used in the creation of the volume 
int GetCrossFIndex  (  float  crossF, 
out float  frag  
) 
float GetCrossLength  (  float  pathF  ) 
int GetSegmentIndex  (  int  segment  ) 
void GetSegmentIndices  (  float  pathF, 
out int  segment0Index,  
out int  segment1Index,  
out float  frag  
) 
Get the indices of the two points on the path that are surrounding the point at pathF
pathF  The relative distance of the input point on the path 
segment0Index  Index of the path point just before the input point 
segment1Index  Index of the path point just after the input point 
frag  The interpolation value between segment0Index and segment1Index, defining the exact position of the input point between those two points 
Vector3 [] GetSegmentVertices  (  params int[]  segmentIndices  ) 
Gets all vertices belonging to one or more extruded shape segments
segmentIndices  indices of segments in question 
int GetVertexIndex  (  float  pathF, 
out float  pathFrag  
) 
Get the index of the first vertex belonging to the segment a certain F is part of
pathF  position on the path (0..1) 
pathFrag  remainder between the returned segment and the next segment 
int GetVertexIndex  (  float  pathF, 
float  crossF,  
out float  pathFrag,  
out float  crossFrag  
) 
Get the index of the first vertex of the edge a certain F and CrossF is part of
pathF  position on the path (0..1) 
crossF  position on the cross (0..1) 
pathFrag  remainder between the segment and the next segment 
crossFrag  remainder between the returned vertex and the next vertex 
void InterpolateVolume  (  float  f, 
float  crossF,  
out Vector3  pos,  
out Vector3  dir,  
out Vector3  up  
) 
Vector3 InterpolateVolumeDirection  (  float  f, 
float  crossF  
) 
Vector3 InterpolateVolumePosition  (  float  f, 
float  crossF  
) 
Vector3 InterpolateVolumeUp  (  float  f, 
float  crossF  
) 
bool CrossClosed 
Whether the Cross base spline is closed or not
float CrossFShift 
A shift of the CrossRelativeDistances value that is applied when using the interpolation methods on the volume, like InterpolateVolume
SamplePointsMaterialGroupCollection CrossMaterialGroups 
bool CrossSeamless 
Whether the Cross shape covers the whole length of the base spline

getset 
The CGShape.CustomValues of the CGShape used in the extrusion of this volume
Setting a new SubArray<T> will ArrayPool<T>.Free(ToolBuddy.Pooling.Collections.SubArray<T>) the current SubArray<T> instance

getset 

getset 
The CGShape.CustomValues of the CGShape used in the extrusion of this volume
This getter returns a copy of the actual array. For performance reasons, use the equivalent getter returning a SubArray<T> instance, which allows you to directly access and modify the underlying array

getset 

get 
Gets the number of cross shape's sample points

getset 
The 2D scale of the mesh at each sample point of the volume's path

getset 
Length of a given cross segment. Will be calculated on demand only!

getset 
Positions of the points, in the local space
This getter returns a copy of the actual array. For performance reasons, use the equivalent getter returning a SubArray<T> instance, which allows you to directly access and modify the underlying array

get 

getset 
Normals of the points, in the local space
This getter returns a copy of the actual array. For performance reasons, use the equivalent getter returning a SubArray<T> instance, which allows you to directly access and modify the underlying array

getset 
Notmals of the points, in the local space
Setting a new SubArray<T> will ArrayPool<T>.Free(ToolBuddy.Pooling.Collections.SubArray<T>) the current SubArray<T> instance

getset 
Positions of the points, in the local space
Setting a new SubArray<T> will ArrayPool<T>.Free(ToolBuddy.Pooling.Collections.SubArray<T>) the current SubArray<T> instance