CATMecModUseItf Interface CATIMfIntersectionEdge

Usage: an implementation of this interface is supplied and you must use it as is. You should not reimplement it.


interface CATIMfIntersectionEdge

Interface for Intersection Edges BRep features.

Role:This interface allows to manage BRep features defined by edges produced by the intersection of two lists of features. The information stored by an Intersection Edge consists in

There are two ways to create an intersection edge: In both cases you must use at least the right featurization mode:
  • MfFeaturizeIntersection for a standard intersection edge.
  • MfFeaturizeC1Intersection for a C1 intersection edge
  • MfFeaturizeC1Intersection|MfFeaturizeSubElement for a not propaged intersection edge
  • The definition of an intersection edge can be modified using the methods of the interface to add features in the lists or to change the resolution mode. For instance, if needed, the application may change the resolution mode to MfResolutionMode_ListAgainstCurrent mode and set the SecondOperands list.

    Please refer to the technical article dealing with the intersection edge in the CAA Encyclopedia for further details.


    Method Index


    o GetEdgesAllInit(int,CATListValCATIMmiMechanicalFeature_var&)
    Retrieves the initial edges for functional tangent intersection edge.
    o GetFirstOperands(CATListValCATIMmiMechanicalFeature_var&)
    Reads the list of first operands.
    o GetIntersectionEdgeInit(CATIMmiUseMfBRep_var&)
    Retrieves the initial edge.
    o GetIntersectionEdgeType(CATIMfIntersectionEdge::CATMfIntersectionEdgeType&)
    Retrieves the intersection edge type.
    o GetIntersectionEdgesOriented(CATLISTP(CATCell)&,CATListOfInt&,CATIMmiMechanicalFeature_var&)
    Returns the oriented topological edges associated with the BRep Feature.
    o GetIntersectionResolveMode(CATMfResolutionMode&,CATBaseUnknown_var&)
    Returns the way to compute the result edges.
    o GetSecondOperands(CATListValCATIMmiMechanicalFeature_var&)
    Reads the list of second operands.
    o GetTangentPropagationMode(CATMfTangentPropagationMode&)
    Returns the value of the tangent propagation mode.
    o IsIntersectionSameResult(CATIMfIntersectionEdge_var&,CATIMmiMechanicalFeature_var&)
    Checks if two intersection edges give the same result.
    o SetFirstOperands(CATListValCATIMmiMechanicalFeature_var&)
    Sets the list of first operands.
    o SetIntersectionResolveMode(CATMfResolutionMode,CATBaseUnknown_var&)
    Sets the value of the resolution mode.
    o SetSecondOperands(CATListValCATIMmiMechanicalFeature_var&)
    Sets the list of second operands.
    o SetTangentPropagationMode(CATMfTangentPropagationMode)
    Sets the value of the tangent propagation mode.

    Enumerated Type Index


    o CATMfIntersectionEdgeType
    The type to compute the result edges.
    o CATMfResolutionMode
    The way to compute the result edges.
    o CATMfTangentPropagationMode
    Mode used to define the tangent propagation mode.

    Methods


    o GetEdgesAllInit
    public virtual GetEdgesAllInit( iEdgesSecoursOnly,
    oListEdgesAllInit)
    Retrieves the initial edges for functional tangent intersection edge.
    These BRep Feature exists for types: TgtFunctionalEdge.
    Parameters:
    iEdgesSecoursOnly
    To take into account the main initial edge or not (the main can be retrieved by GetEdgeInit method.
    • 0 : to get all init, including the main one, which is always in first position
    • 1 : to get only the secondary init. These ones are computed once at the creation by tangent propagation from the main init.
    oListEdgesAllInit
    The list of initial edges which are CATIMmiUseMfBRep_var.
    Returns:
    The error code.
    Legal values:
    • S_OK: The edges are retrieved (could be NULL_var)
    • E_FAIL: Error occured.
    o GetFirstOperands
    public virtual GetFirstOperands( oFirstOperands)
    Reads the list of first operands.
    Parameters:
    oFirstOperands
    The list of features stored as FirstOperand features list. The output list is not emptied when entering in the method. If the application reuses a previous list, it should remove the elements inside before calling the method if necessary.
    Returns:
    The error code.
    Legal values:
    • S_OK: The list is retrieved
    • E_FAIL: The list could not be accessed.
    o GetIntersectionEdgeInit
    public virtual GetIntersectionEdgeInit( oStartEdge)
    Retrieves the initial edge.
    Parameters:
    oStartEdge
  • This BRep Feature exists for types: TgtIntersEdge, TgtEdge, NotPropagEdge
  • but is NULL_var for standard IntersectionEdge, as then it has no meaning.
  • Returns:
    The error code.
    Legal values:
    • S_OK: The edge is retrieved (could be NULL_var)
    • E_FAIL: Error occured.
    o GetIntersectionEdgeType
    public virtual GetIntersectionEdgeType( oType)
    Retrieves the intersection edge type.
    Parameters:
    oType
    The effective type of the intersection edge BRep Feature.
    Returns:
    The error code.
    Legal values:
    • S_OK: The type is retrieved
    • E_FAIL: Error occured.
    o GetIntersectionEdgesOriented
    public virtual GetIntersectionEdgesOriented( oListCellEdges,
    oListOrientations,
    const iFeat= NULL_var )
    Returns the oriented topological edges associated with the BRep Feature.
    Parameters:
    oListCellEdges
    List of topological edges, which are CATEdge
    oListOrientations
    List of orientations, associated which each edge. Values should be +1 or -1
    Notice that both lists are emptied at the beginning of this method.
    iFeat
    Defines the body of the search, e.g. the feature of resolution.
    If NULL_var (default value), current feature is taken into account
    Returns:
    The error code.
    Legal values:
    • S_OK: The full lists are retrieved (could be empty)
    • E_FAIL: The lists cannot be computed.
    o GetIntersectionResolveMode
    public virtual GetIntersectionResolveMode( oMode,
    oApplicativeResolveOperator)
    Returns the way to compute the result edges.
    Parameters:
    oMode
    The resolution mode.
    oApplicativeResolveOperator
    The feature implementing the
    interface, to overload resolution. By this mean, the application may define how to compute the result edges of the intersection edge in his own way. This feature is NULL_var for other values than MfResolutionMode_Application.
    Returns:
    The error code.
    Legal values:
    • S_OK: The value is retrieved
    • E_FAIL: The value could not be accessed.
    o GetSecondOperands
    public virtual GetSecondOperands( oSecondOperands)
    Reads the list of second operands.
    Parameters:
    oSecondOperands
    The list of features stored as SecondOperands features list. The output list is not emptied when entering in the method. If the application reuses a previous list, it should remove the elements inside before calling the method if necessary.
    Returns:
    The error code.
    Legal values:
    • S_OK: The list is retrieved
    • E_FAIL: The list could not be accessed.
    o GetTangentPropagationMode
    public virtual GetTangentPropagationMode( oTgtMode)
    Returns the value of the tangent propagation mode.
    Parameters:
    oTgtMode
    The tangent propagation mode.
    Returns:
    The error code.
    Legal values:
    • S_OK: The mode is retrieved
    • E_FAIL: The mode could not be accessed.
    o IsIntersectionSameResult
    public virtual IsIntersectionSameResult( const iOtherIntersEdge,
    const iFeat= NULL_var )
    Checks if two intersection edges give the same result.
    Role: This method will compare the results of two intersection edge, topology and geometry.
    Parameters:
    iOtherIntersEdge
    The other intersection edge to compare
    iFeat
    Defines the body of the search, e.g. the feature of resolution.
    If NULL_var (default value), current feature is taken into account
    Returns:
    • +1 : the BRep Feature give same result as iOtherIntersEdge, (even if they could differ by specification)
    • -1 : the BRep Feature give same result as iOtherIntersEdge, but orientations are inverted
    • 0 : results are differents
    o SetFirstOperands
    public virtual SetFirstOperands( iFirstOperands)
    Sets the list of first operands.
    Parameters:
    iFirstOperands
    The list of features to be stored as FirstOperand features list.
    Returns:
    The error code.
    Legal values:
    • S_OK: The list has been stored.
    • ERROR_BAD_ARGUMENTS: The list contains more than one feature and the resolution mode is equal to MfResolutionMode_GeneratedEdges.
    • E_FAIL: the list is not empty but no feature in the list is a valid CATIMmiMechanicalFeature.
    o SetIntersectionResolveMode
    public virtual SetIntersectionResolveMode( iMode,
    iApplicativeResolveOperator)
    Sets the value of the resolution mode.
    Parameters:
    iMode
    The resolution mode.
    iApplicativeResolveOperator
    The feature that implements the
    interface, to overload resolution. Allowed only when iMode is equal to MfResolutionMode_Application. This feature is ignored and not stored for other values.
    Returns:
    The error code.
    Legal values:
    • S_OK: The mode has been stored.
    • ERROR_BAD_ARGUMENTS: iMode is equal to MfResolutionMode_Application and iApplicativeResolveOperator does not implement CATIMfIntersectApplicativeResolution.
    • ERROR_BAD_ARGUMENTS: iMode is equal to MfResolutionMode_GeneratedEdges and FirstOperand list contains more than one feature.
    o SetSecondOperands
    public virtual SetSecondOperands( iSecondOperands)
    Sets the list of second operands.
    Parameters:
    iSecondOperands
    The list of features to be stored as SecondOperands features list.
    In case the second operands list is set although this is not consistent with the resolution mode, an error will be raised when resolving the result edges.
    Returns:
    The error code.
    Legal values:
    • S_OK: The list has been stored.
    • E_FAIL: List could not be read properly
    o SetTangentPropagationMode
    public virtual SetTangentPropagationMode( iTgtMode)
    Sets the value of the tangent propagation mode.
    Parameters:
    iTgtMode
    The tangent propagation mode. The error code.
    Legal values:
    • S_OK: The mode has been stored.
    • E_FAIL: The mode could not be set properly

    Enumerated Types


    o CATMfIntersectionEdgeType
    enum CATMfIntersectionEdgeType {
      Type_IntersectionEdge,
      Type_TgtIntersEdge,
      Type_TgtEdge,
      Type_NotPropagEdge,
      Type_TgtFunctionalFEdge,
      Type_TgtFunctionalREdge,
      Type_DerTgtEdge,
      Type_DerNotPropagEdge
    }
    
    The type to compute the result edges.
    Parameters:
    Type_IntersectionEdge
    corresponds to nothing special; this value may be also called as standard (all edges within intersection edge are computed).
    It is created with CATMfFeaturizeMode MfFeaturizeIntersection
    Type_TgtIntersEdge
    corresponds to C1 continuity propagation (edges computed depend of initial edge).
    It is created with CATMfFeaturizeMode MfFeaturizeC1Intersection
    Type_TgtEdge
    corresponds to C1 continuity propagation but the initial edge cannot be built within an intersection edge (there is no semantic characteristic).
    It is created with CATMfFeaturizeMode MfFeaturizeC1Intersection
    Type_NotPropagEdge
    corresponds to only edge selection, without propagation, but this edge is built within an intersection edge (semantic characteristic is kept)
    It is created with CATMfFeaturizeMode MfFeaturizeC1Intersection|MfFeaturizeSubElement
    Type_TgtFunctionalFEdge
    corresponds to C1 continuity propagation of initial edge at the creation only, inside the initial feature of this edge. It has fonctional mode, see
    .
    It is created with CATMfFeaturizeMode MfFeaturizeFunctionalC1Intersection|MfFunctionalFeaturization
    Type_TgtFunctionalREdge
    corresponds to C1 continuity propagation of initial edge at the creation only, inside the initial feature of this edge. It has relimited mode, see
    .
    It is created with CATMfFeaturizeMode MfFeaturizeFunctionalC1Intersection|MfRelimitedFeaturization or CATMfFeaturizeMode MfFeaturizeFunctionalC1Intersection|MfRelimitedFeaturization
    Type_DerTgtEdge
    is a type created after an Isolate functionnality: a former TgtIntersEdge became not semantic, it is similar to TgtEdge but it keeps its own orientation as it was before transformation (Der is just a shorcut for Derived).
    Type_DerNotPropagEdge
    is analog to previous type, but it comes from NotPropagEdge.
    o CATMfResolutionMode
    enum CATMfResolutionMode {
      MfResolutionMode_GeneratedEdges,
      MfResolutionMode_ListAgainstList,
      MfResolutionMode_ListAgainstCurrent,
      MfResolutionMode_FreeEdges,
      MfResolutionMode_Application
    }
    
    The way to compute the result edges.
    Parameters:
    MfResolutionMode_GeneratedEdges
    is used when the need is to retrieve cells generated when operating the feature in FirstOperands against its input context. Only one feature is then allowed within FirstOperands list. SecondOperands list must be empty.
    MfResolutionMode_ListAgainstList
    is used when the need is to retrieve cells that have one adjacent face issued from a feature in FirstOperand list, and the other face issued from a feature in SecondOperands list.
    MfResolutionMode_ListAgainstCurrent
    is used when the need is to retrieve cells that have one adjacent face issued from a feature in FirstOperands list, and the other face issued from the global context.
    MfResolutionMode_FreeEdges
    is used when the need is to retrieve cells that have both adjacent faces issued from features in FirstOperands list. SecondOperands list must be empty.
    MfResolutionMode_Application
    is available to add applicative resolution modes. In this mode, the resolution of the intersection edge is delegated to the application. The application has to provide a solving method using the
    interface. A feature implementing this interface is provided in the method.
    o CATMfTangentPropagationMode
    enum CATMfTangentPropagationMode {
      MfTangentPropagationMode_Standard,
      MfTangentPropagationMode_Fillet
    }
    
    Mode used to define the tangent propagation mode.
    Role:The type to compute the tangent propagation (only for MfFeaturizeC1Intersection) which allow to compute propagated edges
    Parameters:
    MfTangentPropagationMode_Standard
    corresponds to standard propagation (similar to extract operator) and is the default value
    MfTangentPropagationMode_Fillet
    corresponds to fillet tangency propagation (mandatory for fillet features)

    This object is included in the file: CATIMfIntersectionEdge.h
    If needed, your Imakefile.mk should include the module: CATMecModUseItf

    Copyright © 1999-2014, Dassault Systèmes. All rights reserved.