#include <c4d_falloffdata.h>
@markprivate Represents a falloff. Allows to sample falloffs.
It is very simple in use: allocate it, call InitFalloff() first then Sample() giving it a point in world space.
Many of the methods are there for use within NodeData/ ObjectData/ToolData plugins and should be called within their likewise counterparts.
For instance Draw should be called from within the corresponding NodeData/ ObjectData/ToolData Draw override, then the falloff will be drawn in the viewport.
C4D_Falloff normally needs a container, this is usually the object's container, from this it gets and sets its own parameters for the description (though they can be set directly using the helper functions).
Public Types | |
| using | IsAllocType = std::true_type | 
Private Member Functions | |
| C4D_Falloff () | |
| ~C4D_Falloff () | |
Alloc/Free | |
| static C4D_Falloff * | Alloc (BaseContainer *parentBc, Int cType=0) | 
| static void | Free (C4D_Falloff *&node) | 
| static void | Free (const C4D_Falloff *&node) | 
Dirty | |
| void | SetDirty () | 
| Int32 | GetDirty (BaseList2D *op, const BaseDocument *doc) | 
Matrix | |
| void | SetMg (const Matrix &mg) | 
| const Matrix & | GetMg () const | 
Mode | |
| Bool | SetMode (Int32 type) | 
| Int32 | GetMode () const | 
Handle | |
| Int32 | GetHandleCount () const | 
| void | GetHandle (Int32 i, HandleInfo &info) const | 
| void | SetHandle (Int32 i, Vector p, const HandleInfo &info) | 
| using IsAllocType = std::true_type | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  static | 
Allocates a falloff. Destroy the allocated falloff with Free(). Use AutoAlloc to automate the allocation and destruction based on scope.
| [in] | parentBc | Container of the parent object where all data is stored | 
| [in] | cType | (Optional) the type. | 
      
  | 
  static | 
      
  | 
  static | 
| BaseContainer* GetContainerInstance | ( | ) | 
Gets the last container the falloff should try to use.
| void SetDirty | ( | ) | 
Sets the falloff dirty.
| Int32 GetDirty | ( | BaseList2D * | op, | 
| const BaseDocument * | doc | ||
| ) | 
Gets the falloff dirty value.
| [in] | doc | The document. | 
| void SetMg | ( | const Matrix & | mg | ) | 
Sets the falloff's matrix.
| [in] | mg | The new matrix. | 
| const Matrix& GetMg | ( | ) | const | 
Gets the falloff's matrix.
Sets the falloff mode.
| [in] | type | The new falloff mode. | 
| Int32 GetMode | ( | ) | const | 
Gets the falloff mode.
| void SetTime | ( | BaseTime | time | ) | 
Sets the current falloff time.
Used for the animated Spline GUI offset, not for any other values currently. 
| [in] | time | The new falloff time. | 
| Bool InitFalloff | ( | BaseDocument * | doc = nullptr,  | 
        
| BaseObject * | op = nullptr  | 
        ||
| ) | 
Initializes the falloff.
| [in] | doc | Optional document used to retrieve the current time for the animation of the Spline GUI offset. | 
| [in] | op | Optional object used to set the matrix if given, and if no container is given for bc, its container will be used instead. | 
| Bool InitFalloff | ( | const BaseDocument * | doc, | 
| const BaseObject * | op, | ||
| FalloffDataData & | data | ||
| ) | const | 
| Bool PreSample | ( | const BaseList2D * | op, | 
| const BaseDocument * | doc, | ||
| const FieldInput & | inputs, | ||
| FieldOutput & | result, | ||
| const FalloffDataData & | data, | ||
| FIELDSAMPLE_FLAG | flags | ||
| ) | const | 
Pre-samples an array of points for much faster usage with fields. Sampling result will be stored internally until the next call to PreSample. Use GetSamples() to read pre-sampling result. Only used with fields. If falloff is in legacy mode, PreSample will return true and do mothing. Use PreSample to allow calls to Sample within parallel for loops.
| [in] | doc | The document. | 
| [in] | op | The object. | 
| [in] | inputs | The point array to sample. | 
| [in] | flags | The sampling flags. | 
| void Sample | ( | const BaseList2D * | op, | 
| const Vector & | p, | ||
| Float * | result, | ||
| const FieldOutput * | fieldSamples, | ||
| const FalloffDataData & | data, | ||
| Bool | usespline = true,  | 
        ||
| Float | weight = 0.0_f,  | 
        ||
| Int | index = -1  | 
        ||
| ) | const | 
Samples the falloff for any point in space. NOTE: Do not call Sample within a parallel for loop when using fields without PreSample called first. When using fields: -If user calls PreSample first, Sample will quickly return the pre-sampled result. This case is thread safe. -If PreSample was not called, Sample will sample the fields. This case is not thread safe. When using legacy falloffs: -Sample supports parallel for loops.
| [in] | p | The point to sample in global space (ignored with pre-sampling). | 
| [out] | result | Assigned the sampled value. | 
| [in] | usespline | Use the GUI spline if it exists (default, ignored with pre-sampling). | 
| [in] | weight | Weight offset. Equivalent of adding this value to the falloff result before clamping (optional, ignored with fields). | 
| [in] | op | the object (ignored with pre-sampling). | 
| [in] | index | zero-based index of the sample (when using pre-sampling). | 
| void MultiSample | ( | const BaseList2D * | op, | 
| const Vector * | p, | ||
| Float * | result, | ||
| Int | count, | ||
| const FalloffDataData & | data, | ||
| Bool | usespline = true,  | 
        ||
| Float | weight = 0.0_f  | 
        ||
| ) | const | 
Samples the falloff for an array of points in space. The result will be returned in the Float array but also stored internally, overwriting the last PreSample call result.
| [in] | p | The array of points to sample. The caller owns the pointed array. | 
| [out] | result | Assigned the sampled values. | 
| [in] | count | The size of array p. | 
| [in] | usespline | Use the GUI spline if it exists (default). | 
| [in] | weight | An optional weight offset. Equivalent of adding this value to the falloff result before clamping. | 
| [in] | op | (Optional) the object. | 
| Bool HasContent | ( | ) | const | 
Checks to see whether the Falloff has any sampling content.
| Bool AddFalloffToDescription | ( | const BaseList2D * | op, | 
| Description * | description, | ||
| DESCFLAGS_DESC | flags, | ||
| Bool | showValue = true,  | 
        ||
| Bool | showColor = false,  | 
        ||
| Bool | showDirection = false,  | 
        ||
| Bool | showRotation = false  | 
        ||
| ) | const | 
Adds the falloff to a description.
| [in] | description | The description to add the falloff GUI to. | 
| [in] | flags | GetDescription flags. | 
| [in] | showValue | (Optional) True to show, false to hide the value channel of the FieldList. | 
| [in] | showColor | (Optional) True to show, false to hide the color channel of the FieldList. | 
| [in] | showDirection | (Optional) True to show, false to hide the direction channel of the FieldList. | 
| [in] | showRotation | (Optional) True to show, false to hide the rotation channel of the FieldList. | 
| Bool Message | ( | BaseList2D * | op, | 
| Int32 | id, | ||
| void * | m_data = nullptr  | 
        ||
| ) | 
Sends messages to the falloff.
| [in] | id | The message type: MSG | 
| [in,out] | m_data | The message data. The sender owns the pointed data. | 
| Int32 GetHandleCount | ( | ) | const | 
Gets the number of handles for the falloff.
| void GetHandle | ( | Int32 | i, | 
| HandleInfo & | info | ||
| ) | const | 
Gets a handle for the falloff.
| [in] | i | The handle index. | 
| [out] | info | Filled with the information for handle i. | 
| void SetHandle | ( | Int32 | i, | 
| Vector | p, | ||
| const HandleInfo & | info | ||
| ) | 
Called to set a handle for the falloff.
| [in] | i | The handle index. | 
| [in] | p | The new position for handle i. | 
| [out] | info | The information for handle i. | 
| Bool Draw | ( | BaseList2D * | op, | 
| BaseDraw * | bd, | ||
| BaseDrawHelp * | bh, | ||
| DRAWPASS | drawpass | ||
| ) | 
Draws the falloff in the viewport.
| [in] | bd | The editor's view. The caller owns the pointed base draw. | 
| [in] | bh | The editor's view help. The caller owns the pointed base draw help. | 
| [in] | drawpass | The draw pass: DRAWPASS | 
| Bool CopyTo | ( | C4D_Falloff * | dest, | 
| BaseList2D * | destPtr | ||
| ) | const | 
Copies the falloff.
| [out] | dest | The destination falloff. | 
Disables falloff parameters when falloff type is infinite.
| [in] | id | The parameter id. | 
| [out] | enabled | The parameter enabled state. | 
| Bool IsFields | ( | ) | const | 
Checks whether the Falloff is using fields or not.
| FIELDLIST_FLAGS GetChannelFlags | ( | ) | const | 
When working with Fields this retrieves the current display channel flags for the FieldList
| void SetChannelFlags | ( | FIELDLIST_FLAGS | flags | ) | 
When working with Fields this sets the channel flags that control how the FieldLIst will display.
| [in] | flags | The flags to set. | 
| maxon::Result<Bool> GetAccessedObjects | ( | const BaseList2D * | op, | 
| METHOD_ID | method, | ||
| AccessedObjectsCallback & | access | ||
| ) | const |