Class ProximityCalculatorDistancePtr


  • public class ProximityCalculatorDistancePtr
    extends java.lang.Object
    Ptr stores a pointer and optionally takes ownership of the value.
    • Constructor Detail

      • ProximityCalculatorDistancePtr

        public ProximityCalculatorDistancePtr​(long cPtr,
                                              boolean cMemoryOwn)
      • ProximityCalculatorDistancePtr

        public ProximityCalculatorDistancePtr()
        Default constructor yielding a NULL-pointer.
      • ProximityCalculatorDistancePtr

        public ProximityCalculatorDistancePtr​(ProximityCalculatorDistance ptr)
        Do not take ownership of ptr.

        ptr can be null.

        The constructor is implicit on purpose.
    • Method Detail

      • delete

        public void delete()
      • isShared

        public boolean isShared()
        check if this Ptr has shared ownership or none
        ownership
        Returns:
        true if Ptr has shared ownership, false if it has no ownership.
      • isNull

        public boolean isNull()
        checks if the pointer is null
        Returns:
        Returns true if the pointer is null
      • calculate

        public ProximityStrategyData calculate​(State state,
                                               ProximityStrategyDataPtr settings,
                                               SWIGTYPE_p_rw__core__PtrT_std__vectorT_rw__proximity__ProximityStrategyData_t_t results)
        Performece the Proximity calculation based on the chosen strategy type.
        As the varius strategies usese differenct settings all settings will be extracted
        from settings. If more then the default result is needed (first collision or shortest
        distance) result can given to get the extra info.
        Parameters:
        state - [in] The state the proximity calculation should be done in.
        settings - [in] The settings used for the calculations. Different settings are used
        for different ProximityStrategies:

        For CollisionStrategy the Collision Query Type is used. if not given only first collision
        is detected

        For DistanceStrategy no settings are used and it is expected to be null, otherwise an
        exception is thrown.

        For DistanceMultiStrategy the tolerance is used which is the maximum distance allowed for
        the result to be recorded. if not given the tolerance is set to the largest finite double

        results - [in/out] Defines parameters for the ProximityCalculation, stores the
        results and also enables caching inbetween calls.
        Returns:
        If no result is available an empty ProximityStrategyData is returned. else for
        Collisions the first contact is returned and for distance the shortest distance is
        returned
      • calculate

        public ProximityStrategyData calculate​(State state,
                                               ProximityStrategyDataPtr settings)
        Performece the Proximity calculation based on the chosen strategy type.
        As the varius strategies usese differenct settings all settings will be extracted
        from settings. If more then the default result is needed (first collision or shortest
        distance) result can given to get the extra info.
        Parameters:
        state - [in] The state the proximity calculation should be done in.
        settings - [in] The settings used for the calculations. Different settings are used
        for different ProximityStrategies:

        For CollisionStrategy the Collision Query Type is used. if not given only first collision
        is detected

        For DistanceStrategy no settings are used and it is expected to be null, otherwise an
        exception is thrown.

        For DistanceMultiStrategy the tolerance is used which is the maximum distance allowed for
        the result to be recorded. if not given the tolerance is set to the largest finite double


        Returns:
        If no result is available an empty ProximityStrategyData is returned. else for
        Collisions the first contact is returned and for distance the shortest distance is
        returned
      • calculate

        public ProximityStrategyData calculate​(State state)
        Performece the Proximity calculation based on the chosen strategy type.
        As the varius strategies usese differenct settings all settings will be extracted
        from settings. If more then the default result is needed (first collision or shortest
        distance) result can given to get the extra info.
        Parameters:
        state - [in] The state the proximity calculation should be done in.


        For CollisionStrategy the Collision Query Type is used. if not given only first collision
        is detected

        For DistanceStrategy no settings are used and it is expected to be null, otherwise an
        exception is thrown.

        For DistanceMultiStrategy the tolerance is used which is the maximum distance allowed for
        the result to be recorded. if not given the tolerance is set to the largest finite double


        Returns:
        If no result is available an empty ProximityStrategyData is returned. else for
        Collisions the first contact is returned and for distance the shortest distance is
        returned
      • getProximityFilterStrategy

        public ProximityFilterStrategyPtr getProximityFilterStrategy()
        The Proximity Filter strategy of the ProximityCalculator.
      • setProximityFilterStrategy

        public void setProximityFilterStrategy​(ProximityFilterStrategyPtr proxStrategy)
        Set the Proximity Filter strategy of the ProximityCalculator.
        Parameters:
        proxStrategy - [in] the new ProximityFilterStrategy.
        The strategy is not copied so changes to the strategy will affect the calculator
      • setStrategy

        public void setStrategy​(DistanceStrategyPtr strategy)
        Set a new strategy. OBS. models are stored in the strategy, so make sure that the
        new strategy includes all nessesary models
        Parameters:
        strategy - [in] the new strategy
      • getStrategy

        public DistanceStrategyPtr getStrategy()
        Get the ProximityStrategy.
        Returns:
        the strategy if set, otherwise NULL.
      • addGeometry

        public boolean addGeometry​(FramePtr frame,
                                   GeometryPtr geometry)
        Add Geometry associated to frame

        The current shape of the geometry is copied, hence later changes to geometry has no
        effect

        Parameters:
        frame - [in] Frame to associate geometry to
        geometry - [in] Geometry to add
        Returns:
        true if succesful, otherwise false
      • removeGeometry

        public void removeGeometry​(FramePtr frame,
                                   GeometryPtr geometry)
        Removes geometry from ProximityCalculator

        The id of the geometry is used to match the proximity model to the geometry.

        Parameters:
        frame - [in] The frame which has the geometry associated
        geometry - [in] Geometry with the id to be removed
      • removeGeometry

        public void removeGeometry​(FramePtr frame,
                                   java.lang.String geometryId)
        Removes geometry from ProximityCalculator

        The geometryId is used to match the proximity model to the geometry.

        Parameters:
        frame - [in] The frame which has the geometry associated
        geometryId - [in] Id of geometry to be removed
      • addRule

        public void addRule​(ProximitySetupRule rule)
        Adds rule specifying inclusion/exclusion of frame pairs in Proximity calculation
      • removeRule

        public void removeRule​(ProximitySetupRule rule)
        Removes rule specifying inclusion/exclusion of frame pairs in Proximity calculation
      • getComputationTime

        public double getComputationTime()
        Get the computation time used in the inCollision functions.
        Returns:
        the total computation time.
      • getNoOfCalls

        public long getNoOfCalls()
        Get the number of times the inCollision functions have been called.
        Returns:
        number of calls to inCollision functions.
      • resetComputationTimeAndCount

        public void resetComputationTimeAndCount()
        Reset the counter for inCollision invocations and the computation timer.
      • getGeometryIDs

        public vector_s getGeometryIDs​(FramePtr frame)
        return the ids of all the geometries of this frames.
      • hasGeometry

        public boolean hasGeometry​(FramePtr frame,
                                   java.lang.String geometryId)
        Returns whether frame has an associated geometry with geometryId.
        Parameters:
        frame - [in] Frame in question
        geometryId - [in] Id of the geometry
      • getGeometry

        public GeometryPtr getGeometry​(FramePtr frame,
                                       java.lang.String geometryId)
        Get the geometry from its ID
        Parameters:
        frame - [in] the frame of the geometry
        geometryId - [in] the ID of the geometry
        Returns:
        Pointer to the geometry