Curvy  8.3.0
CGVolume Class Reference
+ Inheritance diagram for CGVolume:
+ Collaboration diagram for CGVolume:

Detailed Description

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< SamplePointsMaterialGroupMaterialGroups
 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< DuplicateSamplePointDuplicatePoints [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

See also
CurvySplineSegment.TF

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

See also
CurvySplineSegment.TF

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

See also
RelativeDistances, CurvySplineSegment.TF

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

See also
RelativeDistances, CurvySplineSegment.TF

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...
 

Constructor & Destructor Documentation

CGVolume ( )
CGVolume ( int  samplePoints,
CGShape  crossShape 
)
CGVolume ( CGPath  path,
CGShape  crossShape 
)
CGVolume ( CGVolume  source)

Member Function Documentation

override T Clone< T > ( )
virtual

Reimplemented from CGPath.

float CrossDistanceToF ( float  f,
float  distance,
CurvyClamping  crossClamping = CurvyClamping.Clamp 
)
float CrossFToDistance ( float  f,
float  crossF,
CurvyClamping  crossClamping = CurvyClamping.Clamp 
)
override bool Dispose ( bool  disposing)
protectedvirtual

Reimplemented from CGPath.

static CGVolume Get ( CGVolume  data,
CGPath  path,
CGShape  crossShape 
)
static

Returns a CGVolume made from the given CGPath and CGShape

Parameters
dataIf not null, the returned instance will be the one but with its fields updated. If null, a new instance will be created
pathThe path used in the creation of the volume
crossShapeThe shape used in the creation of the volume
Returns
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

Parameters
pathFThe relative distance of the input point on the path
segment0IndexIndex of the path point just before the input point
segment1IndexIndex of the path point just after the input point
fragThe 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

Parameters
segmentIndicesindices 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

Parameters
pathFposition on the path (0..1)
pathFragremainder between the returned segment and the next segment
Returns
a vertex index
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

Parameters
pathFposition on the path (0..1)
crossFposition on the cross (0..1)
pathFragremainder between the segment and the next segment
crossFragremainder between the returned vertex and the next vertex
Returns
a vertex index
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 
)

Member Data Documentation

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

bool CrossSeamless

Whether the Cross shape covers the whole length of the base spline

Property Documentation

SubArray<float> CrossCustomValues
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

float [] CrossF
getset

The CGShape.F 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

float [] CrossMap
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

SubArray<float> CrossRelativeDistances
getset

The CGShape.F 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

int CrossSize
get

Gets the number of cross shape's sample points

SubArray<Vector2> Scales
getset

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

float [] SegmentLength
getset

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

Vector3 [] Vertex
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

int VertexCount
get
Vector3 [] VertexNormal
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

SubArray<Vector3> VertexNormals
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

SubArray<Vector3> Vertices
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


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