cPy.cScene module#
- class VoxMethadata[source]#
Bases:
objectBase class for voxel metadata extensions.Allows attaching additional data or logic to a specific VoxTreeBranch.- static dynamic_cast(pObject: any) VoxMethadata[source]#
- An analogue of the dynamic_cast function from C++, it checks whether the object pObject is a VoxMethadata class or its descendant, and if so, returns the specified object, but of the VoxMethadata type.
- Parent: any#
- class CutsCollector[source]#
Bases:
objectUtility class for collecting intersection curves and processing boolean edges.Used for operations like creating curves from volume intersections,generating tubes along intersections, or splitting mesh boundaries.- edges: list#
- fromVolumesIntersection(volume1: any, volume2: any)[source]#
- Collects intersection edges between two voxel volumes.
- relaxInTube(volume: any, radius: float, symm: bool = True)[source]#
- Relaxes the collected curves inside a tubular volume.
- createWeightsVolume(dest: VolumeObject, radius: float, edges_transform: cMat4)[source]#
- class VoxTreeBranch[source]#
Bases:
objectHierarchical layers (voxel and surface) which you see in the SculptRoom.Every item in this object contains transform matrix and reference to the item inVTree.It refersVolumeObject. There may be multiple references on sameVolumeObjectfrom separateVoxTreeBranch-es.Root of allVoxTreeBrancheskept inRootVTree.see VolumeObject- Parent: VoxTreeBranch#
- Obj: VolumeObject#
- Pointer to the actual volumetric or surface data.
- Ghost: bool#
- bool Visible; ///< visibility
- pVoxSurf: bool#
- < ghosting mode
- VoxSurf: bool#
- < was in surface mode on previous frame?
- HideInViewport: bool#
- < true if object is in Surface mode, false if in Voxel mode.
- Procesed: bool#
- < Hidden in viewport, but pickable/visible in tree.
- IsRef: bool#
- bool OpenState; ///< branch is open
- IsActive: bool#
- IsInTransform: bool#
- ToDestroy: bool#
- InCache: bool#
- < should be destroyed. Don’t delete leafs manually, just set this flag!
- Instance: bool#
- < is in cache
- SkipPick: bool#
- < is Instance. It does not mean that it was actually instanced. Current selected object is never instance! It gives instance flag to other non-current leaf.
- Inverse: bool#
- SelectionTime: int#
- bool Selected;
- SpaceID: int#
- < symmetry data kept to be stored in undo routine
- ProxyScale: float#
- int Level; ///< deph in VoxTree structure
- GizmoCenrtified: bool#
- GizmoDirected: bool#
- Methadata: any#
- LockedVolumeChanged: VoxTreeBranch = None#
- tmpLinkedObjects: any#
-
SceneNGObjects: ClassArray_NGObject =
ClassArray_NGObject object>#
- NGObjectIdx: int#
- LastTransformTick: int#
- MergeDisplacement: float = 0.0#
- ChildObjects(i: int) VoxTreeBranch[source]#
- ClassArray<VoxTreeBranch> ChildObjects;
- ChildObjectsAdd(tb: VoxTreeBranch)[source]#
- ChildObjectsInsert(Pos: int, tb: VoxTreeBranch)[source]#
- PrimPresets: any#
- primitives usage history
- Add(name: str, CheckExisting: bool, T: cMat4 = None) VoxTreeBranch[source]#
- CheckPresenceInSubTree(Element: VoxTreeBranch) bool[source]#
- Restores the child structure from a helper list.
- Approve(p: VoxTreeBranch) VoxTreeBranch[source]#
- MergeObj(p: VoxTreeBranch) bool[source]#
- PlainMergeObj(p: VoxTreeBranch) bool[source]#
- static ApplyTransformToInstances(M: cMat4, vo: VolumeObject, InstOnly: bool = False, R: bool = False, applyNGScale: bool = True)[source]#
- MoveObj(p: VoxTreeBranch, KeepSource: bool) bool[source]#
- Boolean Operations
- PlainMoveObj(p: VoxTreeBranch) bool[source]#
- SubObj(p: VoxTreeBranch, KeepSource: bool) bool[source]#
- IntrsObj(p: VoxTreeBranch, KeepSource: bool) bool[source]#
- RemIntrsObj(p: VoxTreeBranch) bool[source]#
- SplitObj(p: VoxTreeBranch) bool[source]#
- ChangeParent(p: VoxTreeBranch) bool[source]#
- GetRoot() VoxTreeBranch[source]#
- DeselectAll(R: VoxTreeBranch = None) bool[source]#
- CreateUniqSpace(safe: bool, suffix: str) VoxTreeBranch[source]#
- Clone(Recursive: bool = False, dest: VoxTreeBranch = None, Inst: bool = False, Subtree: bool = False, T: cMat4 = cPy.cTypes.cMat4.Identity, ChangeTool: bool = True, CopyData: bool = True, SetCurr: bool = True, ForceReplaceDest: bool = False, SelectedOnly: bool = False) VoxTreeBranch[source]#
- Clones the object/branch.
- Parameters:
Recursive (bool) – Clone children recursively.
dest (VoxTreeBranch) – Destination branch (parent).
Inst (bool) – Create as an instance (share volume data).
Subtree (bool) – Include full subtree.
T (cMat4) – Optional transform offset.
- Returns:
Pointer to the cloned branch.
- Return type:
- MergeTo(Dest: VoxTreeBranch, sub: int, ClearThis: bool, NoUndo: bool)[source]#
- PlainMergeTo(Dest: VoxTreeBranch, NoUndo: bool)[source]#
- find(gu: int, NonInstance: bool = True) VoxTreeBranch[source]#
- GetParent(tb: VoxTreeBranch) VoxTreeBranch[source]#
- CloneSpaceVT(changetool: bool = True, subtree: bool = False) VoxTreeBranch[source]#
- static Current() VoxTreeBranch[source]#
- SeekByUserInt(val: int) VoxTreeBranch[source]#
- static BestCurentCandidate() VoxTreeBranch[source]#
- CheckIfParent(child: VoxTreeBranch) bool[source]#
- FindParent(root: VoxTreeBranch, index: int) VoxTreeBranch[source]#
- SemiBoolean(other: VoxTreeBranch, op_type: int)[source]#
- static ApplySurfaceChangesToVoxelsVolumes()[source]#
- static float GetCut(cVec2& minmax, const Vector3D& p, VolumeObject* except, float* unitlen); // implementation not found
- createIntersectionCurveWith(with_vtb: VoxTreeBranch)[source]#
- class HullParams[source]#
Bases:
BaseClass- EdgeThickness: float#
- class VoxVisualTree[source]#
Bases:
VoxTreeBranchThe root class representing the visual object tree structure.Manages global tree operations like adding new volumes, deleting selected, and cloning spaces.