Skip to content

Commit b82ae2d

Browse files
authored
Merge pull request #459 from EarthyScience/jp/keyframe-editor
Added Frames to keyframe editor. Made it so keyframes disappear when …
2 parents 6b7fa6a + e89a94f commit b82ae2d

File tree

5 files changed

+55
-37
lines changed

5 files changed

+55
-37
lines changed

src/components/textures/shaders/sphereFrag.glsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ uniform float nanAlpha;
2626
vec2 giveUV(vec3 position){
2727
vec3 n = normalize(position);
2828
float latitude = asin(n.y);
29-
float longitude = -atan(n.z, n.x);
29+
float longitude = atan(n.z, n.x);
3030

3131
latitude = (latitude - latBounds.x)/(latBounds.y - latBounds.x);
3232
longitude = (longitude - lonBounds.x)/(lonBounds.y - lonBounds.x);

src/components/textures/shaders/sphereVertex.glsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ uniform float animateProg;
1212
vec2 giveUV(vec3 position){
1313
vec3 n = normalize(position);
1414
float latitude = asin(n.y);
15-
float longitude = -atan(n.z, n.x);
15+
float longitude = atan(n.z, n.x);
1616
latitude = (latitude - latBounds.x)/(latBounds.y - latBounds.x);
1717
longitude = (longitude - lonBounds.x)/(lonBounds.y - lonBounds.x);
1818

src/components/textures/shaders/sphereVertexFlat.glsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ uniform vec2 lonBounds;
1111
vec2 giveUV(vec3 position){
1212
vec3 n = normalize(position);
1313
float latitude = asin(n.y);
14-
float longitude = -atan(n.z, n.x);
14+
float longitude = atan(n.z, n.x);
1515
latitude = (latitude - latBounds.x)/(latBounds.y - latBounds.x);
1616
longitude = (longitude - lonBounds.x)/(lonBounds.y - lonBounds.x);
1717

src/components/ui/KeyFrames.tsx

Lines changed: 51 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@ const KeyFrames = () => {
5555
animProg:state.animProg, setAnimProg:state.setAnimProg
5656
})))
5757

58-
const {keyFrames, frames, useTime, frameRate, timeRate, currentFrame, setCurrentFrame} = useImageExportStore(useShallow(state=>({
59-
keyFrames:state.keyFrames, frames:state.frames, currentFrame:state.currentFrame,
60-
useTime:state.useTime, frameRate:state.frameRate, timeRate:state.timeRate, setCurrentFrame:state.setCurrentFrame
58+
const {keyFrames, frames, useTime, frameRate, timeRate, orbit, currentFrame, setCurrentFrame, setFrames} = useImageExportStore(useShallow(state=>({
59+
keyFrames:state.keyFrames, frames:state.frames, orbit:state.orbit, currentFrame:state.currentFrame,
60+
useTime:state.useTime, frameRate:state.frameRate, timeRate:state.timeRate, setCurrentFrame:state.setCurrentFrame, setFrames:state.setFrames
6161
})))
6262
const timeRatio = timeRate/frameRate
6363
const keyFrameList = keyFrames ? Array.from(keyFrames.keys()).sort((a, b) => a - b) : null;
@@ -91,24 +91,51 @@ const KeyFrames = () => {
9191
color='var(--play-background)'
9292
onClick={()=>useImageExportStore.getState().setKeyFrameEditor(false)}
9393
/>
94-
<div className='flex justify-center items-center'>
95-
<Button
96-
className='cursor-pointer'
97-
onClick={()=>{SetKeyFrame(currentFrame)}}
98-
>Add Keyframe
99-
</Button>
100-
<Button
101-
disabled={!keyFrameList}
102-
className='cursor-pointer'
103-
onClick={()=>{useImageExportStore.setState({keyFrames: undefined})}}
104-
>Clear Keyframes
105-
</Button>
106-
<Button
107-
disabled={!keyFrameList}
108-
className='cursor-pointer'
109-
onClick={()=>{useImageExportStore.getState().PreviewKeyFrames()}}
110-
>Preview Full Animation
111-
</Button>
94+
<div className='flex justify-between items-center'>
95+
{/* Information */}
96+
<div className='ml-4'>
97+
<div style={{visibility: orbit? "visible" : "hidden"}}>
98+
<b>Camera Motion overwriten by orbit</b>
99+
</div>
100+
</div>
101+
102+
{/* Buttons */}
103+
<div className='flex justify-center items-center'>
104+
<Button
105+
className='cursor-pointer'
106+
onClick={()=>{SetKeyFrame(currentFrame)}}
107+
>Add Keyframe
108+
</Button>
109+
<Button
110+
disabled={!keyFrameList}
111+
className='cursor-pointer'
112+
onClick={()=>{useImageExportStore.setState({keyFrames: undefined})}}
113+
>Clear Keyframes
114+
</Button>
115+
<Button
116+
disabled={!keyFrameList}
117+
className='cursor-pointer'
118+
onClick={()=>{useImageExportStore.getState().PreviewKeyFrames()}}
119+
>Preview Full Animation
120+
</Button>
121+
</div>
122+
123+
{/* Frame Information */}
124+
<div className='flex justify-center'>
125+
<div className='flex justify-end items-center mr-2'>
126+
<label htmlFor="frames"><b>Frames:</b></label>
127+
<Input className='w-[80px] ml-2' id="frames" type='number' step={1} value={frames} onChange={e => setFrames(Math.max(parseInt(e.target.value),2))} />
128+
</div>
129+
<div className='flex justify-end items-center'>
130+
<b >Frame:</b>
131+
<Input value={currentFrame} type='number'
132+
className='w-[80px] ml-2'
133+
min={1}
134+
step={1}
135+
onChange={e =>parseInt(e.target.value) ? setCurrentFrame(Math.max(parseInt(e.target.value), 1)) : 1}
136+
/>
137+
</div>
138+
</div>
112139
</div>
113140
<div className="relative w-full my-2 px-2 bg-[var(--background)] drop-shadow-[0_0_4px_var(--notice-shadow)] rounded-lg">
114141
{keyFrameList?.map((frame) => {
@@ -123,7 +150,8 @@ const KeyFrames = () => {
123150
top:0,
124151
transform:"translate(-50%, -50%)",
125152
zIndex: 0,
126-
cursor:"pointer"
153+
cursor:"pointer",
154+
visibility:percent <= 100 ? "visible" : "hidden"
127155
}}
128156
color='red'
129157
size={18}
@@ -149,15 +177,7 @@ const KeyFrames = () => {
149177
}}
150178
/>
151179
</div>
152-
<div className='flex justify-end items-center absolute top-[8px] right-[8px]'>
153-
<b >Frame:</b>
154-
<Input value={currentFrame} type='number'
155-
className='w-[80px] ml-2'
156-
min={1}
157-
step={1}
158-
onChange={e =>parseInt(e.target.value) ? setCurrentFrame(Math.max(parseInt(e.target.value), 1)) : 1}
159-
/>
160-
</div>
180+
161181
</div>
162182
)
163183
}

src/utils/ExportCanvas.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ const DrawComposite = (
3333
} else {
3434
ctx.clearRect(0, 0, width, height);
3535
}
36-
console.log(gl.domElement)
3736
ctx.drawImage(gl.domElement, 0, 0, width, height)
3837

3938
const cbarTickSize = doubleSize ? 36 : 18
@@ -424,8 +423,7 @@ const ExportCanvas = ({show}:{show: boolean}) => {
424423
camera.updateProjectionMatrix();
425424
!(useCustomRes || doubleSize) && invalidate();
426425
}
427-
428-
426+
429427
}
430428
if (useCustomRes || doubleSize){
431429
SetCamera()

0 commit comments

Comments
 (0)