# This file is automatically generated for code intellisense only.
# It does not reflect the actual implementation.

from __future__ import annotations
from collections.abc import Iterator

from . import core
from . import fusion

class ControlPointInterpolators():
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    Types of interpolation functions for the control point maps.
    """
    def __init__(self):
        pass
    LinearInterpolator = 0
    NearestInterpolator = 1
    CubicInterpolator = 2
    SmoothInterpolator = 3

class GraphOutputNodeTypes():
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    Types of graph output nodes for the main graph.
    """
    def __init__(self):
        pass
    BoundarySDFOutputNodeType = 0
    LatticeDensityOutputNodeType = 1
    ColorOutputNodeType = 2
    LatticeCoordinatesOutputNodeType = 3
    TextureDensityOutputNodeType = 4
    TextureCoordinatesOutputNodeType = 5
    CellLatticeShapeOutputNodeType = 6
    CellTextureShapeOutputNodeType = 7

class GraphTypes():
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    Graph types for a volumetric model.
    """
    def __init__(self):
        pass
    PrimaryGraphType = 0
    CellGraphType = 1

class NodePinTypes():
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    Different types that graph nodes input and output types can be.
    """
    def __init__(self):
        pass
    NoNodePinType = 0
    ScalarNodePinType = 1
    VectorNodePinType = 2
    ColorNodePinType = 3

class BeamNetwork(core.Base):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    A geometry reference property that defines a BeamNetwork object which is
    commonly used in discrete lattice structures.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> BeamNetwork:
        return BeamNetwork()
    @staticmethod
    def create() -> BeamNetwork:
        """
        The creator function of the BeamNetwork object.
        """
        return BeamNetwork()
    @property
    def vertices(self) -> list[core.Point3D]:
        """
        The vertices of the beam network. Each vertex is a Point3D.
        """
        return [core.Point3D()]
    @vertices.setter
    def vertices(self, value: list[core.Point3D]):
        """
        The vertices of the beam network. Each vertex is a Point3D.
        """
        pass
    @property
    def beams(self) -> list[int]:
        """
        The beams of the beam network. Each beam is a pair of vertex indices.
        The size of the array should be a multiple of 2, and equal to the length of the radii array.
        """
        return [int()]
    @beams.setter
    def beams(self, value: list[int]):
        """
        The beams of the beam network. Each beam is a pair of vertex indices.
        The size of the array should be a multiple of 2, and equal to the length of the radii array.
        """
        pass
    @property
    def radii(self) -> list[float]:
        """
        The radii of the beams. Each radius is a double value. The radii define
        the radius of one end of the beam that corresponds to the same index in the beams array.
        The size of the array should be a multiple of 2, and equal to the length of the beams array.
        """
        return [float()]
    @radii.setter
    def radii(self, value: list[float]):
        """
        The radii of the beams. Each radius is a double value. The radii define
        the radius of one end of the beam that corresponds to the same index in the beams array.
        The size of the array should be a multiple of 2, and equal to the length of the beams array.
        """
        pass

class ColorControlPoint(core.Base):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    A read-only structure that represents a control point used in ColorControlPointMapGraphNodeProperty.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> ColorControlPoint:
        return ColorControlPoint()
    @property
    def parameter(self) -> float:
        """
        The parameter inside the input domain of the control point map for this point.
        """
        return float()
    @property
    def value(self) -> core.Color:
        """
        The output color value of the control point for this point.
        """
        return core.Color()
    @property
    def interpolator(self) -> ControlPointInterpolators:
        """
        The interpolator function.
        """
        return ControlPointInterpolators()

class CustomSDFCallbackEventHandler(core.EventHandler):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    API clients can implement subclasses of this handler to enable custom Signed Distance Field geometries.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> CustomSDFCallbackEventHandler:
        return CustomSDFCallbackEventHandler()
    def boundingBox(self, bboxOut: core.BoundingBox3D) -> bool:
        """
        This method should be implemented in the subclass of the handler to return the bounding box of
        the Signed Distance Field that it can provide. This method will be called infrequently by the system.
        bboxOut : This is a return parameter. The values of this should be set by the client implementation.
        True if there is a valid bounding box.
        """
        return bool()
    def signedDistanceAt(self, x: float, y: float, z: float) -> float:
        """
        This method should be implemented in the subclass of the handler to return the Signed Distance
        value at the given coordinates within the bounding box. This method will be called very
        frequently and potentially from several differrent threads, it should be made as fast as possible
        x : X coordinate of the sampled point.
        y : Y coordinate of the sampled point.
        z : Z coordinate of the sampled point.
        The signed distance value at the sampled point (X,Y,Z).
        """
        return float()

class Graph(core.Base):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    The graph that describes the volumetric model.
    Possible node types:
      "BoxSDF",
      "CylinderSDF",
      "SphereSDF",
      "TorusSDF",
      "PlaneSDF",
      "ReferencedGeometrySDF",
      "ReferencedCurveLength",
      "ReferencedCurveCoords",
      "ReferencedFaceCoords",
      "GradientVector",
      "InvertDensity",
      "PerlinNoiseScalar",
      "VoronoiNoiseScalar",
      "Shell",
      "ConstantScalar",
      "ConstantColor",
      "ImageSamplerScalar",
      "ImageSamplerVector",
      "ImageSamplerColor",
      "3DImageSamplerScalar",
      "SphereCoords",
      "TorusCoords",
      "CylinderCoords",
      "HomogenousTransformCoords",
      "TransformCoords",
      "AxisBasedDeformCoords ",
      "TwistCoords",
      "ControlPointMapScalarToScalar",
      "ControlPointMapScalarToColor",
      "FalloffMapping",
      "VectorToColor",
      "CombineScalarsToVector",
      "CombineScalarsToColor",
      "SplitVectorToScalars",
      "SplitColorToScalars",
      "LengthOfVector",
      "NormalizeVector",
      "ExternalColor",
      "FunctionScalarToScalar",
      "FunctionVectorToColor",
      "FunctionVectorToVector",
      "FunctionVectorToScalar",
      "BinaryOperatorColor",
      "BinaryOperatorVector",
      "BinaryOperatorScalar",
      "MultiplyColor",
      "MultiplyVector",
      "MultiplyScalar"
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> Graph:
        return Graph()
    def getNode(self, name: str) -> GraphNode:
        """
        Get node with the given name.
        name : Name to search for.
        The node if found, null otherwise.
        """
        return GraphNode()
    def getOutputNode(self, outputNodeType: GraphOutputNodeTypes) -> GraphNode:
        """
        Get one of the special graph output nodes. Every graph has one or more, the cannot be created or added.
        The final output pins of the graph nodes should be connected to these to make a useful graph.
        outputNodeType : The type of the output graph node.
        Not every graph has every type; the primary graph has all four ouput node types, the cell graph only has OutputDensity.
        The output node if present in the graph, null otherwise.
        """
        return GraphNode()
    def addNode(self, name: str, nodeType: str) -> GraphNode:
        """
        Add a new node to the graph. Node names are unique, attempting to add two nodes with the same name produces an error.
        name : Name of the new node.
        nodeType : The node type string, one of the types listed in the documentation.
        The new node if it could be added, null otherwise.
        """
        return GraphNode()
    def getNodeInputPinConnector(self, node: GraphNode, inputPinIndex: int) -> GraphConnector:
        """
        Get an upstream connection to the node's input pin.
        node : The node in question.
        inputPinIndex : The index of the input pin of the node.
        An array of GraphConnector objects, one for each connection to another node.
        """
        return GraphConnector()
    def getNodeOutputPinConnectors(self, node: GraphNode, outputPinIndex: int) -> list[GraphConnector]:
        """
        Get an array of downstream connections from the node's output pin.
        node : The node in question.
        outputPinIndex : The index of the output pin of the node.
        An array of GraphConnector objects, one for each connection to another node.
        """
        return [GraphConnector()]
    def connect(self, outputNode: GraphNode, outputPinIndex: int, inputNode: GraphNode, inputPinIndex: int) -> bool:
        """
        Create a connection between nodes.
        outputNode : The node where the connection starts.
        outputPinIndex : The index of the output pin on the start node.
        inputNode : The node where the connection ends.
        inputPinIndex : The index of the input pin on the end node.
        
        """
        return bool()
    def disconnect(self, outputNode: GraphNode, outputPinIndex: int, inputNode: GraphNode, inputPinIndex: int) -> bool:
        """
        Delete a connection between nodes.
        outputNode : The node where the connection starts.
        outputPinIndex : The index of the output pin on the start node.
        inputNode : The node where the connection ends.
        inputPinIndex : The index of the input pin on the end node.
        
        """
        return bool()
    def canEvaluateGraph(self) -> bool:
        """
        Check if all the channels in the graph can be evaluated and in a good state.
        True if this graph can be evaluated, false otherwise.
        """
        return bool()
    @property
    def allNodes(self) -> list[GraphNode]:
        """
        Get all the nodes in the graph, including the output nodes.
        An array of nodes.
        """
        return [GraphNode()]
    @property
    def allPossibleNodeTypes(self) -> list[str]:
        """
        Get all the possible node types that can be used as the nodeType parameter for addNode.
        """
        return [str()]
    @property
    def allGraphConnectors(self) -> list[GraphConnector]:
        """
        Get all the connectors in the graph.
        An array of node connector objects, one for each connection between two nodes, unordered.
        """
        return [GraphConnector()]

class GraphConnector(core.Base):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    A simple read-only structure that represents a connection beween two nodes' pins in the graph.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> GraphConnector:
        return GraphConnector()
    @property
    def sourceGraphNode(self) -> GraphNode:
        """
        The node on the output of which this connector starts.
        """
        return GraphNode()
    @property
    def sourcePinIndex(self) -> int:
        """
        The output pin index of the start node.
        """
        return int()
    @property
    def targetGraphNode(self) -> GraphNode:
        """
        The node on the input of which this connector ends.
        """
        return GraphNode()
    @property
    def targetPinIndex(self) -> int:
        """
        The intput pin index of the end node.
        """
        return int()

class GraphNode(core.Base):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    An individual node within a graph.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> GraphNode:
        return GraphNode()
    def deleteMe(self) -> bool:
        """
        Deletes the graphNode and all of its connections.
        Returns true in the case where the deletion was successful.
        All properties and proery objects of this node will become invalid after this call.
        Output nodes cannot be deleted.
        """
        return bool()
    def getInputPinCount(self) -> int:
        """
        How many input pins does this node have.
        Pin count.
        """
        return int()
    def getInputPinName(self, pinIndex: int) -> str:
        """
        The name of this graph node input pin describing its function.
        pinIndex : Zero based index of the pin to get. Should be less than the pin count.
        """
        return str()
    def getInputPinType(self, pinIndex: int) -> NodePinTypes:
        """
        Get the type of the node input pin.
        pinIndex : Zero based index of the pin to get. Should be less than the pin count.
        The pin type enum.
        """
        return NodePinTypes()
    def isInputPinOptional(self, pinIndex: int) -> bool:
        """
        Some input pins can be optional, so they do not need to be connected for the node to work.
        pinIndex : Zero based index of the pin to get. Should be less than the pin count.
        True if pin is optional, false if it is required.
        """
        return bool()
    def getOutputPinCount(self) -> int:
        """
        How many output pins does this node have.
        Pin count.
        """
        return int()
    def getOutputPinName(self, pinIndex: int) -> str:
        """
        The name of this graph node input pin describing its function.
        pinIndex : Zero based index of the pin to get. Should be less than the pin count.
        """
        return str()
    def getOutputPinType(self, pinIndex: int) -> NodePinTypes:
        """
        Get the type of the node output pin.
        pinIndex : Zero based index of the pin to get. Should be less than the pin count.
        The pin type enum.
        """
        return NodePinTypes()
    def hasValidProperties(self) -> bool:
        """
        Check if the graph node properties are valid.
        True if the node has good inputs for its properties, false otherwise.
        """
        return bool()
    @property
    def name(self) -> str:
        """
        The name of this graph node as give on creation. Node names for each graph should be unique.
        """
        return str()
    @name.setter
    def name(self, value: str):
        """
        The name of this graph node as give on creation. Node names for each graph should be unique.
        """
        pass
    @property
    def nodeType(self) -> str:
        """
        Get the string node type that is was created with.
        """
        return str()
    @property
    def description(self) -> str:
        """
        A user readable description that explains the function of this node type.
        """
        return str()
    @property
    def properties(self) -> GraphNodeProperties:
        """
        Get a collection of all node properties supported by this node.
        An object containing node properties.
        """
        return GraphNodeProperties()

class GraphNodeProperties(core.Base):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    A collection of properties of a graph node.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> GraphNodeProperties:
        return GraphNodeProperties()
    def __len__(self) -> int:
        return 0
    def __getitem__(self, index: int) -> GraphNodeProperty:
        return None
    def __iter__(self) -> Iterator[GraphNodeProperty]:
        return None
    def item(self, index: int) -> GraphNodeProperty:
        """
        Function that returns the specified property using an index into the collection.
        index : The index of the item within the collection to return.  The first item in the collection has an index of 0.
        Returns the specified item or null if an invalid index was specified.
        """
        return GraphNodeProperty()
    def itemByName(self, propertyName: str) -> GraphNodeProperty:
        """
        Returns the property with the specified internal name.
        propertyName : The id of the property.
        Returns the specified property or null in the case where there is no property with the specified id.
        """
        return GraphNodeProperty()
    @property
    def count(self) -> int:
        """
        The number of items in the collection.
        """
        return int()

class GraphNodeProperty(core.Base):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    Class for representing a property of a graph node. These can be of many types.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> GraphNodeProperty:
        return GraphNodeProperty()
    @property
    def name(self) -> str:
        """
        Gets the internal name of the property.
        """
        return str()
    @property
    def description(self) -> str:
        """
        Returns the description of this property.
        This description is localized and can change based on the current language.
        """
        return str()

class ScalarControlPoint(core.Base):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    A read-only structure that represents a control point used in ScalarControlPointMapGraphNodeProperty.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> ScalarControlPoint:
        return ScalarControlPoint()
    @property
    def parameter(self) -> float:
        """
        The parameter inside the input domain of the control point map for this point.
        """
        return float()
    @property
    def value(self) -> float:
        """
        The output double value of the control point for this point.
        """
        return float()
    @property
    def interpolator(self) -> ControlPointInterpolators:
        """
        The interpolator function.
        """
        return ControlPointInterpolators()

class VolumetricModel(core.Base):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    The main volumetric graph object. It has a parent component and is defined in this parent component's space.
    It also contains the primary and cell graphs.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> VolumetricModel:
        return VolumetricModel()
    def getGraph(self, graphType: GraphTypes) -> Graph:
        """
        Returns a graph from the volumetric model.
        graphType : Which kind of graph to return.
        
        """
        return Graph()
    def registerCustomSDFCallback(self, id: str, callback: CustomSDFCallbackEventHandler) -> bool:
        """
        Handling for custom Signed Distance Field callback events. These can be registered by the API client,
        they will provide a string ID and a handler object that implements the abstract methods.
        To use the callback, a GeometryGraphNodeProperty's customSDFCallbackID should be set to the same string ID.
        
        Register a custom Signed Distance Field callback handler with a given ID.
        id : The ID to be used in a GeometryGraphNodeProperty's customSDFCallbackID.
        callback : The callback object implemented by the client.
        True if registered successfully. False otherwise.
        """
        return bool()
    def removeCustomSDFCallback(self, id: str) -> bool:
        """
        De-register the Signed Distance Field callback handler with the given ID.
        id : The ID used in registerCustomSDFCallback()
        True if removed successfully. False otherwise.
        """
        return bool()
    def createSampler(self) -> VolumetricSampler:
        """
        Creates a VolumetricSampler object that can be used to sample the volumetric model.
        Returns a VolumetricSampler object that will sample this VolumetricModel.
        """
        return VolumetricSampler()
    @property
    def isLightBulbOn(self) -> bool:
        """
        Is the light bulb / eye (as displayed in the browser) controlling the model's visibility on.
        """
        return bool()
    @isLightBulbOn.setter
    def isLightBulbOn(self, value: bool):
        """
        Is the light bulb / eye (as displayed in the browser) controlling the model's visibility on.
        """
        pass
    @property
    def parentComponent(self) -> fusion.Component:
        """
        Returns the parent Component.
        """
        return fusion.Component()
    @property
    def boundaryBody(self) -> core.Base:
        """
        Get or set the main boundary body for this volumetric model.
        The volumetric model is bound by the axis aligned bounding box and will only be
        rendered within this body.
        """
        return core.Base()

class VolumetricSample(core.Base):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    The VolumetricSamples object which is a base class for containing the result of sampling the volumetric model an array of points.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> VolumetricSample:
        return VolumetricSample()
    @property
    def point(self) -> core.Point3D:
        """
        Gets the location of the sample evalution.
        """
        return core.Point3D()

class VolumetricSampler(core.Base):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    The VolumetricSampler object which is used for controled sampling of the volumetric model.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> VolumetricSampler:
        return VolumetricSampler()
    def setSamplePoints(self, samplePoints: list[core.Point3D]) -> bool:
        """
        Sets sample points to be used for sampling the volumetric model.
        samplePoints : The sample points to be used for sampling the volumetric model.
        True if the sample points were set successfully.
        """
        return bool()
    def addSamplePoints(self, samplePoints: list[core.Point3D]) -> bool:
        """
        Appends sample points to the existing sample points to be used for sampling the volumetric model.
        samplePoints : The sample points to be added to the sampler.
        """
        return bool()
    def clearSamplePoints(self) -> bool:
        """
        Clears the sample points that have been set for sampling the volumetric model.
        True if the sample points were successfully cleared.
        """
        return bool()
    def setBoundingBoxSampling(self, elementSize: float, boundingBox3d: core.BoundingBox3D) -> bool:
        """
        Calculates and sets the sample points to be used for sampling the volumetric model for a given resolution throughout
        the bounding box provided. This will override any previously set sample points.
        elementSize : The approximate spacing between sample points. The units used for the element size are centimeters.
        boundingBox3d : The bounding box in which the sample points will be distributed.
        True if the sample points were set successfully.
        """
        return bool()
    def setPlaneSampling(self, elementSize: float, plane: core.Plane, primaryAxis: core.Vector3D, primaryAxisSize: float, secondaryAxisSize: float) -> bool:
        """
        Calculates and sets the sample points to be used for sampling the volumetric model for a given resolution, plane
        and primary axis. The points will be distributed in a grid pattern on the plane, starting at the plane origin and
        extend in the primary axis and secodary axis for the axis size arguments. The secondary axis is calculated from the
        cross product of the plane normal and the primary axis. This will override any previously set sample points.
        elementSize : The approximate spacing between sample points. The units used for the element size are centimeters.
        plane : The plane on which the points will be distributed.
        primaryAxis : The primary axis of the plane. This vector should be on the plane. The secondary axis
        of the plane is calculated as the cross-product of the plane normal and the primary axis
        primaryAxisSize : The size of the plane in the primary axis direction.
        secondaryAxisSize : The size of the plane in the secondary axis direction.
        True if the sample points were set successfully.
        """
        return bool()
    def samplePointCount(self) -> int:
        """
        Gets the number of sample points that will be used for sampling the volumetric model.
        The number of sample points that will be used for sampling the volumetric model.
        """
        return int()
    def evaluate(self, graphNode: GraphNode, isOutput: bool = True, index: int = 0) -> list[VolumetricSample]:
        """
        Evaluates the volumetric model at the previously set sample points for the given node and returns the results.
        graphNode : The graph node to evaluate at the sample points.
        isOutput : Optional argument that controls the sampling. If set to true samples an output pin, if set to false samples an input pin. Default is True.
        index : Optional argument that controls the index of the pin to sample. Default is 0 which is the first pin.
        An array of VolumetricSample objects that contain the results of sampling the volumetric model.
        """
        return [VolumetricSample()]
    def evaluateDensity(self) -> list[VolumetricScalarSample]:
        """
        Evaluates the density of the model at the previously set sample points and returns the results. This value
        is what is used to determine the level set of the model.
        An array of VolumetricScalarSample objects that contain the results of sampling the volumetric model.
        """
        return [VolumetricScalarSample()]
    def evaluateLevelSet(self) -> list[VolumetricScalarSample]:
        """
        Evaluates the level set function of the model at the previously set sample points and returns the results.
        An array of VolumetricScalarSample objectst that contain the results of sampling the volumetric model.
        """
        return [VolumetricScalarSample()]
    def evaluateColor(self) -> list[VolumetricColorSample]:
        """
        Evaluates the color of the model at the previously set sample points and returns the results.
        An array of VolumetricColorSample objects that contain the results of sampling the volumetric model.
        """
        return [VolumetricColorSample()]

class BooleanGraphNodeProperty(GraphNodeProperty):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    A property value that is a boolean.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> BooleanGraphNodeProperty:
        return BooleanGraphNodeProperty()
    @property
    def value(self) -> bool:
        """
        Get or set the value of the property.
        """
        return bool()
    @value.setter
    def value(self, value: bool):
        """
        Get or set the value of the property.
        """
        pass

class ColorControlPointMapGraphNodeProperty(GraphNodeProperty):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    A property value that defines a complex mapping curve from an input domain of double values to
    an output range of color values. The mapping is represented by a set of points ordered by
    their domain value parameters. For a given input value, the output value is interpolated from the values
    of the two points before and after it using the specified interpolation function for each point.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> ColorControlPointMapGraphNodeProperty:
        return ColorControlPointMapGraphNodeProperty()
    def getPoint(self, index: int) -> ColorControlPoint:
        """
        Get the point at index.
        index : Index of the point to get.
        The control point at this index.
        """
        return ColorControlPoint()
    def addPoint(self, parameter: float, value: core.Color, interpolator: ControlPointInterpolators) -> bool:
        """
        Add a point to the map.
        parameter : Where in the input domain where the point lies.
        value : The color value of the parameter in the output domain.
        interpolator : The function used to interpolate an output value for a input parameter between this point and the next.
        True if successfully added.
        """
        return bool()
    def removePoint(self, index: int) -> bool:
        """
        Remove a point from the map.
        index : Index of the point to remove.
        True if successfully removed.
        """
        return bool()
    def clear(self) -> bool:
        """
        Remove all points from the map.
        True if successfully cleared.
        """
        return bool()
    @property
    def pointCount(self) -> int:
        """
        The number of points.
        Total point count.
        """
        return int()

class ColorGraphNodeProperty(GraphNodeProperty):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    A property value that is a color.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> ColorGraphNodeProperty:
        return ColorGraphNodeProperty()
    @property
    def value(self) -> core.Color:
        """
        Get or set the value of the property.
        """
        return core.Color()
    @value.setter
    def value(self, value: core.Color):
        """
        Get or set the value of the property.
        """
        pass

class GeometryGraphNodeProperty(GraphNodeProperty):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    A property value that represents a link to a geometric object.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> GeometryGraphNodeProperty:
        return GeometryGraphNodeProperty()
    @property
    def value(self) -> list[core.Base]:
        """
        Get or set the value of the property. This should be one or more CAD geometry objects,
        such as a BREP or mesh bodies, faces or sketch curves. Setting this will override any
        value set by customSDFCallbackID.
        """
        return [core.Base()]
    @value.setter
    def value(self, value: list[core.Base]):
        """
        Get or set the value of the property. This should be one or more CAD geometry objects,
        such as a BREP or mesh bodies, faces or sketch curves. Setting this will override any
        value set by customSDFCallbackID.
        """
        pass
    @property
    def customSDFCallbackID(self) -> str:
        """
        The ID of a custom Signed Distance Field callback object registered with CustomSDFCallbackRegistry.
        Setting this will override any CAD geometry set previously.
        """
        return str()
    @customSDFCallbackID.setter
    def customSDFCallbackID(self, value: str):
        """
        The ID of a custom Signed Distance Field callback object registered with CustomSDFCallbackRegistry.
        Setting this will override any CAD geometry set previously.
        """
        pass
    @property
    def beamNetwork(self) -> BeamNetwork:
        """
        Set the value of the property. The value should be a BeamNetwork object,
        which defines the geometry by defining vertices, beams and radii of the beams.
        """
        return BeamNetwork()
    @beamNetwork.setter
    def beamNetwork(self, value: BeamNetwork):
        """
        Set the value of the property. The value should be a BeamNetwork object,
        which defines the geometry by defining vertices, beams and radii of the beams.
        """
        pass

class IntegerGraphNodeProperty(GraphNodeProperty):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    A property value that is an integer.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> IntegerGraphNodeProperty:
        return IntegerGraphNodeProperty()
    @property
    def value(self) -> int:
        """
        Get or set the value of the property.
        """
        return int()
    @value.setter
    def value(self, value: int):
        """
        Get or set the value of the property.
        """
        pass

class Matrix3DGraphNodeProperty(GraphNodeProperty):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    A property value that is a 3D Matrix.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> Matrix3DGraphNodeProperty:
        return Matrix3DGraphNodeProperty()
    @property
    def value(self) -> core.Matrix3D:
        """
        Get or set the value of the property.
        """
        return core.Matrix3D()
    @value.setter
    def value(self, value: core.Matrix3D):
        """
        Get or set the value of the property.
        """
        pass

class ScalarControlPointMapGraphNodeProperty(GraphNodeProperty):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    A property value that defines a complex mapping curve from an input domain of double values to
    an output range of double values. The mapping is represented by a set of points ordered by
    their domain value parameters. For a given input value, the output value is interpolated from the values
    of the two points before and after it using the specified interpolation function for each point.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> ScalarControlPointMapGraphNodeProperty:
        return ScalarControlPointMapGraphNodeProperty()
    def getPoint(self, index: int) -> ScalarControlPoint:
        """
        Get the point at index.
        index : Index of the point to get.
        The control point at this index.
        """
        return ScalarControlPoint()
    def addPoint(self, parameter: float, value: float, interpolator: ControlPointInterpolators) -> bool:
        """
        Add a point to the map.
        parameter : Where in the input domain where the point lies.
        value : The double value of the parameter in the output domain.
        interpolator : The function used to interpolate an output value for a input parameter between this point and the next.
        True if successfully added.
        """
        return bool()
    def removePoint(self, index: int) -> bool:
        """
        Remove a point from the map.
        index : Index of the point to remove.
        True if successfully removed.
        """
        return bool()
    def clear(self) -> bool:
        """
        Remove all points from the map.
        True if successfully cleared.
        """
        return bool()
    @property
    def pointCount(self) -> int:
        """
        The number of points.
        Total point count.
        """
        return int()

class ScalarGraphNodeProperty(GraphNodeProperty):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    A property value that is a floating point value.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> ScalarGraphNodeProperty:
        return ScalarGraphNodeProperty()
    @property
    def value(self) -> float:
        """
        Get or set the value of the property.
        """
        return float()
    @value.setter
    def value(self, value: float):
        """
        Get or set the value of the property.
        """
        pass

class StringGraphNodeProperty(GraphNodeProperty):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    A property value that is a string.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> StringGraphNodeProperty:
        return StringGraphNodeProperty()
    @property
    def value(self) -> str:
        """
        Get or set the value of the property.
        """
        return str()
    @value.setter
    def value(self, value: str):
        """
        Get or set the value of the property.
        """
        pass

class TransformRefGraphNodeProperty(GraphNodeProperty):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    A property value that is provides a transform to a node. This is set with an Occurrence of a Component.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> TransformRefGraphNodeProperty:
        return TransformRefGraphNodeProperty()
    @property
    def value(self) -> fusion.Occurrence:
        """
        Get or set the value of the property. This should be the occurrence of a component.
        """
        return fusion.Occurrence()
    @value.setter
    def value(self, value: fusion.Occurrence):
        """
        Get or set the value of the property. This should be the occurrence of a component.
        """
        pass

class Vector3DGraphNodeProperty(GraphNodeProperty):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    A property value that is a 3D vector.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> Vector3DGraphNodeProperty:
        return Vector3DGraphNodeProperty()
    @property
    def value(self) -> core.Vector3D:
        """
        Get or set the value of the property.
        """
        return core.Vector3D()
    @value.setter
    def value(self, value: core.Vector3D):
        """
        Get or set the value of the property.
        """
        pass

class VolumetricColorSample(VolumetricSample):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    The VolumetricColorSample object which contains the result of sampling a color value from the volumetric model at a point.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> VolumetricColorSample:
        return VolumetricColorSample()
    @property
    def value(self) -> core.Color:
        """
        Gets the color value at the sample point.
        """
        return core.Color()

class VolumetricScalarSample(VolumetricSample):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    The VolumetricScalarSample object which contains the result of sampling a scalar value from the volumetric model at a point.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> VolumetricScalarSample:
        return VolumetricScalarSample()
    @property
    def value(self) -> float:
        """
        Gets the scalar value at the sample point.
        """
        return float()

class VolumetricVectorSample(VolumetricSample):
    """
    !!!!! Warning !!!!!
    ! This is in preview state; please see the help for more info
    !!!!! Warning !!!!!
    
    The VolumetricVectorSample object which contains the result of sampling a vector value from the volumetric model at a point.
    """
    def __init__(self):
        pass
    @staticmethod
    def cast(arg) -> VolumetricVectorSample:
        return VolumetricVectorSample()
    @property
    def value(self) -> core.Vector3D:
        """
        Gets the vector value at the sample point.
        """
        return core.Vector3D()
