:orphan:
# DMPlexRestoreOrientedCone
Restore the points and orientations on the in-edges for this point in the DAG 
## Synopsis
```
#include "petscdmplex.h"   
PetscErrorCode DMPlexRestoreOrientedCone(DM dm, PetscInt p, const PetscInt *cone[], const PetscInt *ornt[])
```
Not Collective


## Input Parameters

- ***dm -*** The DMPlex
- ***p  -*** The point, which must lie in the chart set with `DMPlexSetChart()`
- ***cone -*** An array of points which are on the in-edges for point p
- ***ornt -*** An array of orientations which are on the in-edges for point `p`. An orientation is an
integer giving the prescription for cone traversal.





## Notes
The number indexes the symmetry transformations for the cell type (see manual). Orientation 0 is always
the identity transformation. Negative orientation indicates reflection so that -(o+1) is the reflection
of o, however it is not necessarily the inverse. To get the inverse, use `DMPolytopeTypeComposeOrientationInv()`
with the identity.


## Fortran Note
You must also call `DMPlexRestoreCone()` after you finish using the returned array.
`DMPlexRestoreCone()` is not needed/available in C.


## See Also
 [](ch_unstructured), `DM`, `DMPLEX`, `DMPlexGetOrientedCone()`, `DMPlexGetConeSize()`, `DMPlexGetCone()`, `DMPlexGetChart()`

## Level
beginner

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/dm/impls/plex/plex.c.html#DMPlexRestoreOrientedCone">src/dm/impls/plex/plex.c</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/impls/plex/plex.c)


[Index of all DMPlex routines](index.md)  
[Table of Contents for all manual pages](/manualpages/index.md)  
[Index of all manual pages](/manualpages/singleindex.md)  
