c4d.modules.sculpting.BrushDabData¶
-
class
c4d.modules.sculpting.
BrushDabData
¶ The brush data for an individual dab.
New in version R16.021.
Methods Signatures
Gets the settings data for the tool. |
|
Gets the Sculpt Object that the dab is for. |
|
Gets the point at index affected by the brush. |
|
Gets the polygon at index affected by the brush. |
|
Gets the Polygon Object for the Sculpt Object that is currently being displayed in the viewport. |
|
Gets the original object that the Sculpt Tag is applied to. |
|
Gets the number of points that are touched by the dab. |
|
Gets the number of polygons that are touched by the dab. |
|
Gets the neighbor information for the Sculpt Object if it is currently at level 0. |
|
Retrieves the currently selected Layer for a subdivided |
|
Retrieves the live point at index that is modified on the surface during a brush stroke.
|
|
Retrieves a copy of the point at index in its state before the brush stroke started. |
|
Gets the normal at the current hitpoint for the dab.
|
|
If the brush supports the Draw Direction, i.e. the user has set
SculptBrushParams.EnableDrawDirection() to True, then this returns the direction selected by the user. |
|
Gets the brush strength for the dab. |
|
Gets the brush radius for the dab. The size of the radius is in the Sculpt Object local space. |
|
If the brush mode is SCULPTBRUSHMODE_GRAB then this method can be used to get the location of the mouse pointer in world space in the scene. |
|
Gets the point on the surface of the SculptObject where the dab is going to be placed. This is the center of the dab. |
|
Gets the hit point for the previous dab during the stroke. |
|
Gets the index of the polygon on the surface of the SculptObject where the dab is going to be placed.
|
|
Gets the location of the mouse in local space above the model.
|
|
Checks if this dab is for a mirrored brush stroke. |
|
Gets the override flags. This could be any combination of the OVERRIDE flags. |
|
Gets the |
|
Gets the average point and normal.
|
|
Mirror the point (or Normal) from the objects space to the correct location for the current dab.
|
|
Applies an effect of the smooth brush to the current dab. |
|
Gets the vertex normal at index for the Sculpt Object. |
|
Gets the state of a vertex normal before the user started a brush stroke. |
|
Gets the face normal at index for the SculptObject. |
|
Returns a value which represents the scale of the Sculpt Object. |
|
Returns the brush falloff for the point specified by the index value.
|
|
Returns the falloff value, defined by the falloff curve, based on the distance from pos to the hitpoint for the dab. |
|
Offsets the point on the layer by the given offset amount. |
|
Checks if this is a preview dab. Currently only DragDab and DragRect draw modes support preview brushes. |
|
If
IsPreviewDab() returns True then you should apply your offset using this method. |
|
Dirty all the points for this dab according to the flags. |
|
When using symmetry another mirrored brush may change the point.
|
|
Retrieves the grey value, color and coordinates of the stencil for a point in the Sculpt Object local space. |
|
Retrieves the grey value, color and coordinates of the stamp for a point in the Sculpt Object local space. |
|
Retrieves the stencil bitmap used for this dab. |
|
Retreves the stamp bitmap used for this dab. |
|
Gets the ID of the stroke instance that this dab is being drawn for. |
|
Checks if the object being touched is a |
|
Checks if the current draw mode is fill.
|
|
Returns True if the dab is being applied backfacing polygons. |
Methods Documentation
-
BrushDabData.
GetData
(self)¶ Gets the settings data for the tool.
- Return type
- Returns
The data.
-
BrushDabData.
GetObject
(self)¶ Gets the Sculpt Object that the dab is for.
- Return type
- Returns
The sculpt object.
-
BrushDabData.
GetPointData
(self, index)¶ Gets the point at index affected by the brush.
- Parameters
index (int) – The index of the point.
- Raises
IndexError – If the point index is out of range : 0<=index<
GetPointCount()
.- Return type
dict{pointIndex: int, distance: float}
- Returns
The point data index and distance.
-
BrushDabData.
GetPolyData
(self, index)¶ Gets the polygon at index affected by the brush.
- Parameters
index (int) – The index of the polygon.
- Raises
IndexError – If the point index is out of range : 0<=index<
GetPolyCount()
.- Return type
dict{polyIndex: int, distance: float}
- Returns
The polygon data index.
-
BrushDabData.
GetPolygonObject
(self)¶ Gets the Polygon Object for the Sculpt Object that is currently being displayed in the viewport.
- Return type
- Returns
The Polygon Object.
-
BrushDabData.
GetBaseObject
(self)¶ Gets the original object that the Sculpt Tag is applied to.
Note
In the case where this there is no Sculpt Tag on then this will return the same as the call to
GetPolygonObject()
.- Return type
- Returns
The original object.
-
BrushDabData.
GetPointCount
(self)¶ Gets the number of points that are touched by the dab.
- Return type
int
- Returns
The number of points.
-
BrushDabData.
GetPolyCount
(self)¶ Gets the number of polygons that are touched by the dab.
- Return type
int
- Returns
The number of polygons.
-
BrushDabData.
GetNeighbor
(self)¶ Gets the neighbor information for the Sculpt Object if it is currently at level 0.
Note
If the user is sculpting a regular unsubdivided Polygon Object then this will also return a neighbor information.
- Return type
Optional[c4d.utils.Neighbor]
- Returns
The Neighbor information if Sculpt Object is at level 0 (or if the user is sculpting on a regular
PolygonObject
), otherwise None.
-
BrushDabData.
GetLayer
(self)¶ Retrieves the currently selected Layer for a subdivided
SculptObject
.Note
If the user is sculpting a regular
PolygonObject
) then this will return None.- Return type
Optional[c4d.modules.sculpting.SculptLayer]
- Returns
The currently selected layer in the LayerManager if it is a subdivided
SculptObject
, otherwise None.
-
BrushDabData.
GetPoint
(self, index)¶ - Retrieves the live point at index that is modified on the surface during a brush stroke.This point may already have been modified by previous brush dabs during the current brush stroke.
- Parameters
index (int) – The index of the point.
- Raises
IndexError – If the point index is out of range : 0<=index<
GetPointCount()
.- Return type
- Returns
The point at index on the
PolygonObject
that is currently displayed in the viewport.
-
BrushDabData.
GetOriginalPoint
(self, index)¶ Retrieves a copy of the point at index in its state before the brush stroke started.
Note
You can use this point to compare where the surface was before the user started sculpting.As an example this data is used by the grab tool to correctly offset the points based on their original location on the surface at the first mouse click.- Parameters
index (int) – The index of the point.
- Raises
IndexError – If the point index is out of range : 0<=index<
GetPointCount()
.- Return type
- Returns
The point at index of the PolygonObject at the state it was in when the user first pressed the left mouse button down.
-
BrushDabData.
GetNormal
(self)¶ - Gets the normal at the current hitpoint for the dab.This is the average vertex normal of all the points that are affected by the dab.
- Return type
- Returns
The normal at the current hitpoint.
-
BrushDabData.
GetDrawDirectionNormal
(self)¶ - If the brush supports the Draw Direction, i.e. the user has set
SculptBrushParams.EnableDrawDirection()
to True, then this returns the direction selected by the user.Otherwise it just returns the same vector asGetNormal()
.- Return type
- Returns
The Draw Direction normal.
-
BrushDabData.
GetBrushStrength
(self)¶ Gets the brush strength for the dab.
Warning
This strength is not the same as the strength in theBaseContainer
data.This also takes into account many other variables including tablet pressure to create the value.- Return type
float
- Returns
The strength of the brush.
-
BrushDabData.
GetBrushRadius
(self)¶ Gets the brush radius for the dab. The size of the radius is in the Sculpt Object local space.
Warning
This is not the same as the brush size in theBaseContainer
data.This also takes into account other factors such as the distance from the camera and scale of the object and tablet values to determine the correct brush radius.- Return type
float
- Returns
The radius of the brush.
-
BrushDabData.
GetMousePos3D
(self)¶ If the brush mode is SCULPTBRUSHMODE_GRAB then this method can be used to get the location of the mouse pointer in world space in the scene.
- Return type
- Returns
The position of the mouse in world space if the brush mode is SCULPTBRUSHMODE_GRAB, otherwise it returns
c4d.Vector(0,0,0)
.
-
BrushDabData.
GetHitPoint
(self)¶ Gets the point on the surface of the SculptObject where the dab is going to be placed. This is the center of the dab.
Note
If the mode is set to SCULPTBRUSHMODE_GRAB then this always returns the initial hit point that occurred when the user first pressed the left mouse button down.
- Return type
- Returns
The hitpoint on the surface.
-
BrushDabData.
GetLastHitPoint
(self)¶ Gets the hit point for the previous dab during the stroke.
- Return type
- Returns
The last hitpoint on the surface.
-
BrushDabData.
GetHitPolygon
(self)¶ - Gets the index of the polygon on the surface of the SculptObject where the dab is going to be placed.This is the center of the dab.
New in version R17.032.
- Return type
int
- Returns
The index of the polygon on hit the surface.
-
BrushDabData.
GetEyePoint
(self)¶ - Gets the location of the mouse in local space above the model.This point is created by interpolating between previous and next real mouse hitpoint on the surface of the Sculpt Object.It is then projected down onto the surface of the model to get the real hitpoint for this interpolated value.
- Return type
- Returns
The virtual mouse location in local space above the surface of the
SculptObject
.
-
BrushDabData.
IsMirroredDab
(self)¶ Checks if this dab is for a mirrored brush stroke.
- Return type
bool
- Returns
True if it’s a mirrored dab or False if it’s the main brush stroke.
-
BrushDabData.
GetBrushOverride
(self)¶ Gets the override flags. This could be any combination of the OVERRIDE flags.
- Return type
int
- Returns
The overrides if there are any or 0 if there are none.
-
BrushDabData.
GetBaseDraw
(self)¶ Gets the
BaseDraw
that the user is currently drawing in.- Return type
int
- Returns
The
BaseDraw
.
-
BrushDabData.
GetAveragePointAndNormal
(self)¶ - Gets the average point and normal.Depending on what the Fixed Plane (MDATA_SCULPTBRUSH_SETTINGS_FIXEDPLANE) setting is for the brush this will return one of 3 things:
- MDATA_SCULPTBRUSH_SETTINGS_FIXEDPLANE_OFF
averagePoint = The average location of all the points that are touched by the dab.
normal = The normal at the hitpoint on the surface of the Sculpt Object.
- MDATA_SCULPTBRUSH_SETTINGS_FIXEDPLANE_MOUSEDOWN
averagePoint = The average location of all the points under the dab area when the mouse was mouse button was first pressed.
normal = The average normal of all the points under the dab area when the mouse was mouse button was first pressed.
- MDATA_SCULPTBRUSH_SETTINGS_FIXEDPLANE_WORKPLANE
averagePoint = The point on the workplane that is above the hitpoint on the surface of the Sculpt Object.
normal = The normal of the workplane.
-
BrushDabData.
GetMirrorPoint
(self, point, isNormal)¶ - Mirror the point (or Normal) from the objects space to the correct location for the current dab.This should only be used if you need to get the symmetrically mirrored point for a point that you specifically need.In most cases this method would never be used because the brush system automatically handles symmetrical points for you.
- Parameters
point (c4d.Vector) – The input point, or normal to mirror.
isNormal (bool) – Set to True if point is a normal, so that it will then only be rotated and will not be offset.
- Return type
- Returns
The mirrored point.
-
BrushDabData.
ApplySmooth
(self)¶ Applies an effect of the smooth brush to the current dab.
Note
Call this after you have modified the dab to smooth it out if needed.
-
BrushDabData.
GetVertexNormal
(self, index)¶ Gets the vertex normal at index for the Sculpt Object.
- Parameters
index (int) – The index of the vertex.
- Raises
IndexError – If the vertex index is out of range : 0<=index<
GetPointCount()
.- Return type
- Returns
The vertex normal.
-
BrushDabData.
GetOriginalVertexNormal
(self, index)¶ Gets the state of a vertex normal before the user started a brush stroke.
New in version R17.048.
- Parameters
index (int) – The index of the vertex.
- Return type
- Returns
The original vertex normal.
-
BrushDabData.
GetFaceNormal
(self, index)¶ Gets the face normal at index for the SculptObject.
New in version R17.032.
- Parameters
index (int) – The index of the face.
- Return type
- Returns
The face normal.
-
BrushDabData.
GetAutoScaleValue
(self, noRadius)¶ Returns a value which represents the scale of the Sculpt Object.
Note
This can be used to convert a distance in object space with the value returned fromGetBrushRadius()
to help adjustthe algorithm for your brush since the value returned fromGetBrushRadius()
is also already adjusted using the same value.- Parameters
noRadius (bool) – True means it will not take into account the radius of the object in its calculation and will only use the scale.
- Return type
float
- Returns
The scale value with which to adjust your local space vector or distance value.
-
BrushDabData.
GetBrushFalloff
(self, index, customDistance=- 1.0)¶ - Returns the brush falloff for the point specified by the index value.The falloff is already adjusted by using the values from the stamp and stencil so it can be used directly to adjust the strength of an offset that you wish to add to the layer.Internally this method will use the distance that this point is from the hitpoint in its calculation. Pass in a value to customDistance to use a different distance.
- Parameters
index (int) – The point data index returned from
GetPointData()
.customDistance (float) – The custom distance to use instead of the points actual distance from the hitpoint.
- Return type
float
- Returns
The final falloff value that can be used to adjust the offset value.
-
BrushDabData.
GetBrushFalloffFromPos
(self, pos)¶ Returns the falloff value, defined by the falloff curve, based on the distance from pos to the hitpoint for the dab.
- Parameters
pos (c4d.Vector) – A point in 3D space to get the falloff for.
- Return type
float
- Returns
The falloff value.
-
BrushDabData.
OffsetPoint
(self, index, offset, respectStrength=0)¶ Offsets the point on the layer by the given offset amount.
Note
This method should be used if
IsPreviewDab()
returns False, otherwise useOffsetPreviewPoint()
instead.- Parameters
index (int) – The index of the point.
offset (c4d.Vector) – The vector to offset the point by.
respectStrength (int) –
Let you use or ignore settings such as the layers mask or strength when offsetting the point. See SCULPTOFFSETFLAGS.By setting the SCULPTOFFSETFLAGS_IGNOREMASK flag it will ignore whatever the mask checkbox state is for the layer.Otherwise it uses this state to determine if it should use the mask.
- Raises
IndexError – If the point index is out of range : 0<=index<
GetPointCount()
.
-
BrushDabData.
IsPreviewDab
(self)¶ Checks if this is a preview dab. Currently only DragDab and DragRect draw modes support preview brushes.
- Return type
bool
- Returns
True if it is a preview dab, otherwise False.
-
BrushDabData.
OffsetPreviewPoint
(self, index, offset)¶ - If
IsPreviewDab()
returns True then you should apply your offset using this method.If it returns False then you should useOffsetPreviewPoint()
instead.This adds the offset to a temporary preview layer that is created when using the DragDab and DragRect draw modes.- Parameters
index (int) – The index of the point.
offset (c4d.Vector) – The vector to offset the point by.
- Raises
IndexError – If the point index is out of range : 0<=index<
GetPointCount()
.
-
BrushDabData.
DirtyAllPoints
(self, flags)¶ Dirty all the points for this dab according to the flags.
- Parameters
flags (int) – See SCULPTBRUSHDATATYPE.
-
BrushDabData.
IsPointModified
(self, index)¶ - When using symmetry another mirrored brush may change the point.You can use this to check if another brush stroke has changed a point and if so then you can do something different for this current stroke.
- Parameters
index (int) – The index of the point.
- Raises
IndexError – If the point index is out of range : 0<=index<
GetPointCount()
.- Return type
bool
- Returns
True if the point was modified, otherwise False.
-
BrushDabData.
GetStencilColor
(self, point, mode=0)¶ Retrieves the grey value, color and coordinates of the stencil for a point in the Sculpt Object local space.
- Parameters
point (int) – The index of the point.
mode (Optional[int]) – The mode used to sample the stencil texture. See SAMPLEMODE.
- Raises
IndexError – If the point index is out of range : 0<=index<
GetPointCount()
.- Return type
- Returns
The grey value, color and coords of the stencil.
-
BrushDabData.
GetStampColor
(self, point, distance, mode)¶ Retrieves the grey value, color and coordinates of the stamp for a point in the Sculpt Object local space.
- Parameters
point (int) – The index of the point.
distance (float) –
Can be either the point data distance value (returned by :GetPointData()
), the length of the vector (hitpoint - point) or a custom distance value.This is used to get the correct falloff for the point.mode (int) – The mode used to sample the stamp texture. See SAMPLEMODE.
- Raises
IndexError – If the point index is out of range : 0<=index<
GetPointCount()
.- Return type
- Returns
The grey value (adjusted by the stamps Gray Value), color and coordinates of the stamp.
-
BrushDabData.
GetStencil
(self)¶ Retrieves the stencil bitmap used for this dab.
- Return type
- Returns
The bitmap for the stencil.
-
BrushDabData.
GetStamp
(self)¶ Retreves the stamp bitmap used for this dab.
- Return type
- Returns
The bitmap for the stamp.
-
BrushDabData.
GetStrokeInstanceID
(self)¶ Gets the ID of the stroke instance that this dab is being drawn for.
- Return type
int
- Returns
The stroke instance ID.
-
BrushDabData.
IsSculptObject
(self)¶ Checks if the object being touched is a
SculptObject
(i.e. has aSculptTag
).- Return type
bool
- Returns
True if the object being touched is a
SculptObject
, otherwise False.
-
BrushDabData.
IsFillTool
(self)¶ - Checks if the current draw mode is fill.Basically checks if the dab MDATA_SCULPTBRUSH_SETTINGS_DRAWMODE setting is:MDATA_SCULPTBRUSH_SETTINGS_DRAWMODE_LASSO_FILL orMDATA_SCULPTBRUSH_SETTINGS_DRAWMODE_POLY_FILL orMDATA_SCULPTBRUSH_SETTINGS_DRAWMODE_RECTANGLE_FILL
- Return type
bool
- Returns
True if the current draw mode is fill, otherwise False.
-
BrushDabData.
IsBackface
(self)¶ Returns True if the dab is being applied backfacing polygons.
New in version R17.032.
Note
Backface polygons will only be sculpted on if the brush has its BackFaceSculpting option enabled and the Backface option is also checked by the user.
- Return type
bool
- Returns
True if the dab is on backfacing polygons, otherwise False.