3DCoat  3D-COAT 4.9.xx
3DCoat is the one application that has all the tools you need to take your 3D idea from a block of digital clay all the way to a production ready, fully textured organic or hard surface model.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
RtKnife Class Reference

The class RtKnife Need for Cuting of the ClusteredMesh By PolyLine. More...

#include <RetopoTools.h>

Public Member Functions

virtual bool PresentInVoxelTools ()
 Returns true if the tool is present in voxel toolset. More...
 
virtual bool PresentInSurfaceTools ()
 Returns true if the tool is present in voxel surface toolset. More...
 
virtual const char * GetID ()
 Define Textual ID in tools list. More...
 
virtual int NeedTrajectory ()
 
virtual bool CanDrawInFreeSpace ()
 
virtual bool AllowRectSelection ()
 Returns false if don't need rect selection capability. More...
 
virtual void OnActivate ()
 Called when user activates tool. More...
 
virtual void OnClear ()
 Called when user selects "New scene". More...
 
virtual bool OnKey (char KeyCode)
 KeyCode is Windows virtual keyboard codes like VK_xxxx. More...
 
void SwitchTo ()
 Please use this function to activate the tool. More...
 
virtual bool CreateToolset ()
 Create toolset on the top line. More...
 
virtual bool CreateInterface (BaseWidget *Where)
 Creates parameters plate of this tool. More...
 
virtual void Process ()
 Called once per frame. More...
 
virtual bool OnWheel (int step)
 step in 1 or -1 in dependence on direction More...
 
virtual void OnDeActivate ()
 Called when user chooses other tool but this. More...
 
virtual bool IsToolsAction ()
 For tool actions! Return false if it is the tool, return true if it is just button without the need of the tool activation. In this case only OnActivate() will be called when user presses the button. More...
 
virtual void ClearMyToolPreset ()
 call it in Clear() if New should reset tool to the default state More...
 
virtual bool DisableRadiusVariation ()
 Returns true if you don't want radius to be dependent on pen pressure. More...
 
virtual bool DrawOnPlane ()
 Returns true if you want to draw starting from initial pick point in free space. More...
 
virtual bool OnRectSelectionEnd (Rct R)
 Called when user ends rectagular/curve selection, returns true if don't need further handling. More...
 
virtual bool AllowOnlyRectSelection ()
 Returns true if need only rect selection capability. More...
 
virtual bool AllowDrag ()
 Acts like Move tool. More...
 
virtual void OnDraw ()
 Called when you are trying to draw by some brush. More...
 
virtual bool NeedFirstPoint ()
 Returns true if need at least one point per trajectoty chunk. More...
 
virtual bool NeedGlobalIndexing ()
 Returns true if you need to use VolumeCell::LocalMeshPtr. More...
 
virtual bool PickOnlyFirstPoint ()
 !!!false More...
 
virtual int AllowSplineStroke ()
 0 - disable, 1 - allow, 2 - in 2D mode More...
 
virtual int AllowAutoPick ()
 1 - Auto pick, 2 - pick by click, 0 - don't pick More...
 
virtual float OverridePositionalSamplingRadius ()
 return 0 if you don't need sampling radius More...
 
virtual int RequiresExtraTopLine ()
 Returns nonzero if top line with params required similar to Primitives set. More...
 
virtual bool AllowShiftSmooth ()
 You may disable smoothing with shift. More...
 
virtual void OnPresetActivation (OnePreset *PS)
 Called when preset activated regardless if tool active or not. More...
 
virtual void OnCreatePreset (OnePreset *PS)
 Called when preset created manually by user. More...
 
virtual void OnProcessNode (VoxTreeBranch *tb, cList< VORenderQueue > &RQ)
 called to add transformed proxy objects into scene More...
 
virtual void TransformInRetopo (const Matrix4D &m)
 called when geometry transformed in retopo room More...
 
virtual bool OnSelectModelInPalette (const char *ModelName, const char *RootPath, bool InCurrentTool)
 Called when user chosen model in models palette, return true if model used and action captured. More...
 
virtual int GetNumSaveChunks ()
 Returns number of save chunks for 3B file, the chunk index will be passed to each load/save related function. See the BIG example of data serialization in the examplary class ExampleOfLoadSaveDataTo3BFileExtension (in VoxelExtension.cpp) More...
 
virtual DWORD GetSaveMagic (int ChunkIdx)
 Returns unique ID of the save chunk, idx is the chunk index. More...
 
virtual void LoadData (int ChunkIdx, BinStream &BS)
 Load data from 3D-file. More...
 
virtual void SaveData (int ChunkIdx, BinStream &BS)
 Store data to the 3B file using Bin stream. More...
 
virtual void BeforeSave (const char *filename)
 BeforeSave called each time before saving scene. More...
 
virtual bool onApply ()
 Perform action by ENTER key and return true if tool does not allow default ENTER action. More...
 
virtual float GetBottomOffset ()
 For supports tool. More...
 
virtual bool CheckDirectCasting () const override
 BaseClass corresponds to some other data type. For example _int correctonds to int, etc... In this case you can't cast pointer to data to BaseClass*. But in some cases BaseClass may be directlt castable, for example if it has registered members, or it is ClassArray. This function is to define if class is directly castable. More...
 
virtual bool IgnoreFieldInTopPanel (const char *FieldName)
 Possible fields: Buildup, NrmSampling, NormalsSampling,. More...
 
virtual void OnCreateNewCurve (OneCurveObject *cu)
 called in curve editor to correct the curve alias and placement More...
 
virtual void OnSelectItem (const char *Category)
 notify when pen/strip/material/Shader etc selected. Set breakpoint and select to get valid category. Currently available: Pen, MASK, Shaders, STRIPS, Materials More...
 
BaseClassGetRoot ()
 BaseClass is like a tree, and you always can get the root of the tree using this function. More...
 
virtual DWORD GetClassMask ()
 Masking elements of class. Each member has mask. Element is serializable/visible only if (it's_mask & hosting_class_mask) != 0. More...
 
virtual void reset_class (void *DataPtr=nullptr)
 Clearing all registered content of the class. If DataPtr is nullptr, this class will be cleared. More...
 
virtual void CountObjects (int &required_index, int *counter, HashSummator *hash, BaseClassElement *result, const std::function< bool(BaseClassElement *)> *ForEachElem=nullptr, bool OnlyPointersMode=false)
 This is the main function used for the access to class members. Each class that has SERIALIZE section creates this function automatically.
It may count members, return hash, give element-wise access to any member. Instead of keeping registered fields that routine gives fast dynamic access to any member.
If you making own container, you should create this function as well, othervice your class will not be serialized correctly even if you will make GetElement(...) function. More...
 
void ForEach (const std::function< bool(BaseClassElement *el)> &fn, bool OnlyPointsers=false)
 Calls function for each class member. This function used in _EACH ... _EACH_END cycle. More...
 
virtual bool CopyBaseClass (BaseClass *Dest, bool Add=false)
 Copy base class to other class uning names correspondence. More...
 
virtual void Save (TagsList &xml, void *ClassPtr, void *Extra=NULL)
 Save class to the XML structure. More...
 
virtual bool Load (TagsList &xml, void *ClassPtr, void *Extra=NULL)
 Load the class from the XML structure. More...
 
virtual bool FullCopy (const void *SrcData, const void *SrcDataExtra, BaseClass *Dest, void *DestData, void *DstDataExtra, CECopyContext *C)
 Fast copy from one BaseClass to another. Names and types correspondence used to copy. More...
 
virtual void SaveBin (void *Data, void *Extra, BinStream *Out, Enumerator *ExDictionary, Enumerator *SkipList)
 Save in binaly form. Use only for temporary storage in memory!!! More...
 
virtual void LoadBin (void *Data, void *Extra, BinStream *In, Enumerator *ExDictionary)
 Load the class from the memory. Use only for temporary storage in memory!!! More...
 
virtual void UpdateHash (HashSummator &S, void *data=nullptr, void *extra=nullptr)
 returns hash value dependent on data fields of this class More...
 
virtual int GetAmountOfElementsInUI ()
 return amount of elements represented in UI More...
 
virtual int GetAmountOfElementsInXML ()
 return amount of elements taht will be stored in XML More...
 
virtual const char * GetClassName () const
 return class name there if need. Usually you don't need, if you are using AUTONEW or SERIALIZE More...
 
virtual void RegisterMembers ()
 Reload this function to register members. Usually you don't need to do this if you are using any of SERIALIZE methods of registration. More...
 
virtual int GetAmountOfElements ()
 return complete amount of elements. Even invisible, masked and non-serialized elements will be counted More...
 
virtual int GetClassSize () const
 return actual size of this class More...
 
virtual BaseClassnew_element () const
 construct pointer to class of the same type like this. Elements will not be copied into the new place More...
 
virtual bool GetElement (BaseClassElement &res, int idx, const void *Ptr=nullptr, const void *Extra=nullptr)
 
bool GetElementByName (const char *Name, void *Ptr, void *Extra, BaseClassElement &res, bool UI=false, bool Serialize=true)
 The function returns complete information about the member by it's name. More...
 
void DeleteDefaultSubFields (TagsList &xml, void *ClassPtr, void *Extra=NULL)
 Short form saving. Fields that are unchanged in comparison to default will be skipped in XML. More...
 
virtual bool ShouldSaveInShortForm ()
 Return true if class should be saved in short form mandatory. More...
 
virtual int ExpandWith (const char *ElmName, void *base)
 Expand array with class ElmName. More...
 
virtual bool DelElement (int Index)
 removes element if the operation supported More...
 
template<class Type = BaseClass>
bool valid () const
 call it to check if this BaseClass pointer is valid More...
 
BaseClassauto_cast (void *ptr) const
 if class is directly castable the function returns ptr cased to BaseClass, othervice this pointrer returned. If NULL returned - something is wrong. More...
 
virtual bool ReadFromFile (const char *Name)
 Save the object to file or binary stream. Example. More...
 
virtual void FromStr (const comms::cStr &bs)
 
virtual bool CheckIfFunction () const
 Special function for integrating in editor. More...
 
virtual int condition_call (void *ptr)
 return -1 to do nothing, 0 if you want to hide everything after this registered member, 1 if you want to show More...
 
virtual void SetParent (BaseClass *Parent)
 set parent recursively More...
 
virtual void SimplySetParent (BaseClass *Parent)
 set parent directly to this, not affecting members More...
 
virtual bool CheckCompartabilityWith (const char *TypeName, int TypeSize)
 Checking for errors of registration. More...
 
virtual bool ProcessInEditor (BaseClass *Parent)
 Editor will call next function always when it is visible in tree. Return true if overriden. More...
 
virtual bool HandleKey (int code)
 Editor will call next function when key pressed. More...
 
virtual bool OnChangeMember (BaseClass *MembClass, void *MembPtr, void *MembExtra, const char *MembName)
 Editor will call it every time when member changes and editor is able to recognise it. More...
 
virtual void BeforeChangeMember (BaseClass *MembClass, void *MembPtr, void *MembExtra, const char *MembName)
 Editor will call it every time before the changes. More...
 
virtual BaseWidget * OnCreateControlFromScratch (const ClassEditorContext &Context, Rct &Rect)
 Create completely own control for ClassEditor. More...
 
virtual void OnModifyControl (const char *FieldName, BaseWidget *W, ClassEditorContext &Context)
 Call for every member of registered class registered class. More...
 
virtual bool CanBeDragged (const char *MemberID, int &dx, int &dy)
 Use it for build a Drag & Drop element. More...
 
virtual bool CanAcceptDrag (const char *MemberID)
 
virtual bool OnStartDrag (const char *MemberID)
 
virtual bool OnEndDrag (const char *MemberID)
 
virtual bool OnAcceptDrag (BaseClass *DraggedItemParent, const char *DraggedMemberID, const char *AcceptorMemberID, iRct MyRect)
 
void SetParents ()
 set parents to this for all child members More...
 
void SetParentsSafe ()
 set parents to this for all child members, each child will be tested for validity More...
 

Static Public Member Functions

static ui_menu_simple * Register (VoxelExtension *ex)
 Call this function to register own extension. More...
 

Public Attributes

int ID
 For internal use by application. More...
 
cStr BaseParentTool
 Used if tool duplicated. This is very base of the tool, it does not changes when tool duplicated. This is like "grand-grand...father". More...
 
cStr PreviousParentTool
 This is ID of parent, like "father" tool. More...
 

Static Public Attributes

static bool GeneralUsage =false
 true if VoxelExtension used outside of voxel room. More...
 
static const char * CurrentSaveFile
 If user triggers saving class to file, last filename stored there. More...
 

Protected Attributes

BaseClassParentBC
 pointer to the parent class in the tree More...
 
DWORD _ClassMask
 Result of GetClassMask() written there. GetClassMask() is not const, so can't use it in const functions. The field introduced to use masking in const functions. More...
 

Static Protected Attributes

static std::mutex * pmutex
 mutex for register_this / remove_this More...
 
static uni_hash< _empty,
cPtrDiff,(1<< 18), 2048 > * 
presence
 each BaseClass registered in this list More...
 

Detailed Description

The class RtKnife Need for Cuting of the ClusteredMesh By PolyLine.

+ Inheritance diagram for RtKnife:

Member Function Documentation

virtual int VoxelExtension::AllowAutoPick ( )
inlinevirtualinherited

1 - Auto pick, 2 - pick by click, 0 - don't pick

Reimplemented in NoiseMaster.

virtual bool VoxelExtension::AllowDrag ( )
inlinevirtualinherited

Acts like Move tool.

virtual bool VoxelExtension::AllowOnlyRectSelection ( )
inlinevirtualinherited

Returns true if need only rect selection capability.

virtual bool RtKnife::AllowRectSelection ( )
inlinevirtual

Returns false if don't need rect selection capability.

Reimplemented from VoxelExtension.

virtual bool VoxelExtension::AllowShiftSmooth ( )
inlinevirtualinherited

You may disable smoothing with shift.

virtual int VoxelExtension::AllowSplineStroke ( )
inlinevirtualinherited

0 - disable, 1 - allow, 2 - in 2D mode

BaseClass* BaseClass::auto_cast ( void *  ptr) const
inherited

if class is directly castable the function returns ptr cased to BaseClass, othervice this pointrer returned. If NULL returned - something is wrong.

virtual void BaseClass::BeforeChangeMember ( BaseClass MembClass,
void *  MembPtr,
void *  MembExtra,
const char *  MembName 
)
inlinevirtualinherited

Editor will call it every time before the changes.

See Also
OnChangeMember()

Reimplemented in CurvePrimitive.

virtual void VoxelExtension::BeforeSave ( const char *  filename)
inlinevirtualinherited

BeforeSave called each time before saving scene.

virtual bool BaseClass::CanAcceptDrag ( const char *  MemberID)
inlinevirtualinherited
virtual bool BaseClass::CanBeDragged ( const char *  MemberID,
int &  dx,
int &  dy 
)
inlinevirtualinherited

Use it for build a Drag & Drop element.

See Also
CanAcceptDrag(), OnStartDrag(), OnEndDrag(), OnAcceptDrag()

Reimplemented in ItemsTree.

Referenced by CreateControlWithBaseClass().

virtual bool RtKnife::CanDrawInFreeSpace ( )
inlinevirtual
Warning
Don't allow to navigate with LMB, do own action instead.

Reimplemented from VoxelExtension.

virtual bool BaseClass::CheckCompartabilityWith ( const char *  TypeName,
int  TypeSize 
)
inlinevirtualinherited

Checking for errors of registration.

virtual bool VoxelExtension::CheckDirectCasting ( ) const
inlineoverridevirtualinherited

BaseClass corresponds to some other data type. For example _int correctonds to int, etc... In this case you can't cast pointer to data to BaseClass*. But in some cases BaseClass may be directlt castable, for example if it has registered members, or it is ClassArray. This function is to define if class is directly castable.

Returns
Return true if void* ClassPtr may be directly casted to BaseClass*

Reimplemented from BaseClass.

virtual bool BaseClass::CheckIfFunction ( ) const
inlinevirtualinherited

Special function for integrating in editor.

Referenced by CreateControlWithBaseClass().

void VoxelExtension::ClearMyToolPreset ( )
virtualinherited

call it in Clear() if New should reset tool to the default state

References VoxelExtension::GetID().

virtual int BaseClass::condition_call ( void *  ptr)
inlinevirtualinherited

return -1 to do nothing, 0 if you want to hide everything after this registered member, 1 if you want to show

virtual bool BaseClass::CopyBaseClass ( BaseClass Dest,
bool  Add = false 
)
virtualinherited
virtual void BaseClass::CountObjects ( int &  required_index,
int *  counter,
HashSummator hash,
BaseClassElement result,
const std::function< bool(BaseClassElement *)> *  ForEachElem = nullptr,
bool  OnlyPointersMode = false 
)
inlinevirtualinherited

This is the main function used for the access to class members. Each class that has SERIALIZE section creates this function automatically.
It may count members, return hash, give element-wise access to any member. Instead of keeping registered fields that routine gives fast dynamic access to any member.
If you making own container, you should create this function as well, othervice your class will not be serialized correctly even if you will make GetElement(...) function.

Parameters
required_indexIndex of required element if result != nullptr
counterif nonzero, the elements count returned there.
hashif nonzero, returns hash value for this class.
resultif nonzero, gives access to the member with index required_index.
ForEachElemif nonzero, the function will be called for each class element.
OnlyPointersModeIf true, the field name will not be filled for speed purposes.

Reimplemented in ClassRef< X >, ClassRef< BaseClass >, ClassPtr< X >, ClassPtr< BaseClass >, ClassPtr< VoxMethadata >, ClassPtr< BasicDistortion >, ClassPtr< OnePenStyle >, ClassPtr< CurvePrimitive >, ClassPtr< ModelPreview >, ClassPtr< BasePrim >, ClassArray< X >, ClassArray< TextItem >, ClassArray< BaseKnot >, ClassArray< IconicText >, ClassArray< BaseClass >, ClassArray< mitem >, ClassArray< PopupWindow >, ClassArray< OneQAItem >, ClassArray< LayerMaterial >, ClassArray< SplinePoint3D >, ClassArray< BaseNode >, ClassArray< ModelItem >, ClassArray< bcVec3 >, ClassArray< FacesCluster >, ClassArray< OneToolPreset >, ClassArray< OneVolumeTransform >, ClassArray< ItemsTree >, ClassArray< VolumeObject >, ClassArray< BasicDistortion >, ClassArray< Pt3D2 >, ClassArray< CurvElement2 >, ClassArray< ABOcTreeLevel >, ClassArray< FolderState >, ClassArray< my_test1 >, ClassArray< BaseWidget >, ClassArray< ExShaderParam >, ClassArray< GuideSection >, ClassArray< ShaderPreviewStrct >, ClassArray< BaseDrawingPrim >, ClassArray< OneFold >, ClassArray< RTUVSet >, ClassArray< ClassRef< BaseClass > >, ClassArray< StringsList >, ClassArray< MeasureElement >, ClassArray< OneRandomPen >, ClassArray< OnePreset >, ClassArray< ScrollParam >, ClassArray< CurveReference >, ClassArray< OneLayerInfo >, ClassArray< OneSubObject >, ClassArray< OneMaterial >, ClassArray< ImpUVSet2 >, ClassArray< RecoSample >, ClassArray< NaviEvent >, ClassArray< ExampleOfLoadSaveDataTo3BFileExtension::MyClassTest >, ClassArray< FolderRoot >, ClassArray< WindowPos >, ClassArray< RetopoGroup >, ClassArray< BaseEffectFlow >, ClassArray< FileEnabler >, ClassArray< One2DCurve >, ClassArray< VarStorage >, ClassArray< DbgLItem >, ClassArray< wCurvePoint >, ClassArray< OneMorphInfo >, ClassArray< psd_Layer >, ClassArray< SubFaceList >, ClassArray< MRenderTarget >, ClassArray< RenamePair >, ClassArray< SplinePoint3 >, ClassArray< DockLayoutElement >, ClassArray< Point3D >, ClassArray< CellsStorage >, ClassArray< CoreScriptTempItem >, ClassArray< JointPreview >, ClassArray< SplinePoint2 >, ClassArray< SplineCurve >, ClassArray< SubdWeights >, ClassArray< OneExportTexture >, ClassArray< DragNDropToolItem >, ClassArray< TempPt >, ClassArray< OneMtlInUVSet >, ClassArray< OneHotKey >, ClassArray< ExtraLight >, ClassArray< SphereOfInfluence >, ClassArray< ImpUV2 >, ClassArray< OneMtlLayer >, ClassArray< SplinePoint >, ClassArray< SliderState >, ClassArray< CustomLeftPanel >, ClassArray< cElement >, ClassArray< LwoNode >, ClassArray< ImpUVSet >, ClassArray< RetopoUVSet >, ClassArray< OneDrawnStroke >, ClassArray< LayerData >, ClassArray< CurvePrimitive >, ClassArray< KeptPolygon >, ClassArray< NodesCategory >, ClassArray< SymmetryState >, ClassArray< CurvedChunk >, ClassArray< BasePrim >, ClassArray< CameraShortcut >, ClassArray< VMapType >, StringsList, and KnotReference.

virtual bool VoxelExtension::CreateInterface ( BaseWidget *  Where)
inlinevirtualinherited

Creates parameters plate of this tool.

virtual bool VoxelExtension::CreateToolset ( )
inlinevirtualinherited

Create toolset on the top line.

See Also
VoxelSculptTool::CreateToolset() as example
virtual bool BaseClass::DelElement ( int  Index)
inlinevirtualinherited

removes element if the operation supported

Reimplemented in ClassRef< X >, ClassRef< BaseClass >, ClassPtr< X >, ClassPtr< BaseClass >, ClassPtr< VoxMethadata >, ClassPtr< BasicDistortion >, ClassPtr< OnePenStyle >, ClassPtr< CurvePrimitive >, ClassPtr< ModelPreview >, ClassPtr< BasePrim >, ClassArray< X >, ClassArray< TextItem >, ClassArray< BaseKnot >, ClassArray< IconicText >, ClassArray< BaseClass >, ClassArray< mitem >, ClassArray< PopupWindow >, ClassArray< OneQAItem >, ClassArray< LayerMaterial >, ClassArray< SplinePoint3D >, ClassArray< BaseNode >, ClassArray< ModelItem >, ClassArray< bcVec3 >, ClassArray< FacesCluster >, ClassArray< OneToolPreset >, ClassArray< OneVolumeTransform >, ClassArray< ItemsTree >, ClassArray< VolumeObject >, ClassArray< BasicDistortion >, ClassArray< Pt3D2 >, ClassArray< CurvElement2 >, ClassArray< ABOcTreeLevel >, ClassArray< FolderState >, ClassArray< my_test1 >, ClassArray< BaseWidget >, ClassArray< ExShaderParam >, ClassArray< GuideSection >, ClassArray< ShaderPreviewStrct >, ClassArray< BaseDrawingPrim >, ClassArray< OneFold >, ClassArray< RTUVSet >, ClassArray< ClassRef< BaseClass > >, ClassArray< StringsList >, ClassArray< MeasureElement >, ClassArray< OneRandomPen >, ClassArray< OnePreset >, ClassArray< ScrollParam >, ClassArray< CurveReference >, ClassArray< OneLayerInfo >, ClassArray< OneSubObject >, ClassArray< OneMaterial >, ClassArray< ImpUVSet2 >, ClassArray< RecoSample >, ClassArray< NaviEvent >, ClassArray< ExampleOfLoadSaveDataTo3BFileExtension::MyClassTest >, ClassArray< FolderRoot >, ClassArray< WindowPos >, ClassArray< RetopoGroup >, ClassArray< BaseEffectFlow >, ClassArray< FileEnabler >, ClassArray< One2DCurve >, ClassArray< VarStorage >, ClassArray< DbgLItem >, ClassArray< wCurvePoint >, ClassArray< OneMorphInfo >, ClassArray< psd_Layer >, ClassArray< SubFaceList >, ClassArray< MRenderTarget >, ClassArray< RenamePair >, ClassArray< SplinePoint3 >, ClassArray< DockLayoutElement >, ClassArray< Point3D >, ClassArray< CellsStorage >, ClassArray< CoreScriptTempItem >, ClassArray< JointPreview >, ClassArray< SplinePoint2 >, ClassArray< SplineCurve >, ClassArray< SubdWeights >, ClassArray< OneExportTexture >, ClassArray< DragNDropToolItem >, ClassArray< TempPt >, ClassArray< OneMtlInUVSet >, ClassArray< OneHotKey >, ClassArray< ExtraLight >, ClassArray< SphereOfInfluence >, ClassArray< ImpUV2 >, ClassArray< OneMtlLayer >, ClassArray< SplinePoint >, ClassArray< SliderState >, ClassArray< CustomLeftPanel >, ClassArray< cElement >, ClassArray< LwoNode >, ClassArray< ImpUVSet >, ClassArray< RetopoUVSet >, ClassArray< OneDrawnStroke >, ClassArray< LayerData >, ClassArray< CurvePrimitive >, ClassArray< KeptPolygon >, ClassArray< NodesCategory >, ClassArray< SymmetryState >, ClassArray< CurvedChunk >, ClassArray< BasePrim >, ClassArray< CameraShortcut >, ClassArray< VMapType >, and StringsList.

void BaseClass::DeleteDefaultSubFields ( TagsList xml,
void *  ClassPtr,
void *  Extra = NULL 
)
inherited

Short form saving. Fields that are unchanged in comparison to default will be skipped in XML.

virtual bool VoxelExtension::DisableRadiusVariation ( )
inlinevirtualinherited

Returns true if you don't want radius to be dependent on pen pressure.

virtual bool VoxelExtension::DrawOnPlane ( )
inlinevirtualinherited

Returns true if you want to draw starting from initial pick point in free space.

virtual int BaseClass::ExpandWith ( const char *  ElmName,
void *  base 
)
inlinevirtualinherited

Expand array with class ElmName.

Reimplemented in ClassRef< X >, ClassRef< BaseClass >, ClassPtr< X >, ClassPtr< BaseClass >, ClassPtr< VoxMethadata >, ClassPtr< BasicDistortion >, ClassPtr< OnePenStyle >, ClassPtr< CurvePrimitive >, ClassPtr< ModelPreview >, ClassPtr< BasePrim >, ClassArray< X >, ClassArray< TextItem >, ClassArray< BaseKnot >, ClassArray< IconicText >, ClassArray< BaseClass >, ClassArray< mitem >, ClassArray< PopupWindow >, ClassArray< OneQAItem >, ClassArray< LayerMaterial >, ClassArray< SplinePoint3D >, ClassArray< BaseNode >, ClassArray< ModelItem >, ClassArray< bcVec3 >, ClassArray< FacesCluster >, ClassArray< OneToolPreset >, ClassArray< OneVolumeTransform >, ClassArray< ItemsTree >, ClassArray< VolumeObject >, ClassArray< BasicDistortion >, ClassArray< Pt3D2 >, ClassArray< CurvElement2 >, ClassArray< ABOcTreeLevel >, ClassArray< FolderState >, ClassArray< my_test1 >, ClassArray< BaseWidget >, ClassArray< ExShaderParam >, ClassArray< GuideSection >, ClassArray< ShaderPreviewStrct >, ClassArray< BaseDrawingPrim >, ClassArray< OneFold >, ClassArray< RTUVSet >, ClassArray< ClassRef< BaseClass > >, ClassArray< StringsList >, ClassArray< MeasureElement >, ClassArray< OneRandomPen >, ClassArray< OnePreset >, ClassArray< ScrollParam >, ClassArray< CurveReference >, ClassArray< OneLayerInfo >, ClassArray< OneSubObject >, ClassArray< OneMaterial >, ClassArray< ImpUVSet2 >, ClassArray< RecoSample >, ClassArray< NaviEvent >, ClassArray< ExampleOfLoadSaveDataTo3BFileExtension::MyClassTest >, ClassArray< FolderRoot >, ClassArray< WindowPos >, ClassArray< RetopoGroup >, ClassArray< BaseEffectFlow >, ClassArray< FileEnabler >, ClassArray< One2DCurve >, ClassArray< VarStorage >, ClassArray< DbgLItem >, ClassArray< wCurvePoint >, ClassArray< OneMorphInfo >, ClassArray< psd_Layer >, ClassArray< SubFaceList >, ClassArray< MRenderTarget >, ClassArray< RenamePair >, ClassArray< SplinePoint3 >, ClassArray< DockLayoutElement >, ClassArray< Point3D >, ClassArray< CellsStorage >, ClassArray< CoreScriptTempItem >, ClassArray< JointPreview >, ClassArray< SplinePoint2 >, ClassArray< SplineCurve >, ClassArray< SubdWeights >, ClassArray< OneExportTexture >, ClassArray< DragNDropToolItem >, ClassArray< TempPt >, ClassArray< OneMtlInUVSet >, ClassArray< OneHotKey >, ClassArray< ExtraLight >, ClassArray< SphereOfInfluence >, ClassArray< ImpUV2 >, ClassArray< OneMtlLayer >, ClassArray< SplinePoint >, ClassArray< SliderState >, ClassArray< CustomLeftPanel >, ClassArray< cElement >, ClassArray< LwoNode >, ClassArray< ImpUVSet >, ClassArray< RetopoUVSet >, ClassArray< OneDrawnStroke >, ClassArray< LayerData >, ClassArray< CurvePrimitive >, ClassArray< KeptPolygon >, ClassArray< NodesCategory >, ClassArray< SymmetryState >, ClassArray< CurvedChunk >, ClassArray< BasePrim >, ClassArray< CameraShortcut >, and ClassArray< VMapType >.

void BaseClass::ForEach ( const std::function< bool(BaseClassElement *el)> &  fn,
bool  OnlyPointsers = false 
)
inherited

Calls function for each class member. This function used in _EACH ... _EACH_END cycle.

Parameters
fnFunction to call, usually lambda
OnlyPointsersIf true, stringual ID field of BaseClassElement will not be filled (for speed purposes).
virtual void BaseClass::FromStr ( const comms::cStr &  bs)
virtualinherited
See Also
ToBS()
virtual bool BaseClass::FullCopy ( const void *  SrcData,
const void *  SrcDataExtra,
BaseClass Dest,
void *  DestData,
void *  DstDataExtra,
CECopyContext *  C 
)
virtualinherited

Fast copy from one BaseClass to another. Names and types correspondence used to copy.

Parameters
SrcDataData data pointer
SrcDataExtraSrc extra
DestDestination class
DestDataDestination data
DstDataExtraDestination extra
Ccopy context
Returns
true if successful

Reimplemented in ClassRef< X >, ClassRef< BaseClass >, ClassPtr< X >, ClassPtr< BaseClass >, ClassPtr< VoxMethadata >, ClassPtr< BasicDistortion >, ClassPtr< OnePenStyle >, ClassPtr< CurvePrimitive >, ClassPtr< ModelPreview >, ClassPtr< BasePrim >, ClassArray< X >, ClassArray< TextItem >, ClassArray< BaseKnot >, ClassArray< IconicText >, ClassArray< BaseClass >, ClassArray< mitem >, ClassArray< PopupWindow >, ClassArray< OneQAItem >, ClassArray< LayerMaterial >, ClassArray< SplinePoint3D >, ClassArray< BaseNode >, ClassArray< ModelItem >, ClassArray< bcVec3 >, ClassArray< FacesCluster >, ClassArray< OneToolPreset >, ClassArray< OneVolumeTransform >, ClassArray< ItemsTree >, ClassArray< VolumeObject >, ClassArray< BasicDistortion >, ClassArray< Pt3D2 >, ClassArray< CurvElement2 >, ClassArray< ABOcTreeLevel >, ClassArray< FolderState >, ClassArray< my_test1 >, ClassArray< BaseWidget >, ClassArray< ExShaderParam >, ClassArray< GuideSection >, ClassArray< ShaderPreviewStrct >, ClassArray< BaseDrawingPrim >, ClassArray< OneFold >, ClassArray< RTUVSet >, ClassArray< ClassRef< BaseClass > >, ClassArray< StringsList >, ClassArray< MeasureElement >, ClassArray< OneRandomPen >, ClassArray< OnePreset >, ClassArray< ScrollParam >, ClassArray< CurveReference >, ClassArray< OneLayerInfo >, ClassArray< OneSubObject >, ClassArray< OneMaterial >, ClassArray< ImpUVSet2 >, ClassArray< RecoSample >, ClassArray< NaviEvent >, ClassArray< ExampleOfLoadSaveDataTo3BFileExtension::MyClassTest >, ClassArray< FolderRoot >, ClassArray< WindowPos >, ClassArray< RetopoGroup >, ClassArray< BaseEffectFlow >, ClassArray< FileEnabler >, ClassArray< One2DCurve >, ClassArray< VarStorage >, ClassArray< DbgLItem >, ClassArray< wCurvePoint >, ClassArray< OneMorphInfo >, ClassArray< psd_Layer >, ClassArray< SubFaceList >, ClassArray< MRenderTarget >, ClassArray< RenamePair >, ClassArray< SplinePoint3 >, ClassArray< DockLayoutElement >, ClassArray< Point3D >, ClassArray< CellsStorage >, ClassArray< CoreScriptTempItem >, ClassArray< JointPreview >, ClassArray< SplinePoint2 >, ClassArray< SplineCurve >, ClassArray< SubdWeights >, ClassArray< OneExportTexture >, ClassArray< DragNDropToolItem >, ClassArray< TempPt >, ClassArray< OneMtlInUVSet >, ClassArray< OneHotKey >, ClassArray< ExtraLight >, ClassArray< SphereOfInfluence >, ClassArray< ImpUV2 >, ClassArray< OneMtlLayer >, ClassArray< SplinePoint >, ClassArray< SliderState >, ClassArray< CustomLeftPanel >, ClassArray< cElement >, ClassArray< LwoNode >, ClassArray< ImpUVSet >, ClassArray< RetopoUVSet >, ClassArray< OneDrawnStroke >, ClassArray< LayerData >, ClassArray< CurvePrimitive >, ClassArray< KeptPolygon >, ClassArray< NodesCategory >, ClassArray< SymmetryState >, ClassArray< CurvedChunk >, ClassArray< BasePrim >, ClassArray< CameraShortcut >, ClassArray< VMapType >, StringsList, and Delimiter.

virtual int BaseClass::GetAmountOfElements ( )
virtualinherited

return complete amount of elements. Even invisible, masked and non-serialized elements will be counted

Reimplemented in ClassRef< X >, ClassRef< BaseClass >, ClassPtr< X >, ClassPtr< BaseClass >, ClassPtr< VoxMethadata >, ClassPtr< BasicDistortion >, ClassPtr< OnePenStyle >, ClassPtr< CurvePrimitive >, ClassPtr< ModelPreview >, ClassPtr< BasePrim >, ClassArray< X >, ClassArray< TextItem >, ClassArray< BaseKnot >, ClassArray< IconicText >, ClassArray< BaseClass >, ClassArray< mitem >, ClassArray< PopupWindow >, ClassArray< OneQAItem >, ClassArray< LayerMaterial >, ClassArray< SplinePoint3D >, ClassArray< BaseNode >, ClassArray< ModelItem >, ClassArray< bcVec3 >, ClassArray< FacesCluster >, ClassArray< OneToolPreset >, ClassArray< OneVolumeTransform >, ClassArray< ItemsTree >, ClassArray< VolumeObject >, ClassArray< BasicDistortion >, ClassArray< Pt3D2 >, ClassArray< CurvElement2 >, ClassArray< ABOcTreeLevel >, ClassArray< FolderState >, ClassArray< my_test1 >, ClassArray< BaseWidget >, ClassArray< ExShaderParam >, ClassArray< GuideSection >, ClassArray< ShaderPreviewStrct >, ClassArray< BaseDrawingPrim >, ClassArray< OneFold >, ClassArray< RTUVSet >, ClassArray< ClassRef< BaseClass > >, ClassArray< StringsList >, ClassArray< MeasureElement >, ClassArray< OneRandomPen >, ClassArray< OnePreset >, ClassArray< ScrollParam >, ClassArray< CurveReference >, ClassArray< OneLayerInfo >, ClassArray< OneSubObject >, ClassArray< OneMaterial >, ClassArray< ImpUVSet2 >, ClassArray< RecoSample >, ClassArray< NaviEvent >, ClassArray< ExampleOfLoadSaveDataTo3BFileExtension::MyClassTest >, ClassArray< FolderRoot >, ClassArray< WindowPos >, ClassArray< RetopoGroup >, ClassArray< BaseEffectFlow >, ClassArray< FileEnabler >, ClassArray< One2DCurve >, ClassArray< VarStorage >, ClassArray< DbgLItem >, ClassArray< wCurvePoint >, ClassArray< OneMorphInfo >, ClassArray< psd_Layer >, ClassArray< SubFaceList >, ClassArray< MRenderTarget >, ClassArray< RenamePair >, ClassArray< SplinePoint3 >, ClassArray< DockLayoutElement >, ClassArray< Point3D >, ClassArray< CellsStorage >, ClassArray< CoreScriptTempItem >, ClassArray< JointPreview >, ClassArray< SplinePoint2 >, ClassArray< SplineCurve >, ClassArray< SubdWeights >, ClassArray< OneExportTexture >, ClassArray< DragNDropToolItem >, ClassArray< TempPt >, ClassArray< OneMtlInUVSet >, ClassArray< OneHotKey >, ClassArray< ExtraLight >, ClassArray< SphereOfInfluence >, ClassArray< ImpUV2 >, ClassArray< OneMtlLayer >, ClassArray< SplinePoint >, ClassArray< SliderState >, ClassArray< CustomLeftPanel >, ClassArray< cElement >, ClassArray< LwoNode >, ClassArray< ImpUVSet >, ClassArray< RetopoUVSet >, ClassArray< OneDrawnStroke >, ClassArray< LayerData >, ClassArray< CurvePrimitive >, ClassArray< KeptPolygon >, ClassArray< NodesCategory >, ClassArray< SymmetryState >, ClassArray< CurvedChunk >, ClassArray< BasePrim >, ClassArray< CameraShortcut >, and ClassArray< VMapType >.

Referenced by CreateControlWithBaseClass().

virtual int BaseClass::GetAmountOfElementsInUI ( )
virtualinherited

return amount of elements represented in UI

virtual int BaseClass::GetAmountOfElementsInXML ( )
virtualinherited

return amount of elements taht will be stored in XML

virtual float VoxelExtension::GetBottomOffset ( )
inlinevirtualinherited

For supports tool.

virtual DWORD BaseClass::GetClassMask ( )
inlinevirtualinherited

Masking elements of class. Each member has mask. Element is serializable/visible only if (it's_mask & hosting_class_mask) != 0.

Reimplemented in UV_map_Tool, and VoxTreeBranch.

Referenced by CreateControlWithBaseClass().

virtual const char* BaseClass::GetClassName ( ) const
virtualinherited

return class name there if need. Usually you don't need, if you are using AUTONEW or SERIALIZE

Reimplemented in ClassRef< X >, ClassRef< BaseClass >, ClassPtr< X >, ClassPtr< BaseClass >, ClassPtr< VoxMethadata >, ClassPtr< BasicDistortion >, ClassPtr< OnePenStyle >, ClassPtr< CurvePrimitive >, ClassPtr< ModelPreview >, ClassPtr< BasePrim >, ClassArray< X >, ClassArray< TextItem >, ClassArray< BaseKnot >, ClassArray< IconicText >, ClassArray< BaseClass >, ClassArray< mitem >, ClassArray< PopupWindow >, ClassArray< OneQAItem >, ClassArray< LayerMaterial >, ClassArray< SplinePoint3D >, ClassArray< BaseNode >, ClassArray< ModelItem >, ClassArray< bcVec3 >, ClassArray< FacesCluster >, ClassArray< OneToolPreset >, ClassArray< OneVolumeTransform >, ClassArray< ItemsTree >, ClassArray< VolumeObject >, ClassArray< BasicDistortion >, ClassArray< Pt3D2 >, ClassArray< CurvElement2 >, ClassArray< ABOcTreeLevel >, ClassArray< FolderState >, ClassArray< my_test1 >, ClassArray< BaseWidget >, ClassArray< ExShaderParam >, ClassArray< GuideSection >, ClassArray< ShaderPreviewStrct >, ClassArray< BaseDrawingPrim >, ClassArray< OneFold >, ClassArray< RTUVSet >, ClassArray< ClassRef< BaseClass > >, ClassArray< StringsList >, ClassArray< MeasureElement >, ClassArray< OneRandomPen >, ClassArray< OnePreset >, ClassArray< ScrollParam >, ClassArray< CurveReference >, ClassArray< OneLayerInfo >, ClassArray< OneSubObject >, ClassArray< OneMaterial >, ClassArray< ImpUVSet2 >, ClassArray< RecoSample >, ClassArray< NaviEvent >, ClassArray< ExampleOfLoadSaveDataTo3BFileExtension::MyClassTest >, ClassArray< FolderRoot >, ClassArray< WindowPos >, ClassArray< RetopoGroup >, ClassArray< BaseEffectFlow >, ClassArray< FileEnabler >, ClassArray< One2DCurve >, ClassArray< VarStorage >, ClassArray< DbgLItem >, ClassArray< wCurvePoint >, ClassArray< OneMorphInfo >, ClassArray< psd_Layer >, ClassArray< SubFaceList >, ClassArray< MRenderTarget >, ClassArray< RenamePair >, ClassArray< SplinePoint3 >, ClassArray< DockLayoutElement >, ClassArray< Point3D >, ClassArray< CellsStorage >, ClassArray< CoreScriptTempItem >, ClassArray< JointPreview >, ClassArray< SplinePoint2 >, ClassArray< SplineCurve >, ClassArray< SubdWeights >, ClassArray< OneExportTexture >, ClassArray< DragNDropToolItem >, ClassArray< TempPt >, ClassArray< OneMtlInUVSet >, ClassArray< OneHotKey >, ClassArray< ExtraLight >, ClassArray< SphereOfInfluence >, ClassArray< ImpUV2 >, ClassArray< OneMtlLayer >, ClassArray< SplinePoint >, ClassArray< SliderState >, ClassArray< CustomLeftPanel >, ClassArray< cElement >, ClassArray< LwoNode >, ClassArray< ImpUVSet >, ClassArray< RetopoUVSet >, ClassArray< OneDrawnStroke >, ClassArray< LayerData >, ClassArray< CurvePrimitive >, ClassArray< KeptPolygon >, ClassArray< NodesCategory >, ClassArray< SymmetryState >, ClassArray< CurvedChunk >, ClassArray< BasePrim >, ClassArray< CameraShortcut >, ClassArray< VMapType >, StringsList, and Delimiter.

Referenced by ClassArray< VMapType >::CountObjects(), CreateControlWithBaseClass(), CurveModifier::GetTool(), ClassArray< VMapType >::SaveBin(), and ClassPtr< BasePrim >::SaveBin().

virtual int BaseClass::GetClassSize ( ) const
virtualinherited

return actual size of this class

virtual bool BaseClass::GetElement ( BaseClassElement res,
int  idx,
const void *  Ptr = nullptr,
const void *  Extra = nullptr 
)
virtualinherited

The function returns complete information about the member by it's index. If you want to walk through all members use _EACH ... _EACH_END loop.

Parameters
resAll data gathered there
idxIndex of the member
PtrPointer to data (if class is direcly castable it is equal to this, othervice it points to placement of data in memory). If NULL passed, this will be used
ExtraExtra data, used for enumerators and sliders (mostly)
Returns
return true if element exists and visible

Reimplemented in ClassRef< X >, ClassRef< BaseClass >, ClassPtr< X >, ClassPtr< BaseClass >, ClassPtr< VoxMethadata >, ClassPtr< BasicDistortion >, ClassPtr< OnePenStyle >, ClassPtr< CurvePrimitive >, ClassPtr< ModelPreview >, and ClassPtr< BasePrim >.

Referenced by CreateControlWithBaseClass().

bool BaseClass::GetElementByName ( const char *  Name,
void *  Ptr,
void *  Extra,
BaseClassElement res,
bool  UI = false,
bool  Serialize = true 
)
inherited

The function returns complete information about the member by it's name.

Parameters
NameName of the member
PtrData ptr
ExtraExtra
resAll data gathered there
Returns
return true if element exists and visible

Referenced by CurvePrimitive::OnChangeMember().

virtual const char* RtKnife::GetID ( )
inlinevirtual

Define Textual ID in tools list.

Reimplemented from VoxelExtension.

virtual int VoxelExtension::GetNumSaveChunks ( )
inlinevirtualinherited

Returns number of save chunks for 3B file, the chunk index will be passed to each load/save related function. See the BIG example of data serialization in the examplary class ExampleOfLoadSaveDataTo3BFileExtension (in VoxelExtension.cpp)

Reimplemented in ExampleOfLoadSaveDataTo3BFileExtension, and QuadStripTool.

BaseClass* BaseClass::GetRoot ( )
inherited

BaseClass is like a tree, and you always can get the root of the tree using this function.

virtual DWORD VoxelExtension::GetSaveMagic ( int  ChunkIdx)
inlinevirtualinherited

Returns unique ID of the save chunk, idx is the chunk index.

Reimplemented in ExampleOfLoadSaveDataTo3BFileExtension, and QuadStripTool.

virtual bool BaseClass::HandleKey ( int  code)
inlinevirtualinherited

Editor will call next function when key pressed.

Returns
true if key handled, false if not.Return true if code == -1 (othervice callback will never be called later).

Referenced by CreateControlWithBaseClass().

virtual bool VoxelExtension::IgnoreFieldInTopPanel ( const char *  FieldName)
inlinevirtualinherited

Possible fields: Buildup, NrmSampling, NormalsSampling,.

virtual bool VoxelExtension::IsToolsAction ( )
inlinevirtualinherited

For tool actions! Return false if it is the tool, return true if it is just button without the need of the tool activation. In this case only OnActivate() will be called when user presses the button.

Reimplemented in CommandButton.

Referenced by VoxelExtension::Register().

virtual bool BaseClass::Load ( TagsList xml,
void *  ClassPtr,
void *  Extra = NULL 
)
virtualinherited

Load the class from the XML structure.

Parameters
xmlThe source XML
ClassPtrThe pointer to the data, equals to this if class is directly castable
ExtraExtra data pointer
Returns
true if successful

Reimplemented in ClassArray< X >, ClassArray< TextItem >, ClassArray< BaseKnot >, ClassArray< IconicText >, ClassArray< BaseClass >, ClassArray< mitem >, ClassArray< PopupWindow >, ClassArray< OneQAItem >, ClassArray< LayerMaterial >, ClassArray< SplinePoint3D >, ClassArray< BaseNode >, ClassArray< ModelItem >, ClassArray< bcVec3 >, ClassArray< FacesCluster >, ClassArray< OneToolPreset >, ClassArray< OneVolumeTransform >, ClassArray< ItemsTree >, ClassArray< VolumeObject >, ClassArray< BasicDistortion >, ClassArray< Pt3D2 >, ClassArray< CurvElement2 >, ClassArray< ABOcTreeLevel >, ClassArray< FolderState >, ClassArray< my_test1 >, ClassArray< BaseWidget >, ClassArray< ExShaderParam >, ClassArray< GuideSection >, ClassArray< ShaderPreviewStrct >, ClassArray< BaseDrawingPrim >, ClassArray< OneFold >, ClassArray< RTUVSet >, ClassArray< ClassRef< BaseClass > >, ClassArray< StringsList >, ClassArray< MeasureElement >, ClassArray< OneRandomPen >, ClassArray< OnePreset >, ClassArray< ScrollParam >, ClassArray< CurveReference >, ClassArray< OneLayerInfo >, ClassArray< OneSubObject >, ClassArray< OneMaterial >, ClassArray< ImpUVSet2 >, ClassArray< RecoSample >, ClassArray< NaviEvent >, ClassArray< ExampleOfLoadSaveDataTo3BFileExtension::MyClassTest >, ClassArray< FolderRoot >, ClassArray< WindowPos >, ClassArray< RetopoGroup >, ClassArray< BaseEffectFlow >, ClassArray< FileEnabler >, ClassArray< One2DCurve >, ClassArray< VarStorage >, ClassArray< DbgLItem >, ClassArray< wCurvePoint >, ClassArray< OneMorphInfo >, ClassArray< psd_Layer >, ClassArray< SubFaceList >, ClassArray< MRenderTarget >, ClassArray< RenamePair >, ClassArray< SplinePoint3 >, ClassArray< DockLayoutElement >, ClassArray< Point3D >, ClassArray< CellsStorage >, ClassArray< CoreScriptTempItem >, ClassArray< JointPreview >, ClassArray< SplinePoint2 >, ClassArray< SplineCurve >, ClassArray< SubdWeights >, ClassArray< OneExportTexture >, ClassArray< DragNDropToolItem >, ClassArray< TempPt >, ClassArray< OneMtlInUVSet >, ClassArray< OneHotKey >, ClassArray< ExtraLight >, ClassArray< SphereOfInfluence >, ClassArray< ImpUV2 >, ClassArray< OneMtlLayer >, ClassArray< SplinePoint >, ClassArray< SliderState >, ClassArray< CustomLeftPanel >, ClassArray< cElement >, ClassArray< LwoNode >, ClassArray< ImpUVSet >, ClassArray< RetopoUVSet >, ClassArray< OneDrawnStroke >, ClassArray< LayerData >, ClassArray< CurvePrimitive >, ClassArray< KeptPolygon >, ClassArray< NodesCategory >, ClassArray< SymmetryState >, ClassArray< CurvedChunk >, ClassArray< BasePrim >, ClassArray< CameraShortcut >, ClassArray< VMapType >, CurveModifier, StringsList, and KnotReference.

Referenced by CurveModifier::Load(), ClassArray< VMapType >::Load(), and CurvePrimitive::OnChangeMember().

virtual void BaseClass::LoadBin ( void *  Data,
void *  Extra,
BinStream *  In,
Enumerator *  ExDictionary 
)
virtualinherited

Load the class from the memory. Use only for temporary storage in memory!!!

Parameters
DataPointer to the class data
ExtraExtra data
Inbinary stream to read data from
ExDictionaryAdditional dictionary

Reimplemented in ClassRef< X >, ClassRef< BaseClass >, ClassPtr< X >, ClassPtr< BaseClass >, ClassPtr< VoxMethadata >, ClassPtr< BasicDistortion >, ClassPtr< OnePenStyle >, ClassPtr< CurvePrimitive >, ClassPtr< ModelPreview >, ClassPtr< BasePrim >, ClassArray< X >, ClassArray< TextItem >, ClassArray< BaseKnot >, ClassArray< IconicText >, ClassArray< BaseClass >, ClassArray< mitem >, ClassArray< PopupWindow >, ClassArray< OneQAItem >, ClassArray< LayerMaterial >, ClassArray< SplinePoint3D >, ClassArray< BaseNode >, ClassArray< ModelItem >, ClassArray< bcVec3 >, ClassArray< FacesCluster >, ClassArray< OneToolPreset >, ClassArray< OneVolumeTransform >, ClassArray< ItemsTree >, ClassArray< VolumeObject >, ClassArray< BasicDistortion >, ClassArray< Pt3D2 >, ClassArray< CurvElement2 >, ClassArray< ABOcTreeLevel >, ClassArray< FolderState >, ClassArray< my_test1 >, ClassArray< BaseWidget >, ClassArray< ExShaderParam >, ClassArray< GuideSection >, ClassArray< ShaderPreviewStrct >, ClassArray< BaseDrawingPrim >, ClassArray< OneFold >, ClassArray< RTUVSet >, ClassArray< ClassRef< BaseClass > >, ClassArray< StringsList >, ClassArray< MeasureElement >, ClassArray< OneRandomPen >, ClassArray< OnePreset >, ClassArray< ScrollParam >, ClassArray< CurveReference >, ClassArray< OneLayerInfo >, ClassArray< OneSubObject >, ClassArray< OneMaterial >, ClassArray< ImpUVSet2 >, ClassArray< RecoSample >, ClassArray< NaviEvent >, ClassArray< ExampleOfLoadSaveDataTo3BFileExtension::MyClassTest >, ClassArray< FolderRoot >, ClassArray< WindowPos >, ClassArray< RetopoGroup >, ClassArray< BaseEffectFlow >, ClassArray< FileEnabler >, ClassArray< One2DCurve >, ClassArray< VarStorage >, ClassArray< DbgLItem >, ClassArray< wCurvePoint >, ClassArray< OneMorphInfo >, ClassArray< psd_Layer >, ClassArray< SubFaceList >, ClassArray< MRenderTarget >, ClassArray< RenamePair >, ClassArray< SplinePoint3 >, ClassArray< DockLayoutElement >, ClassArray< Point3D >, ClassArray< CellsStorage >, ClassArray< CoreScriptTempItem >, ClassArray< JointPreview >, ClassArray< SplinePoint2 >, ClassArray< SplineCurve >, ClassArray< SubdWeights >, ClassArray< OneExportTexture >, ClassArray< DragNDropToolItem >, ClassArray< TempPt >, ClassArray< OneMtlInUVSet >, ClassArray< OneHotKey >, ClassArray< ExtraLight >, ClassArray< SphereOfInfluence >, ClassArray< ImpUV2 >, ClassArray< OneMtlLayer >, ClassArray< SplinePoint >, ClassArray< SliderState >, ClassArray< CustomLeftPanel >, ClassArray< cElement >, ClassArray< LwoNode >, ClassArray< ImpUVSet >, ClassArray< RetopoUVSet >, ClassArray< OneDrawnStroke >, ClassArray< LayerData >, ClassArray< CurvePrimitive >, ClassArray< KeptPolygon >, ClassArray< NodesCategory >, ClassArray< SymmetryState >, ClassArray< CurvedChunk >, ClassArray< BasePrim >, ClassArray< CameraShortcut >, ClassArray< VMapType >, CurveModifier, StringsList, and Delimiter.

Referenced by CurveModifier::LoadBin(), and ClassArray< VMapType >::LoadBin().

virtual void VoxelExtension::LoadData ( int  ChunkIdx,
BinStream &  BS 
)
inlinevirtualinherited

Load data from 3D-file.

Data will be in the same order as it was saved, no additional headers.

Reimplemented in ExampleOfLoadSaveDataTo3BFileExtension, and QuadStripTool.

virtual bool VoxelExtension::NeedFirstPoint ( )
inlinevirtualinherited

Returns true if need at least one point per trajectoty chunk.

virtual bool VoxelExtension::NeedGlobalIndexing ( )
inlinevirtualinherited

Returns true if you need to use VolumeCell::LocalMeshPtr.

virtual int RtKnife::NeedTrajectory ( )
inlinevirtual

Returns 1 if you need to construct brush trajectory with TMaster including end points and 2 if you need to include start point in trajectory, 0 if you don't need TMaster at all.

Reimplemented from VoxelExtension.

virtual BaseClass* BaseClass::new_element ( ) const
virtualinherited

construct pointer to class of the same type like this. Elements will not be copied into the new place

Referenced by ClassArray< VMapType >::ExpandWith(), and ClassPtr< BasePrim >::ExpandWith().

virtual bool BaseClass::OnAcceptDrag ( BaseClass DraggedItemParent,
const char *  DraggedMemberID,
const char *  AcceptorMemberID,
iRct  MyRect 
)
inlinevirtualinherited
void RtKnife::OnActivate ( )
virtual

Called when user activates tool.

Reimplemented from VoxelExtension.

References OnClear().

Referenced by OnKey().

virtual bool VoxelExtension::onApply ( )
inlinevirtualinherited

Perform action by ENTER key and return true if tool does not allow default ENTER action.

Reimplemented in NoiseMaster.

virtual bool BaseClass::OnChangeMember ( BaseClass MembClass,
void *  MembPtr,
void *  MembExtra,
const char *  MembName 
)
inlinevirtualinherited

Editor will call it every time when member changes and editor is able to recognise it.

Returns
The value doesn't matter.
See Also
BeforeChangeMember()

Reimplemented in UV_map_Tool, VoxTreeBranch, OneFacture, QuadragulationTask, and CurvePrimitive.

void RtKnife::OnClear ( )
virtual

Called when user selects "New scene".

Reimplemented from VoxelExtension.

Referenced by OnActivate().

virtual BaseWidget* BaseClass::OnCreateControlFromScratch ( const ClassEditorContext Context,
Rct &  Rect 
)
inlinevirtualinherited

Create completely own control for ClassEditor.

Override it when need to create completely own class editor control.

Parameters
[in]FieldNameis how the object registered.
[out]Rectis rectangle to place control, may be modified by this function if need.
[in]Ptris pointer to data, if class suports direct casting it is equal to "this".
Returns
The function should return control (BaseWidget*) to place in UI
See Also
One2DCurve::OnModifyControl()

Reimplemented in ModelPreview.

Referenced by CreateControlWithBaseClass().

virtual void VoxelExtension::OnCreateNewCurve ( OneCurveObject *  cu)
inlinevirtualinherited

called in curve editor to correct the curve alias and placement

virtual void VoxelExtension::OnCreatePreset ( OnePreset *  PS)
inlinevirtualinherited

Called when preset created manually by user.

virtual void VoxelExtension::OnDeActivate ( )
inlinevirtualinherited

Called when user chooses other tool but this.

Reimplemented in CSurfaceNGenerTwoGuide, and NoiseMaster.

Referenced by RetopoTool::Activate(), RetopoTool::ActivateMode(), and VoxelExtension::Register().

virtual void VoxelExtension::OnDraw ( )
inlinevirtualinherited

Called when you are trying to draw by some brush.

Reimplemented in NoiseMaster.

virtual bool BaseClass::OnEndDrag ( const char *  MemberID)
inlinevirtualinherited
bool RtKnife::OnKey ( char  KeyCode)
virtual

KeyCode is Windows virtual keyboard codes like VK_xxxx.

Reimplemented from VoxelExtension.

References OnActivate().

virtual void BaseClass::OnModifyControl ( const char *  FieldName,
BaseWidget *  W,
ClassEditorContext Context 
)
inlinevirtualinherited

Call for every member of registered class registered class.

Override it when you need to modify default class editor control. This routine allows to modify class editor controls without rewriting from scratch. Build controls in the W.

See Also
MultiMtlLayer::OnModifyControl()
RetopoGroup::OnModifyControl()
VoxTreeBranch::OnModifyControl()

Reimplemented in VoxTreeBranch, and ItemsTree.

Referenced by CreateControlWithBaseClass().

virtual void VoxelExtension::OnPresetActivation ( OnePreset *  PS)
inlinevirtualinherited

Called when preset activated regardless if tool active or not.

virtual void VoxelExtension::OnProcessNode ( VoxTreeBranch tb,
cList< VORenderQueue > &  RQ 
)
inlinevirtualinherited

called to add transformed proxy objects into scene

virtual bool VoxelExtension::OnRectSelectionEnd ( Rct  R)
inlinevirtualinherited

Called when user ends rectagular/curve selection, returns true if don't need further handling.

virtual void VoxelExtension::OnSelectItem ( const char *  Category)
inlinevirtualinherited

notify when pen/strip/material/Shader etc selected. Set breakpoint and select to get valid category. Currently available: Pen, MASK, Shaders, STRIPS, Materials

virtual bool VoxelExtension::OnSelectModelInPalette ( const char *  ModelName,
const char *  RootPath,
bool  InCurrentTool 
)
inlinevirtualinherited

Called when user chosen model in models palette, return true if model used and action captured.

virtual bool BaseClass::OnStartDrag ( const char *  MemberID)
inlinevirtualinherited
virtual bool VoxelExtension::OnWheel ( int  step)
inlinevirtualinherited

step in 1 or -1 in dependence on direction

virtual float VoxelExtension::OverridePositionalSamplingRadius ( )
inlinevirtualinherited

return 0 if you don't need sampling radius

virtual bool VoxelExtension::PickOnlyFirstPoint ( )
inlinevirtualinherited

!!!false

virtual bool RtKnife::PresentInSurfaceTools ( )
inlinevirtual

Returns true if the tool is present in voxel surface toolset.

Reimplemented from VoxelExtension.

virtual bool RtKnife::PresentInVoxelTools ( )
inlinevirtual

Returns true if the tool is present in voxel toolset.

Reimplemented from VoxelExtension.

virtual void VoxelExtension::Process ( )
inlinevirtualinherited

Called once per frame.

Reimplemented in NoiseMaster.

virtual bool BaseClass::ProcessInEditor ( BaseClass Parent)
inlinevirtualinherited

Editor will call next function always when it is visible in tree. Return true if overriden.

Reimplemented in OneFacture, and CurvePrimitive.

Referenced by CreateControlWithBaseClass().

virtual bool BaseClass::ReadFromFile ( const char *  Name)
virtualinherited

Save the object to file or binary stream. Example.

MyClass C;
MyClass C1;
// to stream
MemoryBinStream BS;
C.ToBS(BS, true);
// copy from C to C1
C1.FromBS(BS);
// to file
C.WriteToFile("file.xml");
C1.ReadFromFile("file.xml");
// to string
cStr s;
C.ToStr(s);
C1.FromStr(s);
ui_menu_simple * VoxelExtension::Register ( VoxelExtension ex)
staticinherited

Call this function to register own extension.

Go to VoxelExtension.cpp, include your header, call VoxelExtension::Register in function RegisterVoxelExtensions().

References VoxelExtension::GetID(), VoxelExtension::ID, VoxelExtension::IsToolsAction(), VoxelExtension::OnActivate(), VoxelExtension::OnDeActivate(), VoxelExtension::PresentInSurfaceTools(), VoxelExtension::PresentInVoxelTools(), and ui_root().

virtual void BaseClass::RegisterMembers ( )
virtualinherited

Reload this function to register members. Usually you don't need to do this if you are using any of SERIALIZE methods of registration.

virtual int VoxelExtension::RequiresExtraTopLine ( )
inlinevirtualinherited

Returns nonzero if top line with params required similar to Primitives set.

virtual void BaseClass::reset_class ( void *  DataPtr = nullptr)
virtualinherited

Clearing all registered content of the class. If DataPtr is nullptr, this class will be cleared.

Reimplemented in ClassRef< X >, ClassRef< BaseClass >, ClassPtr< X >, ClassPtr< BaseClass >, ClassPtr< VoxMethadata >, ClassPtr< BasicDistortion >, ClassPtr< OnePenStyle >, ClassPtr< CurvePrimitive >, ClassPtr< ModelPreview >, ClassPtr< BasePrim >, ClassArray< X >, ClassArray< TextItem >, ClassArray< BaseKnot >, ClassArray< IconicText >, ClassArray< BaseClass >, ClassArray< mitem >, ClassArray< PopupWindow >, ClassArray< OneQAItem >, ClassArray< LayerMaterial >, ClassArray< SplinePoint3D >, ClassArray< BaseNode >, ClassArray< ModelItem >, ClassArray< bcVec3 >, ClassArray< FacesCluster >, ClassArray< OneToolPreset >, ClassArray< OneVolumeTransform >, ClassArray< ItemsTree >, ClassArray< VolumeObject >, ClassArray< BasicDistortion >, ClassArray< Pt3D2 >, ClassArray< CurvElement2 >, ClassArray< ABOcTreeLevel >, ClassArray< FolderState >, ClassArray< my_test1 >, ClassArray< BaseWidget >, ClassArray< ExShaderParam >, ClassArray< GuideSection >, ClassArray< ShaderPreviewStrct >, ClassArray< BaseDrawingPrim >, ClassArray< OneFold >, ClassArray< RTUVSet >, ClassArray< ClassRef< BaseClass > >, ClassArray< StringsList >, ClassArray< MeasureElement >, ClassArray< OneRandomPen >, ClassArray< OnePreset >, ClassArray< ScrollParam >, ClassArray< CurveReference >, ClassArray< OneLayerInfo >, ClassArray< OneSubObject >, ClassArray< OneMaterial >, ClassArray< ImpUVSet2 >, ClassArray< RecoSample >, ClassArray< NaviEvent >, ClassArray< ExampleOfLoadSaveDataTo3BFileExtension::MyClassTest >, ClassArray< FolderRoot >, ClassArray< WindowPos >, ClassArray< RetopoGroup >, ClassArray< BaseEffectFlow >, ClassArray< FileEnabler >, ClassArray< One2DCurve >, ClassArray< VarStorage >, ClassArray< DbgLItem >, ClassArray< wCurvePoint >, ClassArray< OneMorphInfo >, ClassArray< psd_Layer >, ClassArray< SubFaceList >, ClassArray< MRenderTarget >, ClassArray< RenamePair >, ClassArray< SplinePoint3 >, ClassArray< DockLayoutElement >, ClassArray< Point3D >, ClassArray< CellsStorage >, ClassArray< CoreScriptTempItem >, ClassArray< JointPreview >, ClassArray< SplinePoint2 >, ClassArray< SplineCurve >, ClassArray< SubdWeights >, ClassArray< OneExportTexture >, ClassArray< DragNDropToolItem >, ClassArray< TempPt >, ClassArray< OneMtlInUVSet >, ClassArray< OneHotKey >, ClassArray< ExtraLight >, ClassArray< SphereOfInfluence >, ClassArray< ImpUV2 >, ClassArray< OneMtlLayer >, ClassArray< SplinePoint >, ClassArray< SliderState >, ClassArray< CustomLeftPanel >, ClassArray< cElement >, ClassArray< LwoNode >, ClassArray< ImpUVSet >, ClassArray< RetopoUVSet >, ClassArray< OneDrawnStroke >, ClassArray< LayerData >, ClassArray< CurvePrimitive >, ClassArray< KeptPolygon >, ClassArray< NodesCategory >, ClassArray< SymmetryState >, ClassArray< CurvedChunk >, ClassArray< BasePrim >, ClassArray< CameraShortcut >, ClassArray< VMapType >, and StringsList.

virtual void BaseClass::Save ( TagsList xml,
void *  ClassPtr,
void *  Extra = NULL 
)
virtualinherited

Save class to the XML structure.

Parameters
xmlThe result
ClassPtrThe pointer to the data, equals to this if class is directly castable
ExtraExtra data pointer

Reimplemented in CurveModifier, StringsList, and KnotReference.

Referenced by CurvePrimitive::OnChangeMember(), and CurveModifier::Save().

virtual void BaseClass::SaveBin ( void *  Data,
void *  Extra,
BinStream *  Out,
Enumerator *  ExDictionary,
Enumerator *  SkipList 
)
virtualinherited

Save in binaly form. Use only for temporary storage in memory!!!

Parameters
Datadata pointer
Extraextra pointer
OutOutput stream
ExDictionaryDictionary for enumerators
SkipListSkip list for enumerators

Reimplemented in ClassRef< X >, ClassRef< BaseClass >, ClassPtr< X >, ClassPtr< BaseClass >, ClassPtr< VoxMethadata >, ClassPtr< BasicDistortion >, ClassPtr< OnePenStyle >, ClassPtr< CurvePrimitive >, ClassPtr< ModelPreview >, ClassPtr< BasePrim >, ClassArray< X >, ClassArray< TextItem >, ClassArray< BaseKnot >, ClassArray< IconicText >, ClassArray< BaseClass >, ClassArray< mitem >, ClassArray< PopupWindow >, ClassArray< OneQAItem >, ClassArray< LayerMaterial >, ClassArray< SplinePoint3D >, ClassArray< BaseNode >, ClassArray< ModelItem >, ClassArray< bcVec3 >, ClassArray< FacesCluster >, ClassArray< OneToolPreset >, ClassArray< OneVolumeTransform >, ClassArray< ItemsTree >, ClassArray< VolumeObject >, ClassArray< BasicDistortion >, ClassArray< Pt3D2 >, ClassArray< CurvElement2 >, ClassArray< ABOcTreeLevel >, ClassArray< FolderState >, ClassArray< my_test1 >, ClassArray< BaseWidget >, ClassArray< ExShaderParam >, ClassArray< GuideSection >, ClassArray< ShaderPreviewStrct >, ClassArray< BaseDrawingPrim >, ClassArray< OneFold >, ClassArray< RTUVSet >, ClassArray< ClassRef< BaseClass > >, ClassArray< StringsList >, ClassArray< MeasureElement >, ClassArray< OneRandomPen >, ClassArray< OnePreset >, ClassArray< ScrollParam >, ClassArray< CurveReference >, ClassArray< OneLayerInfo >, ClassArray< OneSubObject >, ClassArray< OneMaterial >, ClassArray< ImpUVSet2 >, ClassArray< RecoSample >, ClassArray< NaviEvent >, ClassArray< ExampleOfLoadSaveDataTo3BFileExtension::MyClassTest >, ClassArray< FolderRoot >, ClassArray< WindowPos >, ClassArray< RetopoGroup >, ClassArray< BaseEffectFlow >, ClassArray< FileEnabler >, ClassArray< One2DCurve >, ClassArray< VarStorage >, ClassArray< DbgLItem >, ClassArray< wCurvePoint >, ClassArray< OneMorphInfo >, ClassArray< psd_Layer >, ClassArray< SubFaceList >, ClassArray< MRenderTarget >, ClassArray< RenamePair >, ClassArray< SplinePoint3 >, ClassArray< DockLayoutElement >, ClassArray< Point3D >, ClassArray< CellsStorage >, ClassArray< CoreScriptTempItem >, ClassArray< JointPreview >, ClassArray< SplinePoint2 >, ClassArray< SplineCurve >, ClassArray< SubdWeights >, ClassArray< OneExportTexture >, ClassArray< DragNDropToolItem >, ClassArray< TempPt >, ClassArray< OneMtlInUVSet >, ClassArray< OneHotKey >, ClassArray< ExtraLight >, ClassArray< SphereOfInfluence >, ClassArray< ImpUV2 >, ClassArray< OneMtlLayer >, ClassArray< SplinePoint >, ClassArray< SliderState >, ClassArray< CustomLeftPanel >, ClassArray< cElement >, ClassArray< LwoNode >, ClassArray< ImpUVSet >, ClassArray< RetopoUVSet >, ClassArray< OneDrawnStroke >, ClassArray< LayerData >, ClassArray< CurvePrimitive >, ClassArray< KeptPolygon >, ClassArray< NodesCategory >, ClassArray< SymmetryState >, ClassArray< CurvedChunk >, ClassArray< BasePrim >, ClassArray< CameraShortcut >, ClassArray< VMapType >, CurveModifier, StringsList, and Delimiter.

Referenced by CurveModifier::SaveBin(), ClassArray< VMapType >::SaveBin(), and ClassPtr< BasePrim >::SaveBin().

virtual void VoxelExtension::SaveData ( int  ChunkIdx,
BinStream &  BS 
)
inlinevirtualinherited

Store data to the 3B file using Bin stream.

This function will be called 2 times during saving - once for size calculation, second - actually for saving.

Reimplemented in ExampleOfLoadSaveDataTo3BFileExtension, and QuadStripTool.

virtual void BaseClass::SetParent ( BaseClass Parent)
virtualinherited

set parent recursively

Referenced by VoxTreeBranch::Add(), and ClassArray< VMapType >::ExpandWith().

void BaseClass::SetParents ( )
inherited

set parents to this for all child members

Referenced by CreateControlWithBaseClass().

void BaseClass::SetParentsSafe ( )
inherited

set parents to this for all child members, each child will be tested for validity

virtual bool BaseClass::ShouldSaveInShortForm ( )
inlinevirtualinherited

Return true if class should be saved in short form mandatory.

virtual void BaseClass::SimplySetParent ( BaseClass Parent)
virtualinherited

set parent directly to this, not affecting members

void VoxelExtension::SwitchTo ( )
inherited

Please use this function to activate the tool.

References VoxelExtension::GetID().

virtual void VoxelExtension::TransformInRetopo ( const Matrix4D m)
inlinevirtualinherited

called when geometry transformed in retopo room

virtual void BaseClass::UpdateHash ( HashSummator S,
void *  data = nullptr,
void *  extra = nullptr 
)
virtualinherited

returns hash value dependent on data fields of this class

Parameters
dataData ptr pointer to data
extraExtra ptr pointer to methadata
Returns
Hash value returns some value dependent on the class inner data. Usually only serializable data influences on th return value.

Reimplemented in VoxTreeBranch, StringsList, and ItemsTree.

Referenced by ClassArray< VMapType >::CountObjects().

template<class Type >
bool BaseClass::valid ( ) const
inlineinherited

call it to check if this BaseClass pointer is valid

References BaseClass::pmutex, and BaseClass::presence.

Referenced by RegisterVoxHelper::clearScene(), and CreateControlWithBaseClass().

Member Data Documentation

DWORD BaseClass::_ClassMask
protectedinherited

Result of GetClassMask() written there. GetClassMask() is not const, so can't use it in const functions. The field introduced to use masking in const functions.

cStr VoxelExtension::BaseParentTool
inherited

Used if tool duplicated. This is very base of the tool, it does not changes when tool duplicated. This is like "grand-grand...father".

const char* BaseClass::CurrentSaveFile
staticinherited

If user triggers saving class to file, last filename stored there.

bool VoxelExtension::GeneralUsage =false
staticinherited

true if VoxelExtension used outside of voxel room.

Referenced by RetopoTool::Activate(), and RetopoTool::ActivateMode().

int VoxelExtension::ID
inherited

For internal use by application.

You can add an icon for tool when ID is defined. All icons located in the folder textures/icons64.

See Also
File ui2.xml in the root of application.

Referenced by CurveModifier::GetTool(), and VoxelExtension::Register().

BaseClass* BaseClass::ParentBC
protectedinherited

pointer to the parent class in the tree

std::mutex* BaseClass::pmutex
staticprotectedinherited

mutex for register_this / remove_this

Referenced by BaseClass::valid().

uni_hash<_empty, cPtrDiff, (1 << 18), 2048>* BaseClass::presence
staticprotectedinherited

each BaseClass registered in this list

Referenced by BaseClass::valid().

cStr VoxelExtension::PreviousParentTool
inherited

This is ID of parent, like "father" tool.


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