For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
  • Introduction
    • Overview
    • Relevant Technologies
    • Getting Started
  • Setup
    • SDK Installation
    • Additional Setup
    • Third Party Hardware Setup
  • Using the SDK
    • Holoscan Core
    • GPU Resident Execution
    • Holoscan by Example
    • Create an Application
    • Create a Distributed Application
    • Create an Operator
    • Create an Operator via Decorator
    • Create a Condition
    • Dynamic Flow Control
    • CUDA Stream Handling
    • Logging
    • Data Logging
    • Debugging
    • Python Operator Bindings
  • Operators
    • Operators and Extensions
    • Visualization
    • Inference
    • Testing
    • Video I/O Vendor Implementation Guide
  • Components
    • Schedulers
    • Conditions
    • Resources
    • Analytics
  • AI Skills
    • Ai Skills
  • API reference
          • Allocator
          • AnnotatedDoubleBufferReceiver
          • AnnotatedDoubleBufferTransmitter
          • AppDriver
          • Application
          • AppWorker
          • Arg
          • ArgList
          • ArgType
          • ArgumentSetter
          • AsyncBufferReceiver
          • AsyncBufferTransmitter
          • AsyncDataLoggerBackend
          • AsyncDataLoggerResource
          • AsynchronousCondition
          • BlockMemoryPool
          • BooleanCondition
          • CLIParser
          • Clock
          • ClockInterface
          • CodecRegistry
          • Component
          • ComponentBase
          • ComponentSpec
          • Condition
          • ConditionCombiner
          • Config
          • CountCondition
          • CPUResourceMonitor
          • CPUThread
          • CsvDataExporter
          • CudaAllocator
          • CudaBufferAvailableCondition
          • CudaContextScopedPush
          • CudaEventCondition
          • CudaFunctionLauncher
          • CudaGreenContext
          • CudaGreenContextPool
          • CudaObjectHandler
          • CudaStreamCondition
          • CudaStreamHandler
          • CudaStreamPool
          • DataExporter
          • DataFlowTracker
          • DataLogger
          • DataLoggerQueue
          • DataLoggerResource
          • DefaultFragmentService
          • DFFTCollector
          • DistributedAppService
          • DLManagedMemoryBufferVersioned
          • DoubleBufferReceiver
          • DoubleBufferTransmitter
          • DownstreamMessageAffordableCondition
          • Endpoint
          • EventBasedScheduler
          • ExecutionContext
          • Executor
          • ExpiringMessageAvailableCondition
          • ExtensionManager
          • FastDdsDiscovery
          • FastDdsEndpoint
          • FastDdsHoloscanEntityTypeSupport
          • FastDdsNativeBufferAdapter
          • FastDdsPubSubContext
          • FastDdsPubSubNetworkContext
          • FastDdsSerializer
          • FastDdsTransport
          • FileFIFOMutex
          • FirstFitAllocator
          • FirstFitAllocatorBase
          • FirstPixelOutCondition
          • FlowGraph
          • FlowGraphImpl
          • Fragment
          • FragmentAllocationStrategy
          • FragmentScheduler
          • FragmentService
          • FragmentServiceProvider
          • GPUDevice
          • GPUResidentDeck
          • GPUResidentExecutor
          • GPUResidentOperator
          • GPUResourceMonitor
          • GreedyFragmentAllocationStrategy
          • GreedyScheduler
          • GXFComponentResource
          • HoloEntitySerializerBase
          • HoloIpcCudaNativeBufferAdapterBase
          • HoloscanAsyncBufferReceiver
          • HoloscanAsyncBufferTransmitter
          • HoloscanLogger
          • HoloscanUcxReceiver
          • HoloscanUcxTransmitter
          • InMemoryPubSubNetworkContext
          • InMemoryPubSubSession
          • InputContext
          • IOSpec
          • LockFreeQueue
          • Logger
          • ManualClock
          • Map
          • MatXAllocator
          • MemoryAvailableCondition
          • Message
          • MessageAvailableCondition
          • MessageLabel
          • MetadataDictionary
          • MetaParameter
          • MultiMessageAvailableCondition
          • MultiMessageAvailableTimeoutCondition
          • MultiThreadScheduler
          • NativeBufferProtocolAdapter
          • NetworkContext
          • Nullable
          • Operator
          • OperatorSpec
          • OrConditionCombiner
          • OrderedQueue
          • OutputContext
          • ParameterWrapper
          • PathMetrics
          • PeriodicCondition
          • PoseTree
          • PoseTreeEdgeHistory
          • PoseTreeManager
          • PoseTreeUCXClient
          • PoseTreeUCXServer
          • PresentDoneCondition
          • PublisherAvailableCondition
          • PubSubContext
          • PubSubReceiver
          • PubSubTransmitter
          • RealtimeClock
          • Receiver
          • Resource
          • RMMAllocator
          • RuntimeError
          • Scheduler
          • ScopedFlock
          • ScopedWaitedFlock
          • SerializationBuffer
          • SessionDiscoveryFrontend
          • SessionTransportFrontend
          • SidecarDispatchQueue
          • SignalHandler
          • SO2
          • SO3
          • StdComponentSerializer
          • StdEntitySerializer
          • StdPubSubEntitySerializer
          • StreamOrderedAllocator
          • Subgraph
          • SubscriberAvailableCondition
          • SyntheticClock
          • SystemResourceManager
          • Tensor
          • TensorMap
          • ThreadPool
          • Timer
          • Topology
          • Transmitter
          • UcxComponentSerializer
          • UcxContext
          • UcxEntitySerializer
          • UcxHoloscanComponentSerializer
          • UcxReceiver
          • UcxSerializationBuffer
          • UcxTransmitter
          • UnboundedAllocator
  • Performance
    • Performance Considerations
    • Flow Tracking
    • GXF Job Statistics
    • Nsight Profiling
  • HoloHub
    • HoloHub Overview
  • FAQ
    • FAQ
NVIDIANVIDIA
Developer-friendly docs for your API
Privacy Policy | Your Privacy Choices | Terms of Service | Accessibility | Corporate Policies | Product Security | Contact

Copyright © 2026, NVIDIA Corporation.

LogoLogoDocumentation
On this page
  • Constructors
  • SO2
  • Methods
  • cos
  • sin
  • as_direction
  • angle
  • matrix
  • inverse
  • cast
  • Static methods
  • identity
  • from_angle
  • from_direction
  • from_normalized
  • Types
  • Typedefs
  • Member variables
API referenceC++ APIHoloscanClasses

holoscan::SO2

Beta
||View as Markdown|
Previous

holoscan::SignalHandler

Next

holoscan::SO3

template <typename K>
class SO2

Class representing 2D rotations using the SO(2) group.

This class represents rotations in 2D space as elements of the special orthogonal group SO(2). Internally, rotations are stored as normalized direction vectors (cos, sin) to avoid trigonometric function calls during composition and transformation operations.

#include <holoscan/so2.hpp>

Template parameters

K
typename

Scalar type (typically float or double).


Constructors

SO2

holoscan::SO2<K>::SO2()holoscan::SO2<K>::SO2()

Default constructor creates an undefined rotation.

Use identity() to create the identity rotation.


Methods

cos

K holoscan::SO2<K>::cos() const

Get the cosine of the rotation angle.

This is a simple getter and does not call trigonometric functions.

Returns: Cosine of the rotation angle.

sin

K holoscan::SO2<K>::sin() const

Get the sine of the rotation angle.

This is a simple getter and does not call trigonometric functions.

Returns: Sine of the rotation angle.

as_direction

const Vector2<K> & holoscan::SO2<K>::as_direction() const

Get the cos and sin of the rotation angle as a direction vector.

Returns: Direction vector (cos, sin).

angle

K holoscan::SO2<K>::angle() const

Get the rotation angle in range [-π, π].

This uses a call to a trigonometric function.

Returns: Rotation angle in radians.

matrix

Matrix2<K> holoscan::SO2<K>::matrix() const

Get the 2×2 rotation matrix representation.

Returns: 2×2 rotation matrix.

inverse

SO2 holoscan::SO2<K>::inverse() constSO2 holoscan::SO2<K>::inverse() const

Get the inverse rotation.

Returns: Inverse rotation.

cast

Const (1)
Const (2)
template <typename S>
SO2<S> holoscan::SO2<K>::cast() constSO2<S> holoscan::SO2<K>::cast() const

Cast to a different scalar type.

Returns: Rotation cast to the target type.

Template parameters

S
typename

Target scalar type.


Static methods

identity

static SO2 holoscan::SO2<K>::identity()static SO2 holoscan::SO2<K>::identity()

Create the identity rotation.

Returns: Identity rotation (no rotation).

from_angle

static SO2 holoscan::SO2<K>::from_angle(static SO2 holoscan::SO2<K>::from_angle(
K angle
)

Create rotation from an angle.

This uses calls to trigonometric functions.

Returns: Rotation representing the given angle.

Parameters

angle
K

Rotation angle in radians.

from_direction

Overload 1
Create rotation from direction components
static SO2 holoscan::SO2<K>::from_direction(static SO2 holoscan::SO2<K>::from_direction(
const Vector2<K> &direction
)

Create rotation from a not necessarily normalized direction vector.

Returns: Rotation aligned with the given direction.

Parameters

direction
const Vector2<K> &

Direction vector (will be normalized internally).

from_normalized

Overload 1
Create rotation from normalized cos and sin values
static SO2 holoscan::SO2<K>::from_normalized(static SO2 holoscan::SO2<K>::from_normalized(
const Vector2<K> &cos_sin
)

Create rotation from a normalized cos/sin direction vector.

Returns: Rotation represented by the given cos/sin values.

Parameters

cos_sin
const Vector2<K> &

Normalized direction vector (cos, sin).


Types

Typedefs

NameDefinition
ScalarK

Member variables

NameTypeDescription
kDimension static constexprint
cos_sin_Vector2< K >Internal representation as (cos, sin) direction vector.